Ввод и вывод двумерного массива в 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