Недавно я начал курс по сборке 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](https://i.stack.imgur.com/pwK5q.png)
Редактировать 1: Если я использую 2 блока размером dw (который в основном является размером типа dw в байтах), я получаю эту ошибку.
![Screenshot_2](https://i.stack.imgur.com/uvTVR.png)
Редактировать 2: используя "sizeof dw" вместо "size dw", я получаю эту ошибку
![Screen_3](https://i.stack.imgur.com/6tfZY.png)
Что я делаю не так и чторешение для этого?