Широкий символьный строковый литерал в MASM? - PullRequest
0 голосов
/ 22 февраля 2012

Вы используете

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

Ответы [ 2 ]

3 голосов
/ 22 февраля 2012

Вы можете сделать это с:

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 голос
/ 03 января 2014

Или используйте слово, ...

name DW "F","o","o",0
...