機械語とアセンブリ言語プログラミングの関係は?
3 に答える
アセンブリ言語は、人間が機械語を簡単に記述できるようにするために発明されました。
アセンブリ言語:
MOV AX,1
機械語:
B8 01 00 ; B8 = copy two bytes into AX 0001 = value to copy
アセンブリ言語が隠れていることに注意してください0100
-0001
このプロセッサは「リトルエンディアン」です
重要な違いは、アセンブリ言語がラベルを提供することです:
JMP next_thing
機械語:
EB FC ; EB = jump, FC = current address - 4 bytes
組み立てる前に、手動でジャンプ オフセットを計算する必要がありました。
どちらも実装固有であり、プロセッサへの個々の命令を処理しますが、マシンコードはわずかにレベルが低く、人間のプログラマーには一連の数値として表され、ほとんどの場合純粋なバイナリで表されます。
一方、アセンブリは、純粋なバイナリではなく、シンボリックに記述されます。人間のプログラマーが読み取ってマシン コード バイナリに変換できるように設計されていますが、個々の命令でも機能します。
ウィキペディアはそれをうまくまとめています:
アセンブリ言語と呼ばれる機械語のより読みやすい表現では、単純に命令の数値を使用するのではなく、ニーモニック コードを使用して機械語命令を参照します。たとえば、Zilog Z80 プロセッサでは、CPU に B プロセッサ レジスタをデクリメントさせるマシン コード 00000101 は、アセンブリ言語で DEC B として表されます。
アセンブリ言語は、人間が読める機械語の表現です。