我有个汇编程序调试通过不了,请大家帮帮忙啊!看看错在哪儿了

来源:百度知道 编辑:UC知道 时间:2024/06/01 02:37:40
程序功能:从键盘上输入两个四位的16进制数,并在屏幕上显示这两个数的和。

DATA SEGMENT
STRBUF1 DB 'Please input the first data:,$'
FIRST DB 4 DUP(?)
STRBUF2 DB 'Please input the second data:,$'
SECOND DB 4 DUP(?)
STRBUF3 DB 'Display the sum:,$'
SUM DB 5 DUP(?)
STRBUF4 DB 'Please input 1 and exit!'
DATA ENDS
STACK SEGMENT
DB 100 DUP(0)
TOP DB ?
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK
START:
MOV AX,DATA
MOV DS,AX
MOV AX,STACK
MOV SS,AX
MOV SP,OFFSET TOP
LEA DX,STRBUF1
MOV AH,9
INT 21H
LEA DX,FIRST
MOV AH,0AH
INT 21H
LEA DX,STRBUF2
MOV AH,9
INT 21H
LEA DX,SECOND
MOV AH,0AH
INT 21H
MOV DI,OFFSET FIRST
CALL READH
MOV DI

1、第100行的指令可能是你输入时有误,AND AL,OFH 中的0FH(是零FH)误写的OFH(欧FH)。
2、在下面两条指令
MOV AH,4CH
INT 21H
前加两条指令
MOV AH,1
INT 21H
等待按键,保证结果在屏幕上停留一段时间,以便看清结果。

补充答案:终于调试通过了。
DATA SEGMENT
STRBUF1 DB 'Please input the first data:$'
FIRST DB 5,?,5 DUP(?)
STRBUF2 DB 'Please input the second data:$'
SECOND DB 5,?,5 DUP(?)
NUMBER DW ?,?
STRBUF3 DB 'Display the sum:$'
SUM DB 6 DUP(?),'$'
STRBUF4 DB 'Please any key to exit!$'
DATA ENDS
STACK SEGMENT
DB 100 DUP(0)
TOP DB ?
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK
START:
MOV AX,DATA
MOV DS,AX
MOV AX,STACK
MOV SS,AX
MOV SP,OFFSET TOP
LEA DX,STRBUF1
MOV AH,9
INT 21H
LEA DX,FIRST
MOV AH,0AH
INT 21H
MOV DL,0DH
MOV AH,2
INT 21H
MOV AH,2
MOV DL,0AH
INT 21H
LEA DX,STRBUF2 <