0

为什么长度可以直接推入堆栈,而消息必须复制到寄存器然后推入堆栈?

为什么将字符串声明为字节,而将 11 定义为单词?

 message:db'hello world'
 length:dw 11


 mov ax, message
 push ax
 push word [length]
4

1 回答 1

0

您应该可以push message直接执行此操作,但此操作的确切语法通常是特定于汇编程序的。您可能需要改写push offset message。这会将 的地址压入'h'堆栈。

'he'(用类似的东西push word [message]or push word ptr [message]),OTOH,可能不是你真正想要的。我认为没有充分的理由使用堆栈仅传递字符串的 2 个字符。改为传递第一个字符的地址更有意义。

于 2013-03-29T15:22:26.563 回答