最近我已经开始了有关x86汇编(MASM)的课程,并且有一个问题。
我有一个结构数组,每个结构由2个数组组成
Tabl1 struc
namex db 4 dup (?)
field1 dw 4 dup (?)
Tabl1 ENDS
Data1 segment
I_struc db ?
I_namex db ?
A1 Tabl1 6 dup (<>)
Data1 ends
我需要使用某种值来初始化每个结构的field1数组的每个元素。 如何使用地址访问该元素?到目前为止,我已经
Code1 segment
ASSUME cs:Code1, ds:Data1
begin:
mov bx, 4
mov cx, 6
loop_1:
imul I_struc, cx, size Tabl1
loop_2:
imul I_namex, bx, size dw
mov byte ptr A1[I_struc-size Tabl1].field1[I_namex - size dw], somevalue ;line 25
loop loop_2
loop loop_1
mov ax, 4C00H
int 21H
Code1 ends
end begin
但是MASM编译器说dw符号没有定义,尽管它是标准类型。
编辑1:如果我使用的是2个dw大小(基本上是dw类型的大小(以字节为单位)),则会出现此错误。
编辑2:使用“ sizedw”插入的“ sizeof dw”会出现此错误
我做错了什么,解决方案是什么?