Неправильный вывод из программы - 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
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д