DATA SEGMENT
PORTA EQU 408H
TABLE DB30H,31H,32H,33H,34H,35H,36H,37H,38H,39H,41H,42H,43H,44H,45H,46H
S DB "WATCH AND TEST THE KEYBOARD ONEXPERIMENT PLATFORM. PRESS ANY KEY TO END...",0DH,0AH,"$"
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:MOVAX,DATA
MOV DS,AX
MOV DX,OFFSET S
MOV AH,9
INT 21H
MOV DX, PORTA+3
MOV AL,82H
OUT DX,AL
L0:MOV SI,0
MOV AL,0FEH
MOVBX,04H
L1:MOVDX,PORTA
OUTDX,AL
PUSHAX
MOVDX,PORTA+1
INAL,DX
MOVCX,04H
MOVDI,0
L2:SHRAL,1
JC L3
CALLDISP
L3:INC DI
LOOPL2
POP AX
ROLAL,1
INC SI
DEC BX
JNZ L1
MOV AH,0BH
INT 21H
CMP AL,0FFH
JNZ L0
MOV AH,4CH
INT 21H
DISP PROCNEAR
PUSH BX
PUSH SI
PUSH DI
PUSH AX
PUSH DX
LEABX,TABLE
ADDSI,SI
ADDSI,SI
ADDDI,SI
MOVAX,DI
XLAT
MOV DL,AL
MOVAH,02H
INT 21H
POP DX
POP AX
POP DI
POP SI
POP BX
RET
DISP ENDP
CODE ENDS
END START
以下这段子程序是什么用的
DISP PROCNEAR
PUSH BX
PUSH SI
PUSH DI
PUSH AX
PUSH DX
LEABX,TABLE
ADDSI,SI
ADDSI,SI
ADDDI,SI
MOVAX,DI
XLAT
MOV DL,AL
MOVAH,02H
INT 21H
POP DX
POP AX
POP DI
POP SI
POP BX
RET
DISP ENDP