Stringa di caratteri larghi letterale in MASM?
-
28-10-2019 - |
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
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