彙編語言和機器語言(對於相同的底層系統)是否真的一樣?這兩個概念之間有什麼區別嗎?彙編語言和機器語言之間的關係是什麼?
回答
彙編語言是機器語言的一種便利機制。使用匯編語言,您可以使用助記符序列代替數字操作代碼,並且可以使用符號標籤而不是手動計算偏移量。它還可以保護您免受真正的愚蠢錯誤 - 如輸入格式錯誤的處理器指令。
否則assemly語言是機器語言的等價物。有時你會得到一箇舊的彙編程序,它不會爲新處理器的某些指令提供助記符 - 然後你仍然可以直接在程序中插入操作代碼。
在彙編中,指令是CPU指令易於理解的表示。
但彙編也使得,例如,解決簡單:
- 在機器語言,你必須知道你在哪裏,要跳轉到
- 之間的距離(地址空間)在彙編語言中調用一個地址「iWantToJumpHere」,然後你可以說「跳iWantToJumpHere」
這使得裝配更容易維護,特別是當地址之間的距離變化。
機器語言是CPU操作碼的「位編碼」。
大會的langauge是「符號編碼」一個CPU的操作碼。
因此,例如象徵:
loop: dec R1 # Decrement register R1
bnq loop # Branch if not equal to zero to
# address "loop"
變爲位編碼:
# Mythical CPU Machine code 4 bits operation,
# 4 bit "option"
0x41 # 4 is a "dec" and represents r1;
0x7E # 7 is bnq and E means PC -2;
一般是一對一的關係,然而,一些彙編語言將ocationally有額外的彙編指令映射到任何多機器代碼指令或重用另一個操作碼。如使用機器碼「xor R1,R1」作爲「clr R1」或類似的東西。
除了彙編語言將傾向於支持其在上世紀80年代的時候組件廣泛使用了源代碼中的更「高級」外觀「宏編程」。我親自編寫了類似「plot x,y」和「Hex Val」的彙編宏,以簡化常見操作。
例如:
# Mythically CPU Macro
.macro spinSleep x,y
ld #x,y
localLoop: dec y
brq localLoop
.endmacro
# Macro invocation
spinSleep 100,R1
# Macro expantion
ld #100,R1
localLoopM: dec R1
brq localLoopM # localLoopM is "Mangled" for localization.
彙編級語言是朝向通過允許程序員編寫助記符代替二進制代碼(機器代碼),使得所述編程簡單第一意識步驟。
我找到了一個很好的解釋,認爲它張貼在這裏,這樣別人才能看懂:
機器語言是用來控制在 計算機處理器的實際位 ,通常被視爲十六進制數字的序列 (通常爲 字節)。處理器從程序存儲器中讀取這些位,並且位 代表關於 接下來要做什麼的「指令」。因此機器語言 提供進入 指令到計算機的一種方式(是否 通過交換機,穿孔帶或 二進制文件)。
彙編語言是機器語言的多個人類 可讀圖。 代替 語言爲數字,指令 和寄存器名稱爲 (通常縮寫詞,或 助記符,例如ld表示「加載」)。與高級語言 不同,彙編程序非常接近機器語言 。 主要抽象(除了 助記符)是使用標記 ,而不是固定的存儲器地址,和 評論。
彙編程序將彙編語言程序(即 文本文件)翻譯爲機器 語言。甲 反彙編執行反向 功能(儘管標籤的評論和 名稱將已 在彙編過程丟棄)。
來源:What is difference between machine language and assembly language?
機器語言是芯片瞭解什麼 大會是您瞭解什麼
每個彙編指令有一個機器語言等同
43 00 00 00 = INC EBX
41 00 00 00 = INC EAX
3B CA 00 00 = CMP ECX,EDX
C3 00 00 00 =保留
等
彙編語言是操作碼(操作碼)的符號的編碼是由人類理解和僅用於指示計算機處理器(硬件操作)和機器人(機器人操作)執行特定任務。這對人類來說是一種可以理解的語言。該語言僅用於指示硬件操作,絕對不用於創建軟件程序。彙編程序用於將操作碼的這個符號編碼部分(操作碼)轉換爲機器語言。操作碼(操作碼)是機器語言的一部分。
目前尚不清楚這是什麼的答案是爲了傳達。 – 2016-05-15 18:17:37
機器語言:
- 這是第一代編程語言
- 它比彙編語言困難得多
- 困難的人
- 正是在形式瞭解0s和1s
- 機器語言因平臺而異
- It c ANNOT輕易改變
- 它不支持修飾
- 差錯的存在的風險是很高的
- 二進制代碼不能被記憶
- 無需編譯
彙編語言:
- 它是第二代編程語言
- 它比機器語言
- 易少難以被人理解
- 它採用象徵性的指令,數據項的描述性名稱和存儲位置
- 將彙編語言與平臺相關的
- 它是易於修改
- 它的支持轉換
- 錯誤的發生減少
- 記性風險很高
- 這是需要編譯器和知道作爲彙編
- 1. 機器和彙編語言之間的關係
- 2. 這是什麼彙編語言?
- 3. 彙編語言 - 堆棧機
- 4. 彙編語言
- 5. 彙編語言不能做什麼,但只有機器語言可以嗎?
- 6. 彙編語言隨機數發生器
- 7. 彙編語言機器代碼
- 8. 彙編語言優化器
- 9. LESS語言和Less框架之間的聯繫是什麼?
- 10. Doxygen和彙編語言
- 11. MIPS彙編語言
- 12. 8086彙編語言
- 13. x86彙編語言
- 14. 彙編語言環
- 15. 彙編語言 - LDI
- 16. CMP彙編語言
- 17. 彙編語言:cbw
- 18. MIPS彙編語言
- 19. 系統編程語言和應用程序編程語言之間的區別
- 20. 什麼是8086系統日期彙編語言程序
- 21. 這些彙編語言語句的含義是什麼?
- 22. 將彙編語言宏轉換爲純彙編語言
- 23. 什麼是GCC內聯彙編語言中的r()和double%%%?
- 24. 用匯編語言編寫C =(A + B)^ 2並轉換爲機器語言
- 25. 關於彙編語言的問題
- 26. 關於彙編語言的問題
- 27. 彙編語言的用法
- 28. 彙編語言的指針
- 29. addi和add之間的彙編語言(MIPS)差異
- 30. 彙編語言到C語言轉換INCF和CPFSLT
感謝銳齒,我想我得到了它 – freenight 2009-08-10 16:08:48