Неправильный вывод из программы - Assembler
Формулировка задачи:
Всем доброго утра. Столкнулся с проблемой которую никак не могу понять.
Имеется код программы
программа компилируется, но при выполнении выводит 258, а не 3 как должно.
Хотя программа
выводит 3 как положено.
Излазил обе программы в отладчике, но так и не смог разобраться.
Что то упускаю, но что не могу понять. Подскажите пожалуйста в чем проблема
и как ее исправить. Заранее всем спасибо.
.model small
.386
.stack 100h
.code
start:
mov ax,127
mov bx,35
qqq:
sub ax,bx
inc cx
cmp ax,bx
ja qqq
xor ax,ax
mov ax,cx
call vyv
mov ax,4c00h
int 21h
vyv proc
xor bx,bx
xor cx, cx
mov bx, 10
oi2:
xor dx,dx
div bx
push dx
inc cx
test ax, ax
jnz oi2
mov ah, 02h
oi3:
pop dx
add dl, '0'
int 21h
loop oi3
ret
vyv endp
end start.model small
.386
.stack 100h
.code
start:
mov cx,3
mov ax,cx
call vyv
mov ax,4c00h
int 21h
vyv proc
xor bx,bx
xor cx, cx
mov bx, 10
oi2:
xor dx,dx
div bx
push dx
inc cx
test ax, ax
jnz oi2
mov ah, 02h
oi3:
pop dx
add dl, '0'
int 21h
loop oi3
ret
vyv endp
end startРешение задачи: «Неправильный вывод из программы»
textual
Листинг программы
; Файл типа COM --------- AX 0000 CX 00FF DS:SI 2075:0100 CS:IP 2075:0100 BP 0000 ODITSZAPC BX 0000 DX 2075 ES:DI 2075:FFFE SS:SP 2075:FFFE FL 7202 001000000 ; Файл типа EXE --------- AX 0000 CX 00FF DS:SI 2075:0200 CS:IP 2065:0200 BP 0000 ODITSZAPC BX 0000 DX 2075 ES:DI 2075:0200 SS:SP 2C0D:0200 FL 7202 001000000