Напишите программу сборки, которая вводит 16 чисел в массив 4x4 и печатает их на экране - PullRequest
0 голосов
/ 23 сентября 2019

массив ввода / вывода в массиве 2d, не показывающий вывод

Я попытался использовать внешний цикл, который добавляет размер строки (в данном случае 4) каждый раз, когда мой внутренний цикл завершен.он в основном перемещается в другую строку и во внутреннем цикле я отображаю сообщение и принимаю ввод.

model small
.stack 100h
.data
Array db 3 dup(3 dup(0))
i1 db "Enter value for array ","$"
i2 db "muahhah ","$"
num db ?
x db ?
rowsz db 3
temp db 0

.code

main proc
mov ax,@data
mov ds,ax

mov bx,offset Array
mov cx,3

input:
mov temp,3
mov si,0

row1:
mov ah,0
mov ah,09h
        mov dx,offset i1
        int 21h                 ;1st msg print
;new line................
mov ah,0
mov dx,0
mov dx,13
mov ah,02h
int 21h


mov ah,0
mov dx,0
mov dx,10
mov ah,02h
int 21h
;new line end.............
;1st input
    mov al,0
    mov ah,01h
        int 21h
        mov x,al
cmp x,13
mov bl,x

mov [bx][si],bl
inc si
;new line................
mov ah,0
mov dx,0
mov dx,13
mov ah,02h
int 21h

mov ah,0
mov dx,0
mov dx,10
mov ah,02h
  int 21h
;new line end.............
dec temp
cmp temp,0
jnz row1

add bx,rowsz
loop input


;........................................printing of 2d array
mov cx,0

mov bx,offset Array

mov cx,4
print:
mov temp,4
mov si,0
row:
mov dl,0
mov dl,[bx][si]
mov ah,02h
int 21h

mov dl,0
mov dl,' '
mov ah,02h
int 21h
inc si

dec temp
cmp temp,0
jnz row

new line................
;mov dx,13
  mov ah,02h
  int 21h

  mov dx,10
 mov ah,02h
  int 21h
;new line end.............
loop print


  mov ah,4ch
  int 21h

main endp
end main

Ожидайте увидеть результат таким образом - фактический результат в dosbox застревает и не показывает результата.

1234
5678For
1234
5678
...