Вычислить выражение а = (b2-(c+1)*d)/b - Assembler
Формулировка задачи:
Разработать программу на ассемблере, вычисляющую заданное выражение:
а = (b2-(c+1)*d)/b
Решение задачи: «Вычислить выражение а = (b2-(c+1)*d)/b»
textual
Листинг программы
mov al,b imul al mov dx,ax mov al,c inc al imul d xchg ax,dx sub ax,dx idiv b mov a,al
Объяснение кода листинга программы
mov al,b— переносит значение переменной b в регистр alimul al— выполняет умножение значения регистра al на значение переменной bmov dx,ax— переносит значение регистра ax в регистр dxmov al,c— переносит значение переменной c в регистр alinc al— увеличивает значение регистра al на 1imul d— выполняет умножение значения переменной d на значение регистра alxchg ax,dx— меняет значения регистра ax и dx местамиsub ax,dx— вычитает значение регистра dx из значения регистра axidiv b— выполняет деление значения регистра ax на значение переменной bmov a,al— переносит значение регистра al в переменную a Выполняемая операция: вычисление значения переменной a по формуле a = (b2-(c+1)*d)/b