1.计算U=(X+(Y*Z-100))/W
其中:X,Y,Z,W均为十六位有符号数。
程序如下:
DATA SEGMENT
X DW 10 ;16位变量
Y DW 20
Z DW 30
W DW 40
U DW ?,?
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:
MOV AX,DATA
MOV DS,AX
MOV AX,Y
IMUL Z ;计算Y*Z,内容放在DX,AX中
MOV CX,AX
MOV BX,DX
SUB CX,100 ;计算Y*Z-100
SBB BX, 0
MOV AX,X
CWD ;将X符号扩展,形成DX:AX中的双字
ADD AX,CX ;计算X+(Y*Z-100),内容放在DX,AX中
ADC DX,BX
IDIV W ;计算(X+(Y*Z-100))/W
MOV U,AX
MOV U+2,DX
MOV AH,4CH
INT 21H
CODE ENDS
END START
PUSH AX
PUSH BX
POP AX
POP BX
核心代码