Широкий символьный строковый литерал в MASM?

Ты используешь

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 ответа

Решение

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

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 на моем текущем ящике, поэтому он может не работать.

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

name DW "F","o","o",0
Другие вопросы по тегам