Доступ к элементу массива, который (массив) является элементом структуры в сборке (MASM) - PullRequest
0 голосов
/ 24 ноября 2018

Недавно я начал курс по сборке 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: используя "sizeof dw" вместо "size dw", я получаю эту ошибку

Screen_3

Что я делаю не так и чторешение для этого?

...