2009-08-10 916 views

回答

35

彙編語言是機器語言的一種便利機制。使用匯編語言,您可以使用助記符序列代替數字操作代碼,並且可以使用符號標籤而不是手動計算偏移量。它還可以保護您免受真正的愚蠢錯誤 - 如輸入格式錯誤的處理器指令。

否則assemly語言是機器語言的等價物。有時你會得到一箇舊的彙編程序,它不會爲新處理器的某些指令提供助記符 - 然後你仍然可以直接在程序中插入操作代碼。

+0

感謝銳齒,我想我得到了它 – freenight 2009-08-10 16:08:48

5

在彙編中,指令是CPU指令易於理解的表示。

但彙編也使得,例如,解決簡單:

  • 在機器語言,你必須知道你在哪裏,要跳轉到
  • 之間的距離(地址空間)在彙編語言中調用一個地址「iWantToJumpHere」,然後你可以說「跳iWantToJumpHere」

這使得裝配更容易維護,特別是當地址之間的距離變化。

14

機器語言是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. 
0

彙編級語言是朝向通過允許程序員編寫助記符代替二進制代碼(機器代碼),使得所述編程簡單第一意識步驟。

8

我找到了一個很好的解釋,認爲它張貼在這裏,這樣別人才能看懂:

機器語言是用來控制在 計算機處理器的實際位 ,通常被視爲十六進制數字的序列 (通常爲 字節)。處理器從程序存儲器中讀取這些位,並且位 代表關於 接下來要做什麼的「指令」。因此機器語言 提供進入 指令到計算機的一種方式(是否 通過交換機,穿孔帶或 二進制文件)。

彙編語言是機器語言的多個人類 可讀圖。 代替 語言爲數字,指令 和寄存器名稱爲 (通常縮寫詞,或 助記符,例如ld表示「加載」)。與高級語言 不同,彙編程序非常接近機器語言 。 主要抽象(除了 助記符)是使用標記 ,而不是固定的存儲器地址,和 評論。

彙編程序將彙編語言程序(即 文本文件)翻譯爲機器 語言。甲 反彙編執行反向 功能(儘管標籤的評論和 名稱將已 在彙編過程丟棄)。

來源:What is difference between machine language and assembly language?

1

機器語言是芯片瞭解什麼 大會是您瞭解什麼

每個彙編指令有一個機器語言等同

43 00 00 00 = INC EBX

41 00 00 00 = INC EAX

3B CA 00 00 = CMP ECX,EDX

C3 00 00 00 =保留

-2

彙編語言是操作碼(操作碼)的符號的編碼是由人類理解和僅用於指示計算機處理器(硬件操作)和機器人(機器人操作)執行特定任務。這對人類來說是一種可以理解的語言。該語言僅用於指示硬件操作,絕對不用於創建軟件程序。彙編程序用於將操作碼的這個符號編碼部分(操作碼)轉換爲機器語言。操作碼(操作碼)是機器語言的一部分。

+0

目前尚不清楚這是什麼的答案是爲了傳達。 – 2016-05-15 18:17:37

-1

機器語言:

  1. 這是第一代編程語言
  2. 它比彙編語言困難得多
  3. 困難的人
  4. 正是在形式瞭解0s和1s
  5. 機器語言因平臺而異
  6. It c ANNOT輕易改變
  7. 它不支持修飾
  8. 差錯的存在的風險是很高的
  9. 二進制代碼不能被記憶
  10. 無需編譯

彙編語言:

  1. 它是第二代編程語言
  2. 它比機器語言
  3. 易少難以被人理解
  4. 它採用象徵性的指令,數據項的描述性名稱和存儲位置
  5. 將彙編語言與平臺相關的
  6. 它是易於修改
  7. 它的支持轉換
  8. 錯誤的發生減少
  9. 記性風險很高
  10. 這是需要編譯器和知道作爲彙編