I a créé une structure qui a tenu des informations de base, ainsi que des chaînes de BYTE .. Par exemple:Assemblée Langue x86: Décalage d'un opérande indirect à une structure
EXAMPLESTRUCT STRUCT
somePrompt BYTE 20 DUP (0)
;other fields
EXAMPLESTRUCT ENDS
Mon intention était de créer un tableau de structures avec des messages relatifs à cette structure spécifique, initialisation le long des lignes de:
ex1 EXAMPLESTRUCT <"Enter first">
ex2 EXAMPLESTRUCT <"Enter second">
référençant l'adresse du champ de structure directement (mov edx, OFFSET ex1.somePrompt) a bien fonctionné, mais l'utilisation de l'adressage indirect je continué à obtenir un Erreur OFFSET:Donc, est-ce que mon code est faux ou est-ce juste une utilisation illégale de OFFSET pour une raison ou une autre?
Le seul travail que j'ai trouvé autour faisait la structure contient des pointeurs, puis les initialiser à pointer un message déjà:
WORKAROUND STRUCT
somePTR DWORD ?
;...
WORKAROUND ENDS
.data
msg BYTE "Hello World",0
struct1 WORKAROUND <OFFSET msg>
puis affiche un message le long des lignes de
mov esi,OFFSET struct1
mod edx,(WORKAROUND PTR [esi]).somePTR
D'autres solutions/solutions de contournement ou devrais-je m'en tenir aux pointeurs?
Instruction très utile, merci beaucoup qui a fait l'affaire. – user994121