程序需求:使用汇编程序,并按公式z=((x+y)*8-x)/4 计算z的值,并将结果送到result中

编程思路:首先先分析一下 两数相加可以 使用add 相乘可以用sub 乘以8 可以使用左移指令sal 移动3次 就是乘以了8 因为移位的次数超出了1位,所以 应先将移位的次数3 送进cl寄存器中,然后在将使用sal  对一个数/4 也可以使用右移指令sar 移位2次 就实现了对一个数进行/4操作。剩下的代码就没什么了。


;试汇编程序语言程序  并按公式z=((x+y)*8-x)/4 计算z的值 并将结果保存在result中
data segment
x dw 2
y dw 6
result dw ?
data ends
stack segment prar stack
dw 20 dup(0)
stack ends
code segment
assume cs:code,ds:data,ss:stack
begin:mov ax,data
mov ds,ax
mov bx,x
add bx,y
mov cl,3 ;sal 算术左移指令(Shift arithmetic left) 若直接移位一次 可直接将指令中的计数值置1
sal bx,cl ;要是移位次数大于1 应先将移位次数送进cl 寄存器,在把cl放在指令的计数值位置上
sub bx,x
mov cl,2
sar bx,cl ;sar 算术右移指令
mov result,bx
mov ah,4ch
int 21h
code ends
end begin