求助:一个简单的代码转换问题
内容:用子程序设计的方法,分别把BUF字单元中的四位十六进制数转换为ASCII代码存入MAS开始的单元中,并在crt上显示相应字符。
BUF DW X
MAS DB 4 DUP(?)
我的代码是:
DATA SEGMENT
BUF DW 1234H
MAS DB 4 DUP(?)
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:
MOV AX,DATA
MOV DS,AX
CALL DECBIN
DECBIN PROC NEAR
MOV SI,0
MOV CH,04H
MOV CL,04H
LOP1:
MOV AX,BUF
ROL AX,CL
MOV BUF,AX
AND AL,0FH
CMP AL,0AH
JL LOP2
ADD AL,7
LOP2:
ADD AL,30H
MOV MAS[SI],AL
INC SI
MOV DL,AL
MOV AH,02H
INT 21H
DEC CH
CMP CH,0
JNZ LOP1
RET
DECBIN ENDP
MOV AX,4C00H
INT 21H
CODE ENDS
END START
不知道为什么用‘T’分步执行可以,而用"U""G"断点调试不可执行,会自动退出?