打字计时练习-汇编语言课程设计+源程序+流程图 第3页
CMP SI,5*2
JNE NEXT
JMP FIRST
;******原来的中断向量******
ENDINT: CLI
PUSH DS
MOV DX,SAVE_LC
MOV AX,SAVE_LC+2
MOV DS,AX
MOV AL,1CH ;恢复中断向量1CH
MOV AH,25H
INT 21H
POP DS
PUSH DS
MOV DX,OLDIP9
MOV AX,OLDCS9
MOV DS,AX
MOV AL,09H
MOV AH,25H
INT 21H
POP DS
STI
RET
MAIN ENDP
;******定时器中断处理程序******
CLINT PROC NEAR
PUSH DS
原文请找腾讯752018766优;文-论'文.网
http://www.youerw.com LEA BX,COUNT
INC WORD PTR[BX]
CMP WORD PTR[BX],18 ;初始化记数
JNE RETURN
CALL INCT
ADJ:
CMP HOURS,12 ;是否满12小时
JLE RETURN
SUB HOURS,12 ;满足减去12
RETURN:
POP DS
STI
IRET
CLINT ENDP
INCT PROC NEAR
MOV WORD PTR[BX],0
ADD BX,2
INC WORD PTR[BX] ;BX内容自增1
CMP WORD PTR[BX],60 ;和60比较
JNE EXIT
CALL INCT
EXIT: RET
INCT ENDP
;******显示打字练习时间******
DISPTIME PROC NEAR ;显示时间主段
MOV AX,MIN ;分移动到AX寄存器
CALL BINDEC ;显示数字
MOV BX,0
MOV AL,':'
MOV AH,0EH ;显示冒号
INT 10H
MOV AX,SEC ;秒移动到AX
CALL BINDEC
MOV BX,0
MOV AL,':'
MOV AH,0EH
INT 10H
MOV BX,COUNT
MOV AL,55D ;百分秒
MUL BL
CALL BINDEC
RET
DISPTIME ENDP
******将二进转化为十进显示时间******
BINDEC PROC NEAR
MOV CX,100D ;显示百位
CALL DECDIV
MOV CX,10D ;显示十位
CALL DECDIV
MOV CX,1 ;显示个位
CALL DECDIV
RET
BINDEC ENDP
DECDIV PROC NEAR ;转化成字符显示
MOV DX,0
DIV CX
MOV BX,0
ADD AL,30H ;转换成ASCII
MOV AH,0EH
INT 10H ;显示一个字符
MOV AX,DX
RET
DECDIV ENDP
******获取键盘键入的信息******
KBGET PROC NEAR
PUSH BX
CLI
MOV BX,BUFPT1 ;标志缓冲区的大小
CMP BX,BUFPT2
JNZ KBGET2
原文请找腾讯752018766优;文-论'文.网http://www.youerw.com JC KBGET3
MOV BX,0
KBGET3:
MOV BUFPT1,BX
POP BX
RET
KBGET ENDP
;******键盘中断处理程序******
KBINT PROC NEAR
PUSH BX
PUSH AX
IN AL,60H ;键盘输入寄存器端口地址
PUSH AX
IN AL,61H ;控制商品寄存器地址
OR AL,80H
OUT 61H,AL ;读数据
AND AL,7FH ;第八位清0,ASCII只有7位
OUT 61H,AL
POP AX
TEST AL,80H
JNZ KBINT2
MOV BX,OFFSET SCANTAB ;查表输出字符
XLAT SCANTAB ;查表上一页 [1] [2] [3]
打字计时练习-汇编语言课程设计+源程序+流程图 第3页下载如图片无法显示或论文不完整,请联系qq752018766