INT 21H LOOP SPACE CALL OUTOCT ;调用八进制显示子程序 CALL DISP_CRLF POP BX POP BP RET 2
PAIRS ENDP ;PAIRS子程序结束 ;-------------------------------------------------------------------------- OUTBIN PROC NEAR ;二进制显示子程序
PUSH BX MOV CX, 16
ONEBIT: ROL BX, 1
MOV DX, BX AND DX, 1 OR DL, 30H ;转换为ASCII码 MOV AH, 2 INT 21H LOOP ONEBIT POP BX RET
OUTBIN ENDP ;OUTBIN子程序结束 ;-------------------------------------------------------------------------- OUTOCT PROC NEAR ;八进制显示子程序
ROL BX, 1 ;16位二进制数包含6位八进制数,最高位仅1位 MOV DX, BX AND DX, 1 OR DL, 30H ;转换为ASCII码 MOV AH, 2 INT 21H
MOV CX, 5 ;余下还有5位八进制数
NEXT: PUSH CX
MOV CL, 3 ;1位八进制数包含3位二进制数 ROL BX, CL MOV DX, BX AND DX, 07H OR DL, 30H ;转换为ASCII码 MOV AH, 2 INT 21H POP CX LOOP NEXT RET
OUTOCT ENDP ;OUTOCT子程序结束
;-------------------------------------------------------------------------- DISP_CRLF PROC NEAR ;显示回车换行符子程序
LEA DX, CRLF MOV AH, 09H INT 21H RET
DISP_CRLF ENDP ;DISP_CRLF子程序结束 ;-------------------------------------------------------------------------- CSEG ENDS ;以上定义代码段 ;******************************************
END START