在汇编语言中0AH功能的调用与字符输出功能调用是否有冲突?

我编写一个将键入的十进制数转化为二进制代码,当使用0AH系统调用功能时,所完成的程序在dos环境下运行时无法显示二进制代码,,而在debug界面下可以正常显示。如图所示代... 我编写一个将键入的十进制数转化为二进制代码,当使用0AH系统调用功能时,所完成的程序在dos环境下运行时无法显示二进制代码,,而在debug界面下可以正常显示。
如图所示
代码如下
DATA SEGMENT
SHI DB 5
DB ?
DB 5 DUP(?)
B DB 4 DUP(?)
C DB 24H
D DB 0AH
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:MOV AX,DATA
MOV DS,AX
MOV AH,0AH
INT 21H
MOV DL,0AH
MOV AH,2
INT 21H
MOV DL,0DH
MOV AH,2
INT 21H
MOV AL,SHI[1]
CMP AL,2
JNE NEXT
MOV BH,SHI[2]
SUB BH,30H
MOV BL,SHI[3]
SUB BL,30H
xor al,al
MOV AL,BH
MUL D
ADD AL,BL
JMP LP1
NEXT:MOV AL,SHI[2]
SUB AL,30H
LP1:MOV CL,4
SHL AL,CL
MOV SI,0
LOOP1:SHL AL,1
PUSH AX
JC YI1
MOV B[SI],30H
MOV AH,2
INT 21H
POP AX
INC SI
JMP LP2
YI1: MOV B[SI],31H
MOV AH,2
INT 21H
POP AX
INC SI
LP2:DEC CL
JNZ LOOP1
MOV DX,OFFSET B
MOV AH,9
INT 21H
MOV AH,4CH
INT 21H
CODE ENDS
END START
展开
 我来答
fastfs
2014-11-05 · TA获得超过1423个赞
知道大有可为答主
回答量:2659
采纳率:62%
帮助的人:781万
展开全部
MOV AH,0AH
INT 21H
这里没有设置DX。
更多追问追答
追问
能详细解释一下么。
追答
我猜是这样,由于你没有设置DX,导致DX和SHI里的值不一样,所以显示不正确,能显示正确的一个可能是DEBUG设置了DX里的值,应该是零和SHI的偏移地址碰巧一样,所以就显示正确了。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式