2
given a a label 
L1: db "beat it",10,0
L2:


what is the meaning of:
mov eax,L2
sub eax,L1

登録するL2、およびラベルインクルード文字列からのサブレジスタ

4

2 に答える 2

6

MOV EAX,L2ラベルが表すアドレスをレジスタに移動します。

MOV EAX,[L2]そのアドレスから値(メモリの内容)を取得するものとは異なります。

于 2012-09-20T14:38:16.053 に答える
2

mov eax, L2 - L1これらのラベル間のバイト数を取得するために、アセンブル時に実行する必要があることを実行時に実行するのは、無意味に非効率的な方法です。sizeofつまり、定数をハードコーディングする代わりに 、アセンブラに配列を計算させます。

L1_length equ $ - L1通常、アセンブル時定数を定義するようなことをします。$はNASMでどのように機能しますか?を参照してください。

しかし、とにかく、シンボルは内部にないので[](そして、これはNASMであり、Intel構文の他のフレーバーではありません)、L1即時のオペランドです。シンボルの絶対アドレス(この場合はラベルで定義されます)。

たとえばmov eax, L2、ラベルの絶対アドレスを命令とともにEAXに入れますmov r32,imm32

于 2020-01-18T10:22:41.887 に答える