Ассемблер реализация 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 кейс вот код программы
#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
х вводиться с клавиатуры. программа работы emu8086

Решение задачи: «Ассемблер реализация 3-х веток»

textual
Листинг программы
sbb ah,0

Объяснение кода листинга программы

  1. sbb ah,0 - в данной инструкции происходит операция вычитания с учетом заема (Substract with Borrow) значения 0 из регистра ah.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 3.727 из 5
Похожие ответы