程序需求:使用汇编程序,并按公式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