Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
为什么长度可以直接推入堆栈,而消息必须复制到寄存器然后推入堆栈?
为什么将字符串声明为字节,而将 11 定义为单词?
message:db'hello world' length:dw 11 mov ax, message push ax push word [length]
您应该可以push message直接执行此操作,但此操作的确切语法通常是特定于汇编程序的。您可能需要改写push offset message。这会将 的地址压入'h'堆栈。
push message
push offset message
'h'
推'he'(用类似的东西push word [message]or push word ptr [message]),OTOH,可能不是你真正想要的。我认为没有充分的理由使用堆栈仅传递字符串的 2 个字符。改为传递第一个字符的地址更有意义。
'he'
push word [message]
push word ptr [message]