第九章 BIOS和DOS中断 汇编语言课件.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
河南师范大学计算机与信息技术学院 第九章 BIOS和DOS中断 本章内容提要 BIOS和DOS BIOS和DOS功能调用的步骤 9.1 键盘I/O 键盘的基本键 9.1.1 字符码和扫描码 BIOS键盘中断处理程序 9.1.2 BIOS键盘中断 9.1.3 DOS键盘功能调用 9.2 显示器I/O 图9.4 显示屏幕上的字符位置 9.2.1 字符属性 1. 单色字符显示 2. 彩色字符显示 3. 显示存储器 显示存储单元与屏幕上字符的对应关系 9.2.2 BIOS显示中断 9.2.3 DOS显示调用 练习与作业 表9.4 BIOS键盘中断(INT 16H) BIOS单个字符输入举例 例9.1 图9.2 键盘状态字节 表9.5 DOS键盘操作(INT 21H) 例9.2 DOS单个字符输入AH=1 例9.3 DOS单个字符输入AH=7 例9.4 DOS单个字符输入AH=7 例9.5 输入字符串程序 清除键盘缓冲区 例9.6 检验键盘状态 图9.5 单色显示的属性字节 表9.6 单色显示的属性 图9.6 16色方式下的属性字节 表9.7 16种颜色的组合 图9.7 显示存储单元与显示屏幕上字符的对应关系 例9.7 检验键盘状态 表9.8 类型10H的显示操作 表9.8 类型10H的显示操作 例9.8 控制光标 例9.9 读光标位置 例9.10 选择显示页 例9.11-1 例9.11-2 例9.12 例9.13-1 例9.13-2 例9.13-3 例9.14 字符显示 例9.15 例9.16 表9.9 属性字节的典型组合 例9.17 例9.18-1 例9.18-2 表9.10 INT 21H显示操作 显示字符串-1 显示字符串-2 例9.19 显示字符串的宏定义文件 ;该功能并不返回实际字符码,仅提供一种是否按键的提示。 ;在未按键之前,程序总是不断循环执行,只要按下一个键,程序就退出循环并返回。 SOUNDER: … … MOV AH , 0BH INT 21H INC AL JNZ SOUNDER RET 例9.7 ;计算屏幕上某一字符位置所对应的显存地址。 Video_addr MACRO width , page_num ;入口参数:DH=row , DL=column ;出口参数:DI=Char_offset push ax mov al , width mul dh xor dh , dh add ax , dx shl ax , 1 add ax , page_num*1000h mov di , ax pop ax endm ;置光标开始行为5,结束行为7, ;并把它设置到第5行第6列。 MOV CH , 5 ;置光标类型 MOV CL , 7 MOV AH , 1 INT 10H MOV DH , 4 ;置关标位置 MOV DL , 5 MOV BH , 0 MOV AH , 2 INT 10H ;读0页的当前光标位置 MOV AH , 3 MOV BH , 0 INT 10H ;INT 10H的功能5可由程序确定显存中的显示区域。ROM BIOS将CGA的显存分为4页,每页25×80个字符,或分为8页,每页25×40个字符。每一页的起始地址在1KB的边界。这四页的起始地址分别为B800:0000 , B800:1000 , B800:2000 , B800:3000。 MOV AL , vpage ;AL=页号 MOV AH , 5 INT 10H ;清除全屏幕的子程序 clear_screen proc near push ax push bx push cx push dx ;clear screen mov ah , 6 mov al , 0 mov bh , 7 mov ch , 0 mov cl , 0 mov dh , 24 mov dl , 79 int 10h ;locate cursor mov dx , 0 mov ah , 2 int 10h ;restore registers pop dx pop cx pop bx pop ax clear_screen endp ;清除左上角为(0,0),右下角为(24,39)的窗口, ;初始化为反相显示,该窗口相当于全屏幕的左半部分。 MOV AH , 7 MOV AL , 0 MOV BH ,

文档评论(0)

qiwqpu54 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档