转换二进制为字符串并显示
DATA SEGMENTNUM8 DB 10110100B
NUM16 DW 1010101111101101B
ASCBUF DB 20 DUP (0)
DATA ENDS
STACK SEGMENT PARA STACK'STACK'
DB200DUP (0)
STACK ENDS
CODE SEGMENT
ASSUMEDS:DATA, CS:CODE, SS:STACK
START: MOV AX,DATA
MOV DS,AX
MOV DX,0
MOV DL,NUM8 ;转换二进制数送DX
MOV CX,8 ;置位数8
LEA DI,ASCBUF ;字符串首址→DI
CALL BTASC ;调用子程序BTASC
MOV ,BYTEPTR0DH
MOV ,BYTEPTR0AH
MOV ,BYTEPTR '
LEA DX,ASCBUF
MOV AH,9
INT 21H
MOV DX,NUM16
MOV CX,16 ;置位数16
LEA DI,ASCBUF
CALL BTASC
MOV ,BYTEPTR0DH
MOV ,BYTEPTR0AH
MOV ,BYTEPTR '
; 显示转换字符串
LEA DX, ASCBUF
MOV AH,9
INT 21H
MOV AH,4CH
INT 21H
BTASC PROC
PUSH AX ;保存AX
MOV AL,0
CMP CX,8 ;比较8位数
JNE L1 ;直接转换16位数
MOV DH,DL ;8位数转换送DH
L1:
ROL DX,1 ;DX最高位移入CF
MOV AL,0
RCL AL,1 ;CF移入AL最低位
ADD AL,30H
MOV ,AL
INC DI
LOOP L1
POP AX
RET
BTASC ENDP
CODE ENDS
END START
页:
[1]