У меня есть два сегмента данных
Data 1
A1 dw 2 dup (6 dup (7 dup (5 dup (?))))
Data1 ends
Data2 segment
A2 dd 2 dup (6 dup (7 dup (5 dup (?))))
Data2 ends
Мне нужно переместить элемент с массива А2[0,1,2,3] во все елементы масива А1
Code1 segment
assume DS:Data2, ES:Data1, CS:Code2
begin2:
mov ax,Data2
mov bx,Data1
mov DS, ax
mov ES, bx
cld
xor ax,ax
xor cx,cx
mov ebx,48 ;смещения в массиве А2[0,1,2,3] относительно начала массива А2
; это будет 48 елемент
lea eax,A1
mov es, eax
lea eax,A2
lea eax,[eax+ebx*4]
mov cx,420
Rep stosd
mov AX, 4c00h
int 21h
end begin2
Code1 ends
Правильно ли я сделал?
lea ax, А2[0,1,2,3]? И если у вас код 16 битный, то использовать 32 битный eax и stosd, так же работающую по 32 бита не надо. (разве что размножить адрес в eax дважды и уменьшить в 2 раза количество операций – Mike Nov 26 '17 at 12:32lea ax, A2[0][1][2][3]– Mike Nov 26 '17 at 12:36