您使用
name DB "Foo",0
将name
声明为字节字符串"Foo"
。
您如何将其声明为单词字符串? (即每个字符16位)
我正在寻找一种在宏内部运行良好的方法,例如:
GenerateThunk macro Name
.code
&Name& proc public
push offset NAME
jmp &Name&__actual
NAME: ; I need something like this,
&Name&_Name dw "&Name&", 0 ; <--- but `dw' doesn't work!
&Name& endp
endm
答案 0 :(得分:3)
你可以用:
align 2
name DB "F", 0, "o", 0, "o", 0, 0, 0
取决于您需要的编码。
在宏中,您可以使用forc
宏自动执行此操作,例如:
NAME:
&Name&_Name
forc chr,<&Name&>
byte chr, 0
endm
byte 0
我没有尝试过这个,因为我在当前的盒子上无法访问MASM,所以它可能无效。
答案 1 :(得分:1)
或者用一个词,......
name DW "F","o","o",0