访问数组元素,该数组元素是程序集(MASM)中的结构元素

时间:2018-11-24 19:56:11

标签: arrays assembly struct x86 masm

最近我已经开始了有关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符号没有定义,尽管它是标准类型。

Screenshot_1

编辑1:如果我使用的是2个dw大小(基本上是dw类型的大小(以字节为单位)),则会出现此错误。

Screenshot_2

编辑2:使用“ sizedw”插入的“ sizeof dw”会出现此错误

Screen_3

我做错了什么,解决方案是什么?

0 个答案:

没有答案