2017-04-24 15 views
2

gnuアセンブリラベルの前にあるドル記号の意味は何ですか?gnuアセンブリラベルのドル記号の意味

例えば

mov msg, %si

mov $msg, %siの違いは何である(よりコンテキストの場合、私は、x86ベアメタルの例で遊んだ:https://github.com/cirosantilli/x86-bare-metal-examples/blob/master/bios_hello_world.S

#include "common.h" 
BEGIN 
    mov $msg, %si 
    mov $0x0e, %ah 
loop: 
    lodsb 
    or %al, %al 
    jz halt 
    int $0x10 
    jmp loop 
halt: 
    hlt 
msg: 
    .asciz "hello world" 

What do the dollar ($) and percentage (%) signs represent in assembly intel x86?は、一般的に論じレジスタの前の%と定数の前に$を使用していますが、以下の答えとほぼ同じくらい明確に$を使用しているとは思いません)

+2

組み込みIntel x86では、ドル記号($)とパーセンテージ(%)は何を表していますか?(http://stackoverflow.com/questions/9196655/what-do-the-dollar-and-インテグレーション-intel-x86) –

答えて

1

あなたは$ movl $1, %eax1%eaxにレジスタを置く) またはいくつかの変数のアドレスを扱う、例えば:movl $var, %eax(これはvarラベルアドレスを取得し、%eaxレジスタにそれを置くことなど、一定のへの対処)記号)。 ドル記号「の値をvarラベルから「register」に設定することを意味する「」記号を使用しないでください。

+0

意味があります。そうであれば、jmpで使用されるラベルも$で始まるべきではありませんか? – Zack

関連する問題