Domanda

Tu usi

name DB "Foo",0

per dichiarare name come stringa di byte "Foo".

Come si dichiara invece che sia una stringa di parole?(cioè 16 bit per carattere)

Modifica:

Sto cercando un metodo che funzioni bene all'interno delle macro, ad esempio:

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
È stato utile?

Soluzione

Potresti farlo con:

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

a seconda della codifica necessaria.

All'interno di una macro, potresti essere in grado di automatizzarla con la macro forc, qualcosa del tipo:

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

Non l'ho provato poiché non ho accesso a MASM sulla mia macchina attuale, quindi potrebbe non funzionare.

Altri suggerimenti

Oppure usa una parola, ...

name DW "F","o","o",0
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top