汇编语言 Z=(A+B)/2 + 3*(B+C)/(A-C)A,B,C 均为有符号字变量,运算结构不超过两字节,加减法无进借位,相除时无余数,实现方法?
来源:学生作业帮助网 编辑:六六作业网 时间:2024/11/16 09:21:46
汇编语言 Z=(A+B)/2 + 3*(B+C)/(A-C)A,B,C 均为有符号字变量,运算结构不超过两字节,加减法无进借位,相除时无余数,实现方法?
汇编语言 Z=(A+B)/2 + 3*(B+C)/(A-C)
A,B,C 均为有符号字变量,运算结构不超过两字节,加减法无进借位,相除时无余数,实现方法?
汇编语言 Z=(A+B)/2 + 3*(B+C)/(A-C)A,B,C 均为有符号字变量,运算结构不超过两字节,加减法无进借位,相除时无余数,实现方法?
; 汇编语言 Z=(A+B)/2 + 3*(B+C)/(A-C)
; A,B,C 均为有符号字变量,运算结构不超过两字节,加减法无进借位,相除时无余数,实现方法?
assume cs:code,ds:data
data segment
A dw ; 请自填数据
_C dw ; C是masm中的关键字,不能用来作为标识符
data ends
code segment
start:
xor ax,ax
push ax
push ds
mov ax,data
mov ds,ax
mov A,1 ; 数据例子
mov B,-3
mov _C,-2
; Z=(A+B)/2 + 3*(B+C)/(A-C)
mov ax,A
add ax,B ; AX= A+B
cwd
mov cx,2
idiv cx
mov bx,ax ; bx=ax = (A+B)/2
mov ax,B
add ax,_C
mov cx,3
imul cx ; dx:ax = (b+c)*3
mov cx,A
sub cx,_C ; cx = a-c
idiv cx ; ax = (b+c)*3/(a-c)
add ax,bx ; ax = (A+B)/2 + (b+c)*3/(a-c)
mov Z,ax
retf
code ends
end start