2017-04-24 72 views
2

gnu集合標籤前面的美元符號是什麼意思?美元符號在gnu集合標籤中的含義

例如,是什麼mov msg, %simov $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, %eax(放1%eax寄存器) 或處理一些變量的一個地址時,例如:movl $var, %eax(這意味着取var標籤地址,放入%eax寄存器)。 如果你不要使用美元符號,這意味着「將的值從var標籤並把它註冊」。

+0

這是有道理的。如果是這樣的話,那麼jmp使用的標籤也不應該以$開頭? – Zack