5

私はAssemblyで少し錆びています。皆さんに質問したいのですが。

  1. これらの組み立て手順はNASMで有効ですか?
  2. 違いは何ですか、いつ使用する必要がありますか?
    mov EAX, EBX

vs

    mov EAX, [EBX]
4

2 に答える 2

17
mov EAX, EBX

EBXの値をEAXに移動します。

mov EAX, [EBX]

EBX内のアドレスの値をEAXに移動します(したがって、EBXには有効なアドレスが含まれている必要があります。そうでない場合、セグメンテーション違反が発生します)。

于 2012-04-29T00:08:59.833 に答える
8

Cが読めますか?もしそうなら、以前の定義を考えるint a, b;と、最初の命令は多かれ少なかれ同等です

a = b;

一方、以前の定義を考えるint a, *b;と、2番目の命令は多かれ少なかれ同等です

a = *b;

ただし、EAXとEBXは、スタック常駐変数ではなくレジスタです。

言うことができることはもっとたくさんありますが、上記はあなたにアイデアを与えます。

(ちなみに、NASM(私は過去5年間使用していません)は、GNUのアセンブラーとは逆の順序で引数を示します。NASMは宛先レジスタを左側に、ソースレジスタを右側に配置しますが、GNUはNASMの規則は、GNUの「AT&T構文」と比較して「Intel構文」とも呼ばれます。)

于 2012-04-29T00:04:06.513 に答える