%nolist
Include mac.lib
%list
;ЇҐаҐЇЁб вм ¬ ббЁў ў ®Ўа ⮬ Ї®ап¤ЄҐ ў ¤агЈ®© ¬ ббЁў
A_DATA segment para
a dw 10 dup(0) ; ¬ ббЁў Ђ
b dw 10 dup(?) ;¬ ббЁў Ѓ
n dw ? ;Є®«ЁзҐбвў® н«Ґ¬Ґв®ў ¬ ббЁў Ђ
m dw ?
;r dw 1 dup<0>
mes1 db 10,13,'€Ј в祪® ђ.Ђ. ќ‚Њ§г-07 ‚ аЁ в-3 $'
mes2 db 10,13,'‚ўҐ¤ЁвҐ Є®«ЁзҐбвў® н«Ґ¬Ґв®ў ¬ ббЁў : $'
mes3 db 10,13,'ўўҐ¤ЁвҐ зЁб«®: $'
mes4 db 10,13,' $'
mes5 db 10,13,'¬ ббЁў Ђ: $'
mes6 db 10,13,'€§¬Ґсл© ¬ ббЁў: $'
a_data ends
a_stack segment stack
db 128 dup(?)
a_stack ends
a_code segment para
assume ds:a_data, ss:a_stack, cs:a_code
about proc near; Їа®жҐ¤га ўлў®¤ б®®ЎйҐЁп нЄа
message mes1
ret
about endp
msg proc ;Їа®жҐ¤га ўў®¤ зЁб« ¬ ббЁў
message mes3
key_$2bin
ret
msg endp
vvod proc far Тут процедура ввода массива
mov di,0
;§ ®бЁ¬ ў бзсвзЁЄ зЁб«® н«Ґ¬Ґв®ў ¬ ббЁў
cikl:
call msg
mov bx[di],ax
add di,2
loop cikl
ret
vvod endp
pech proc near
print_number
ret
pech endp
pech1 proc near
print_number
ret
pech1 endp
vivod proc near а тут процедура выода массива она работает
mov di,0
cikl2:
mov ax,bx[di]
call pech
add di,2
loop cikl2
ret
vivod endp
vivodIZMmas proc near здесь я попытался описать процедуру вывода массива в обратном порядке, но она не работает
mov ax,n
mov bx,1
inc si
cikl3:
mov ax,n
call pech1
add si,2
loop cikl3
ret
vivodIZMmas endp
;obr proc far ;Їа®жҐ¤га ЇҐаҐЇЁблў ой п ¤ л© ¬ ббЁў ў ®Ўа ⮬ Ї®ап¤ЄҐ
;mov di,0
;mov si,0
;mov r,0
;m1: mov
start:
mov ax,a_data
mov ds,ax
call about ;ўл§®ў дгЄжЁЁ about
message mes2
key_$2bin
mov n,ax ;ўў®¤ Є®«ЁзҐбвў н«Ґ¬Ґв®ў ў ¬ ббЁўҐ Ђ
mov cx,n
lea bx,a ;§ ®бЁ¬ ў ॣЁбва ¤аҐб з « ¬ ббЁў
call vvod ;ўл§®ў Їа®жҐ¤гал ўў®¤ ¬ бЁў
message mes5
mov cx,n
lea bx,a
call vivod
message mes6
mov cx,n
lea bx,a
call vivodIZMmas
mov ah, 4ch
int 21h
a_code ends
end start
Подскажите пожалуйста как написать этот вывод массива, в процедуре ли его вообще описывать, я тут просто перепробовал много вариантов, но пока застопорился на этом

