Вычислить значение выражения Y=(3*C^2-3*C-7)/8 - Assembler
Формулировка задачи:
Помогите,пожалуйста, нужно срочно написать программу в Ассемблере,которая бы считала по формуле: Y=(3*C^2-3*C-7)/8
Решение задачи: «Вычислить значение выражения Y=(3*C^2-3*C-7)/8»
textual
Листинг программы
- mov ax,C
- mov dx,ax
- dec ax
- imul ax,3 ; 3*(C-1)
- imul dx ; 3*С*(С-1)
- sub ax,7
- sbb dx,0 ; 3*С*(С-1)-7
- shrd ax,dx,3
- sar dx,3 ; делим на 8, результат в паре DX:AX
Объяснение кода листинга программы
- Переменная C помещается в регистр AX.
- Делитель 8 помещается в регистр DX.
- Регистр AX уменьшается на 1.
- Регистры AX и DX умножаются на 3.
- Результат вычитается из 7.
- Результат вычитания помещается в регистр DX, а в регистр AX записыруется знак отнятия (0).
- Результат делится на 8 с использованием регистра DX как делителя.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д