Ввод и вывод двумерного массива в TASM - Assembler

Узнай цену своей работы

Формулировка задачи:

Здравствуйте, не могу понять где ошибка в моей программе. В начале я ввожу числа и вроде всё нормально, но когда программа начинает их выводить, то делает она это очень странным образом. На подобии змейки: Пример: 0 0 0 0 0 1 1 1 1 1 2 2 2 2 2 3 3 3 3 3 4 4 5 5 6 0 1 2 3 4 1 2 3 4 4 2 3 4 4 5 3 4 4 5 5 4 4 5 5 6 Вот, собственно, сам код программы:
.model small
.stack
.data
    mas db 5 dup (5 dup (?))
    nxtln db 10, 13, "$"
    spaace db 32, "$"
.code
 
space proc
    push dx
    push ax
    mov dx, offset spaace
    mov ah, 09h
    int 21h
    pop ax
    pop dx
    ret
space endp
 
nextln proc
    push dx
    push ax
    mov dx, offset nxtln
    mov ah, 09h
    int 21h
    pop ax
    pop dx
    ret
nextln endp
 
main:
    mov ax, @data
    mov ds, ax
 
    xor ax, ax
    mov si, 0
    mov bx, 0
    mov cx, 5
in_external:
    push cx
    mov cx, 5
    mov si, 0
in_iternal:
    mov ah, 01h
    int 21h
    sub al, 47
    mov mas[bx][si], al
    inc si
    call space
    loop in_iternal
in_next:
    call nextln
    pop cx
    inc bx
    loop in_external
    
    call nextln
    mov si, 0
    mov bx, 0
    mov cx, 5
out_external:
    push cx
    mov cx, 5
    mov si, 0
out_iternal:
    mov ah, 02h
    mov dl, mas[bx][si]
    add dl, 47
    int 21h
    inc si
    call space
    loop out_iternal
out_next:
    call nextln
    pop cx
    inc bx
    loop out_external
 
    mov ax, 4c00h
    int 21h
end main

Решение задачи: «Ввод и вывод двумерного массива в TASM»

textual
Листинг программы
db 1,2,3,4,5,6,7,8,9

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 4 из 5
Похожие ответы