mov si, word [message]
是NASM语法。MASM中的等价项是
mov si, word ptr [message]
几乎所有32位Windows的过程都需要DWORDs作为参数。
SI
是一个词。改变
invoke StdOut, si
invoke StdOut, esi
MASM32程序
StdOut
需要指向以null结尾的字符串的指针。与
MOV
LEA
获取指针。改变
mov si,word ptr[信息]
到
lea esi, [message]
或者,您可以立即加载指针:
mov esi, OFFSET message
你根本问题的答案是:
mov si, word [eax]
加载所指的单词
EAX
进入登记册
哪一个是下半部
ESI
INCLUDE \masm32\include\masm32rt.inc
.data
message db "Hello world!", 0
.code
main:
xor esi, esi
mov eax, OFFSET message
mov si, WORD PTR [eax]
printf ("0x%x",esi)
invoke ExitProcess, 0
end main