Зависает программа - Assembler (248944)
Формулировка задачи:
Tasm 1.4
При обычном запуске в dos тупо всё зависает, и результат не выводится на экран, при запуске в турбо дебаггере программа без ошибок доходит до конца, и при сворачивании ТД (alt+f5) результат всё таки есть. причём такое происходит только при делении, + - * работает как надо. HELP(
код
assume cs:mcode, ds:mdata, ss:mstk mcode segment main: mov ax, mdata mov ds, ax mov ax, a mov bx, b div bx test ax, ax jns oi1 mov cx, ax mov ah, 02h mov dl, '-' int 21h mov ax, cx neg ax oi1: 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 mov ax, 4c00h int 21h mcode ends mdata segment a dw 6 b dw 3 mdata ends mstk segment stack dw 120 dup(?) mstk ends end main
Решение задачи: «Зависает программа»
textual
Листинг программы
mov ax, a mov bx, b div bx
Объяснение кода листинга программы
mov ax, a
— переносит значение переменнойa
в регистрax
mov bx, b
— переносит значение переменнойb
в регистрbx
div bx
— выполняет деление регистраax
на значение в регистреbx
и сохраняет результат в регистреax
, а в регистреdx
вычисляет остаток от деления- Завершение программы