0

你用

name DB "Foo",0

声明name为 byte-string "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
4

2 回答 2

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,所以它可能无法正常工作。

于 2012-02-22T01:54:23.157 回答
1

或者用一句话,...

name DW "F","o","o",0
于 2014-01-03T14:23:15.573 回答