2013-03-29 106 views
0

爲什麼長度可以直接推入堆棧,而消息必須複製到寄存器然後推入堆棧?將數據推入堆棧,可信

爲什麼字符串被聲明爲一個字節而11被定義爲一個字?

message:db'hello world' 
length:dw 11 


mov ax, message 
push ax 
push word [length] 

回答

0

您應該可以直接執行push message,但確切的語法通常是彙編程序特定的。您可能需要編寫push offset message。這會將'h'的地址推入堆棧。

推動'he'(有點像push word [message]push word ptr [message]),OTOH,可能不是你真正想要的。我沒有看到使用堆棧傳遞只有2個字符的字符串的好理由。代之以傳遞第一個字符的地址更有意義。

+0

so message defined as a byte is just pointing to the first byte of any string a write? – user2221424