DATA SEGMENT
W DW -304
X DW 1000
Y DW -12
Z DW 20
RESULT DW 2 DUP(?)
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:MOV AX,DATA
MOV DS,AX
MOV AX,X ;被乘数X取到AX中
IMUL Y ;计算X*Y
MOV CX,AX
MOV BX,DX ;X*Y转存到BX、CX
MOV AX,Z ;Z取到AX中
CWD ;Z扩展到DX、AX中
ADD CX,AX
ADC BX,DX ;计算X*Y+Z
SUB BX,220 ;计算X*Y+Z-220
SBB BX,0
MOV AX,W ;W取到AX中
CWD ;扩展到DX、AX中
SUB AX,CX
SBB DX,BX ;计算W-(X*Y+Z-220)
IDIV X ;计算(W-(X*Y+Z-220))/X
MOV RESULT,AX
MOV RESULT+2,DX ;送结果
MOV AH,4CH
INT 21H ;返回DOS
CODE ENDS
END START
这是我编的已经给了初值的程序段,可是我们老师要求是用键盘输入这四个数然后在屏幕上显示,这比上面要复杂的多,关键是键盘输入要怎么转化为计算用到的值,然后重新转化为数的ASCII码输出呢?
键盘输入四个带符号数,完成(w-(x*y+z-220))/x的计算,将表达式的商和余数存入数据区 result单元开始的区域中,请帮忙编一个。
可不可以帮我完善一下上面的程序,或者另外编一个给我,我是个汇编的初学者,希望可以的话,在编程后面注明这个语句的用途,方便我看懂!高手帮帮忙吧,本人感激不禁!或许这道题在你眼里很简单,但是它却成为我学习的拦路虎。