Pregunta

Usas

name DB "Foo",0

para declarar name como la cadena de bytes "Foo".

¿Cómo declaras que es una cadena de palabras?(es decir, 16 bits por carácter)

Editar:

Estoy buscando un método que funcione bien dentro de macros, por ejemplo:

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
¿Fue útil?

Solución

Podrías hacerlo con:

align 2
name DB "F", 0, "o", 0, "o", 0, 0, 0

dependiendo de la codificación que necesite.

Dentro de una macro, es posible que pueda automatizar esto con la macro forc, algo como:

NAME:
    &Name&_Name
        forc chr,<&Name&>
            byte chr, 0
        endm
        byte 0

No he probado esto porque no tengo acceso a MASM en mi caja actual, por lo que puede que no funcione.

Otros consejos

O use una palabra, ...

name DW "F","o","o",0
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top