導航:首頁 > 源碼編譯 > 編譯成匯編語言還是直接機器語言

編譯成匯編語言還是直接機器語言

發布時間:2024-02-23 23:18:29

❶ 高級編程語言也要編譯成匯編語言,不同的cpu匯編語言不一樣,那會編譯成那種匯編語言呢

高級語言一般最終不是編譯成匯編語言而是機器語言,而像C#這類語言編譯後為公共語言,不是機器碼,運行時公共語言代碼由NET框架負責進一步即時翻譯即時執行為機器指令。只有C++這類語言編譯後為CPU可以直接執行的機器碼。


附圖是VS2019中C++語言的一段調試時的反匯編窗口,其中白字是C++源代碼,下面是對應的匯編碼,匯編行左列為內存地址,中間是對應的機器指令和數據(內存中的實際值),右側是對應的匯編碼。

比如,定義整數變數a並賦值1的語句,被編譯器編譯成C7 45 F8 01 00 00 00 這樣幾個位元組,其中C7為匯編碼中的MOV指令,可以操作16位寄存器和內存以及立即數,45 F8 是當前命名空間中變數地址,即變數a的地址(F845),而01 00 00 00 為32位寬度的數值1(內存排列順序是前低後高)。也就是說機器語言的指令格式為:指令代碼,地址,數據,當然根據不同指令,有時候地址和數據是不需要的。而右側 MOV dword ptr[a],1 是指令助記符,也就是匯編指令,而用匯編指令編寫的程序也是需要編譯成機器指令的。


指令C7對應的匯編碼及含義

❷ 機器語言和匯編語言及高級語言之間有什麼關系

答:

匯編語言和其他高級語言不同,因為類似C++這種高級語言需要先編譯成匯編語言再編譯成機器語言。因此匯編是更加貼近機器語言的底層語言,因此也單獨於一類。

指令與指令系統的關系,看「指令系統」的定義。
程序與指令的關系,看「程序」的定義。
機器語言與指令以及程序的關系,看「機器語言」的定義。
匯編語言與機器語言的關系,看「匯編語言」的定義。

❸ C語言編譯後是生成匯編代碼還是直接生成機器代碼

不會是這兩種語言代碼,而是編譯後直接生成二進制文件(.obj文件),再通過連接器鏈接成二進制文件(.exe/.dll/.ocx/.sys等)

❹ 為什麼高級語言要先編譯成匯編語言

高級語言不會編譯成匯編語言
而是直接編譯成二進制語言
也就是機器語言
機器語言和匯編語言是一一對應關系
所以 從機器語言和反向得到匯編。

❺ 編譯器為什麼會生成匯編語言而不是機器語言

計算機只能識別二進制代碼,所以機器指令是由二進制代碼組成的,即你所說的機器語言。所謂匯編語言,只是一種符號,用來方便人們使用,否則你看到的都是一串串的01011011之類的信息,一眼就認出它是什麼指令非常困難,而用匯編語言這種符號,一看就知道是什麼指令了。這種符號語言用助記符來表示操作碼,用符號或符號地址來表示操作數或數地址,它與機器指令是一一對應的。(樓上各位表述的所謂「步驟」論是不確切的)
所以,並不是你說的「生成匯編語言而不是機器語言」,生成的是機器語言,你在調試器或反匯編程序中看到的匯編語言代碼只是由反匯編程序把機器指令翻譯成你看得懂的符號--匯編語言--而已。(比如你在OD或IDA中可以看到每行匯編指令前面都有機器碼,如push ebp的機器碼是55h,單看55,你不是熟手的話可能還不知道它是什麼指令,後面給你顯示出符號"push ebp",你一下子就明白了,這就是一一對應的關系,連"55"都是為了讓你看的方便,否則應是01010101,即8個電子元件的電源開、關狀態)
同樣的道理,你在十六進制編輯器(如winhex、HexWorkShop等軟體)中看到的是十六進制每行16位元組排列的,那也是經過把二進制代碼每位元組轉換成十六進制顯示給你看的。

關於平台問題,當然會有影響,不同的CPU有不同的指令系統,就連同一廠家的CPU指令系統都不同,比如Intel公司的CPU,從最早的到現在的,指令不斷增多,什麼MMX、SSE等等新指令集不斷出現,更不要說不同廠家的CPU了。當然它們之間也有很多兼容的指令集。

閱讀全文

與編譯成匯編語言還是直接機器語言相關的資料

熱點內容
幼兒編程教育培訓多少錢 瀏覽:402
經常生氣有什麼東西能解壓 瀏覽:900
代理伺服器地址和埠可以怎麼填 瀏覽:62
unity5手游編譯模型 瀏覽:265
安卓無人機app源碼 瀏覽:808
pl1編程語言 瀏覽:801
台達plc編程換算指令大全 瀏覽:174
手機上的編程游戲 瀏覽:108
伺服器密碼機有什麼用 瀏覽:477
dos磁碟命令 瀏覽:955
單片機cpu52的功能 瀏覽:691
opc伺服器怎麼開發 瀏覽:373
覓喜是個什麼app 瀏覽:402
加密cd機 瀏覽:946
社保用什麼app繳納 瀏覽:313
nodevlinux 瀏覽:582
騰訊tt伺服器怎麼登錄密碼 瀏覽:898
windows命令提示符 瀏覽:352
win7管理員許可權命令 瀏覽:729
地圖app哪個適合老年人用 瀏覽:74