📄 12a.asm
字号:
DATA SEGMENT
ioport equ 0c000h-280h ;实验箱驱动默认中断地址为C000H,此处设置偏移量
ioport1 equ ioport+298h
ioport2 equ ioport+299h
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START PROC FAR
STT:PUSH DS
SUB AX,AX
PUSH AX
;==============================
MOV AX,DATA
MOV DS,AX
CONTROL:MOV DX,ioport1
MOV AL,0FFH
OUT DX,AL
CALL DELAY1S
IN AL,DX
MOV AH,0
MOV BX,0
MOV BL,AL ;分离AL的高4位和低4位,分离后AL中为高4位,BL中为低4位
AND AL,0F0H
MOV CL,4
SHR AL,CL
AND BL,0FH
CALL HEX2ASCII ;调用HEX2ASCII
CALL DISPLAY ;调用DISPLAY子程序
MOV AL,BL
CALL HEX2ASCII
CALL DISPLAY
MOV DL,48H
MOV AH,2
INT 21H
MOV DL,20H
INT 21H
;==============================
MOV AH,0BH
INT 21H
CMP AL,00H
JNE EXIT
JMP CONTROL
EXIT:MOV AH,4CH
INT 21H
;==============================
RET
START ENDP
HEX2ASCII PROC NEAR
;16进制转ASCII码子程序
CLC
DAA
ADD AL,0F0H
ADC AL,40H
RET
HEX2ASCII ENDP
DISPLAY PROC NEAR
;数据显示子程序
PUSH DX
MOV DL,AL
MOV AH,2
INT 21H
POP DX
RET
DISPLAY ENDP
DELAY1S PROC NEAR
;8086延时1S子程序
PUSHF
PUSH BX
PUSH CX
MOV BX,3E8H
LP2: MOV CX,0BAH
LP1: PUSHF
POPF
LOOP LP1
DEC BX
JNZ LP2
POP CX
POP BX
POPF
RET
DELAY1S ENDP
CODE ENDS
END STT
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -