Бесконечное повторение кода после команды IDIV - Assembler
Формулировка задачи:
После idiv зацикливается
Вот сам код (буду благодарен если проверите на остальные косяки )
.MODEL TINY .386 stack 256 DATASEG x1 db 10 x2 db 27 x3 db 11101100b sum db 0 raz db 0 proiz dw 1 ostotdel db 2 chast db 2 CODESEG start: mov al, x1 add al, x2 mov sum, al mov al, x2 sub al, x1 mov raz, al mov al, x2 neg x2 sub al, x1 mov al, x1 cbw mov bl, x2 cbw neg bx imul bx mov proiz, ax mov al, x1 cbw mov bl, x2 cbw neg bx mul bx mov al, x2 cbw mov bl, x1 idiv bl mov chast, al mov ostotdel, ah mov al, x3 cbw bts ax, 1 bts ax, 3 not ax and ax, 11110001b mov bx, ax xor ax, bx mov ax,4C00h int 21h END start
Решение задачи: «Бесконечное повторение кода после команды IDIV»
textual
Листинг программы
; tasm /m keycode1.asm ; tlink /t /x keycode1.obj .MODEL Tiny .CODE ORG 100h Start: ;отсюда начинается код программы .......................................................... ;эпилог int 20h ; Выход ;организация данных после кода Question db 'Вы хотите этого :) (Y/N)?$' YesMessage db 13,10,'Выбран ответ "да"$' NoMessage db 13,10,'Выбран ответ "нет"$' END Start
Объяснение кода листинга программы
- .MODEL Tiny - устанавливает модель памяти для программы, в данном случае
Tiny
, что означает, что программа будет использовать 16-битные сегменты и байтовые переменные. - .CODE - сегмент кода программы.
- ORG 100h - определяет начальный адрес сегмента кода программы, в данном случае 100h.
- Start: - метка начала выполнения программы.
- int 20h - вызывает функцию завершения работы программы.
- Question db 'Вы хотите этого :) (Y/N)?$' - определяет строку вопроса для пользователя.
- YesMessage db 13,10,'Выбран ответ
да
$' - определяет строку сообщения, которое будет отображено, если пользователь введетда
. - NoMessage db 13,10,'Выбран ответ
нет
$' - определяет строку сообщения, которое будет отображено, если пользователь введетнет
. - END Start - указывает точку окончания программы. Пожалуйста, обратите внимание, что этот код является простым примером и может потребовать дополнительной настройки и обработки ошибок для полноценного использования.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д