Ассемблер реализация 3-х веток - Assembler
Формулировка задачи:
в задании сказано реализовать три ветки поведения программы:
при
х<13 - ((X^2)/2)-15
x>13 3x-15
x=13 ((2x)/3)-5
первые две ветки работают отлично. проблема с 3 ибо не получаеться 26/3 а потом отнять 5. в итоге должно получиться 3, у меня почему то получаеться 33.(после деления работать с целой частью (26/3=8-5=3))
вот код програмы.
программу нужно реализовать через свич
х=13 это 3 кейс
вот код программы
х вводиться с клавиатуры. программа работы emu8086
#make_COM# include "emu8086.inc" org 100h CALL scan_num mov dl,13 mov al,cl cmp al,dl jg case1 cmp dl,al jg case2 cmp al,dl je case3 case1: mov bl,3 mul bl sub al,15 jmp endif case2: mul al sar al,1 add ax,15 jmp endif case3: sal al,1 mov bl,3 div bl mov ah,0 sub al,5 jmp endif endif: nop CALL print_num hlt DEFINE_SCAN_NUM DEFINE_PRINT_NUM DEFINE_PRINT_NUM_UNS END
Решение задачи: «Ассемблер реализация 3-х веток»
textual
Листинг программы
sbb ah,0
Объяснение кода листинга программы
sbb ah,0
- в данной инструкции происходит операция вычитания с учетом заема (Substract with Borrow) значения 0 из регистра ah.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д