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