0

あなたが使う

name DB "Foo",0

namebyte-string であると宣言します"Foo"

代わりに単語文字列であることをどのように宣言しますか? (つまり、1 文字あたり 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 に答える