CODE SEGMENT
ASSUME CS:CODE
START: MOV DX, 287H
MOV AL, 00010000B 只写低位
OUT DX, AL
MOV DX, 280H
MOV AL, FH 低位0FH
OUT DX, AL
LP1: MOV AH, 0BH 是否有键按下
INT 21H
CMP AL, 0FFH
JZ ED
NOP 不确定是否需要锁存
IN 280H, AL
ADD AL, 30H ;待验证
MOV DL, AL
INT AH, 02H
INT 21H
JMP LP1
ED: MOV AH, 4CH
INT 21H
CODE ENDS
END START
CODE SEGMENT
ASSUME CS: CODE
START: MOV DX, 283H
MOV AL, 00110111B
OUT DX, AL
MOV DX, 280H
MOV AL, 0
OUT DX, AL
MOV AL, 10H
OUT DX, AL
MOV DX, 281H
MOV AL, 0
OUT DX, AL
MOV AL, 10H
OUT DX AL
LP1:NOP
MOV AH, 0BH 是否有键按下
INT 21H
CMP AL, 0FFH
JZ ED
JN LP1
ED: MOV AH, 4CH
INT 21H
CODE ENDS
END START
3:
CODE SEGMENT
ASSUME CS: CODE
START:
MOV AL,10010010B
OUT 28BH,AL
LP1:IN AL,28AH
OUT 288H,AL
MOV AH, 0BH 是否有键按下
INT 21H
CMP AL, 0FFH
JZ ED
JN LP1
ED: MOV AH, 4CH
INT 21H
CODE ENDS
END START
4:
CODE SEGMENT
ASSUME CS: CODE
START: MOV AL,10010010B
OUT 28BH,AL
MOV AL,03H
LP1:OUT 288H,AL
ROL AL,1
ROL AL,1
NOP
NOP
NOP
IN AL,28AH
ROR AL,1
ROL AL,1
JC ED
JMP LP1
ED: MOV AH, 4CH
INT 21H
CODE ENDS
END START