Итак, у меня есть программа сборки, которая изменяет содержимое массива.Каково содержимое массива и каково значение array_length после выполнения?
Проблема в том, что при втором вызове процедуры Procm si = 10, затем si = 16, но длина моего массива равна 9. Какое содержимоетопора после мова ax, массив [si]?Содержимое адреса памяти?
DOSSEG
.MODEL SMALL
.STACK 200h
.DATA
array dw 9 ,8 ,7 ,6 ,5 ,4 ,3 ,2 ,1
array_length EQU $-array
l1 EQU 3
.CODE
start: mov ax, @DATA
mov ds, ax
mov si, 2*l1-2
call Procm
mov si, 4*l1-2
call Procm
mov si, 6*l1-2
call Procm
mov si, 6*l1-2
call Procm
mov si, 6*l1-2
call Procm
mov ax, 4c00h
int 21h
Procm PROC NEAR
mov cx, l1-1
mov ax, array[si]
B1: mov bx, array[si-2]
mov array[si], bx
sub si, 2
loop B1
mov array[si], ax
FIN: ret
Procm ENDP
nop
end start