汇编语言程序 请大大们帮我看看这个程序的具体意思

SSEGSEGMENTSTACKDB80DUP(0)SSEGENDSDATASEGMENTKEYIPDW?KEYCSDW?BTOPDW?BTLLDW?BUFFDW16DU... SSEG SEGMENT STACK
DB 80 DUP(0)
SSEG ENDS
DATA SEGMENT
KEYIP DW ?
KEYCS DW ?
BTOP DW ?
BTLL DW ?
BUFF DW 16 DUP(0)
SCTAB DB 0,1BH,'1234567890-=',08H
DB 09H,'QWERTYUIOP[]',0DH
DB 0,'ASDFGHJKL;'
DB 0,'\ZXCVBNM,./',0
DB 0,0,20H,13 DUP(0)
DB '789-456+1230',0
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:SSEG
KBPRG PROC FAR
PUSH DS
XOR AX,AX
PUSH AX
MOV BX,DATA
MOV DS,BX
CLI
CLD
MOV ES,AX
MOV DI,9*4
MOV AX,ES:[DI]
MOV KEYIP,AX
LEA AX,KBINT
STOSW
MOV AX,ES:[DI]
MOV KEYCS,AX
MOV AX,SEG KBINT
STOSW
LEA AX,BUFF
MOV BTOP,AX
MOV BTLL,AX
IN AL,21H ;(21H内装的是什么)
AND AL,0FDH
OUT 21H,AL
STI
NEXT: MOV BX,BTOP
CMP BX,BTLL
JZ NEXT
CLI
MOV AX,[BX]
ADD BX,2
CMP BX,OFFSET BUFF+32
JNE DISP
LEA BX,BUFF
DISP: MOV BTOP,BX
STI
CMP AL,0
JZ NEXT
CMP AL,1BH
JE EXIT
MOV AH,2
MOV DL,AL
INT 21H
CMP DL,0DH
JNZ NEXT
MOV AH,2
MOV DL,0AH
INT 21H
JMP NEXT
EXIT: CLI
SUB DI,4
MOV AX,KEYIP
STOSW
STI
RET
KBPRG ENDP
KBINT PROC ;从这里KBINT 和KBINT1不懂 请具体解释
PUSH AX
PUSH BX
PUSH SI
IN AL,60H ;这下面一段什么意思??
PUSH AX
IN AL,61H
OR AL,80H
OUT 61H,AL
AND AL,7FH
OUT 61H,AL
POP AX
TEST AL,80H
JNZ KBINT2
MOV BX,BTLL
MOV SI,BX
ADD BX,2
CMP BX,OFFSET BUFF+32
JNE KBINT1
LEA BX,BUFF
KBINT1: CMP BX,BTOP
JE KBINT2
MOV BTLL,BX
MOV AH,AL
LEA BX,SCTAB
XLAT
MOV [SI],AX
KBINT2: MOV AL,20H
OUT 20H,AL
POP SI
POP BX
POP AX
IRET
KBINT ENDP
CODE ENDS
END KBPRG

回答后会增加悬赏的 谢谢大家帮忙
展开
 我来答
swolaiye
2009-12-22 · TA获得超过596个赞
知道小有建树答主
回答量:298
采纳率:0%
帮助的人:302万
展开全部
IN AL,60H ;这下面一段什么意思??
PUSH AX
IN AL,61H
OR AL,80H
OUT 61H,AL
AND AL,7FH
OUT 61H,AL
POP AX
TEST AL,80H
JNZ KBINT2
这一段是读端口,测试端口,你可以查查60H、61H、20H端口的具体含义
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式