汇编编程问题,具体是这样:
1 输入 X,Y,Z 三个数;
2 使三个数相加;
3 显示相加结果。
悬赏分:50 | 解决时间:2011-6-26 00:20
;==============================================
最佳答案:
;X + Y + Z = 显示
;----------------------------------------------
DATA SEGMENT ;数据段
MSG DB 13, 10, 'Please Input : $'
x DW 0
y DW 0
z DW 0
DATA ENDS
;----------------------------------------------
CODE SEGMENT ;代码段
ASSUME CS: CODE, DS: DATA
START:
MOV AX, DATA
MOV DS, AX
MOV DX, OFFSET MSG
MOV AH, 9
INT 21H
_INX:
MOV AH, 1 ;输入字符.
INT 21H
CMP AL, 30H
JB _INX
CMP AL, 3AH
JNB _INX
SUB AL, 30H
MOV AH, 0
MOV x, AX
CALL OUT_0D0A
MOV DX, OFFSET MSG
MOV AH, 9
INT 21H
_INY:
MOV AH, 1 ;输入字符.
INT 21H
CMP AL, 30H
JB _INY
CMP AL, 3AH
JNB _INY
SUB AL, 30H
MOV AH, 0
MOV y, AX
CALL OUT_0D0A
MOV DX, OFFSET MSG
MOV AH, 9
INT 21H
_INZ:
MOV AH, 1 ;输入字符.
INT 21H
CMP AL, 30H
JB _INZ
CMP AL, 3AH
JNB _INZ
SUB AL, 30H
MOV AH, 0
MOV z, AX
ADD AX, x
ADD AX, y
PUSH AX
CALL OUT_0D0A
POP AX
CALL PRINTAX
EXIT:
MOV AH, 4CH
INT 21H
;------------------------------
PRINTAX PROC
MOV BX, 10
OR AX, AX
JZ _0_
LOOP_P:
XOR DX, DX
DIV BX
MOV CX, AX ;商
OR CX, DX
JZ _E_
PUSH DX
CALL LOOP_P
POP DX
ADD DL, '0'
JMP _1_
_0_:MOV DL, '0'
_1_:CALL PUTC
_E_:RET
PRINTAX ENDP
;------------------------------
PUTC PROC
MOV AH, 2
INT 21H
RET
PUTC ENDP
;------------------------------
OUT_0D0A PROC ;回车换行.
MOV DL, 13
CALL PUTC
MOV DL, 10
CALL PUTC
RET
OUT_0D0A ENDP
;------------------------------
CODE ENDS
END START
;==============================================
原题网址:http://zhidao.baidu.com/question/283260814.html
回答时间:2011-6-25 23:15
回答者: 做而论道 | 十五级采纳率:43%
提问者对于答案的评价:万分感谢!
;==============================================