在汇编语言中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 展开
如图所示
代码如下
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 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询