Ассемблер реализация 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 кейс вот код программы
Листинг программы
  1. #make_COM#
  2. include "emu8086.inc"
  3. org 100h
  4. CALL scan_num
  5. mov dl,13
  6. mov al,cl
  7. cmp al,dl
  8. jg case1
  9. cmp dl,al
  10. jg case2
  11. cmp al,dl
  12. je case3
  13. case1:
  14. mov bl,3
  15. mul bl
  16. sub al,15
  17. jmp endif
  18.  
  19. case2:
  20. mul al
  21. sar al,1
  22. add ax,15
  23. jmp endif
  24.  
  25. case3:
  26. sal al,1
  27. mov bl,3
  28. div bl
  29. mov ah,0
  30. sub al,5
  31.  
  32. jmp endif
  33. endif: nop
  34. CALL print_num
  35. hlt
  36. DEFINE_SCAN_NUM
  37. DEFINE_PRINT_NUM
  38. DEFINE_PRINT_NUM_UNS
  39. END
х вводиться с клавиатуры. программа работы emu8086

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

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

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

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

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


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

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

11   голосов , оценка 3.727 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы