文档详情

微机原理与接口技术第6章_宏汇编语言程序设计.ppt

发布:2017-01-06约3.1万字共88页下载文档
文本预览下载声明
⑤ 键盘中断子程功能(09H类型中断子程) ◢ 从键盘接口读取操作键的扫描码; ◢ 将扫描码转换成字符码; 大部分键的字符码为ASCII码, 无ASCII码键(如组合键Shift、Ctrl等)的字符码为0。 ◢ 将键的扫描码、字符码存放在键盘缓冲区, 供其它有关键盘的中断子程应用。 ④ 键盘接口对按下键和释放键均向计算机发出中断申请, 如果中断响应条件满足, CPU转去执行键盘中断子程。 键盘中断子程类型号为09H。 ① 入口参数 无 功能号 AH = 01H 类型号 21H 出口参数 AL = 键入字符的ASCII码 实现功能 等待从键盘输入一个字符, 并在屏幕上回显,光标移动, 检测Ctrl-Break键 3. 单字符输入 ( 01H、07H、08H功能) 例 利用键盘输入的字符产生分支: MOV AH, 1 ;等待从键盘输入 INT 21H CMP AL, ‘Y’ ;是’Y’? JZ yes CMP AL, ‘y’ ;是’y’? JZ yes no: . . . . . . JMP exit yes: . . . . . . exit: . . . 例 在中断向量表中查找从键盘输入的字符, 并将其个数用二进制形式显示出来。( scanskey.asm) code SEGMENT ;代码段开始 ASSUME CS:code begin: MOV AX, 0000H ;设置查找首地址 MOV DS, AX MOV SI,0000H MOV CX,0400H ;设置查找长度 MOV BX,0 ;计算值初值 MOV AH,01H ;从键盘输入 INT 21H ;输入关键字 MOV DL,AL ;保存在DL中 next: LODSB ;从串取 CMP AL, DL ;与关键字比较 JNZ point INC BX ;计算值加1 point: LOOP next ;查找结束? CALL display ;调用显示子程 MOV AH,4CH ;调用4CH功能 INT 21H ;返回DOS ;用二进制显示BX内容子程 display PROC MOV CX, 16 ;显示位数 rotate: ROL BX, 1 ;循环左移 MOV DL, BL AND DL, 01H ADD DL, 30H MOV AH, 2H INT 21H LOOP rotate RET ;子程返回 display ENDP code ENDS ;代码段结束 END begin ② 入口参数 无 功能号 AH = 07H 类型号
显示全部
相似文档