版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、汇编语言课件、王爽萧清华大学出版社、制作工具: Microsoft PowerPoint2003、本课件由汇编网络()制作提供, 第17章使用BIOS进行键盘输入和光盘读写,17.1 int 9中断程序键盘输入的处理使用17.2int16h中断程序读取键盘缓冲器17.3字符串输入使用17.4int13h中断程序磁性很多有用的程序需要处理用户的输入,通常程序和数据需要长期保存,磁盘是最常见的存储设备。 BIOS为这两个外围设备的I/O提供最基本的中断例程。 本章介绍了这些应用程序和相关问题。17.1 int 9中断例行程序关于键盘输入的处理,如前所述,键盘输入引起第9个中断,BIOS提供int
2、9中断例行程序。 CPU在发生第9个中断后,执行int 9中断例程,从60h端口读取扫描代码,变换为相应的ASCII代码或状态信息,保存到内存的指定空间(键盘缓冲区或状态字节)。 17.1 int 9中断例程对键盘输入的处理、一般的键盘输入在CPU执行int 9中断例程之后,放入键盘缓冲器。 键盘缓冲区有16个字单位,可以存储15个键的扫描代码和对应的输入ASCII代码。 17.1 int 9中断例行程序根据键盘输入的处理、键盘缓冲区的逻辑结构,看键盘输入的扫描代码和对应的ASCII代码是如何写入键盘缓冲区的。 注意: 17.1 int 9中断程序处理键盘输入。 注意:我们的课程仅讨论基于逻辑
3、结构的BIOS键盘缓冲区读写问题。 实际上,键盘缓冲器是通过环队列结构管理的存储器区域,但是对于队列和环队列的实现不进行讨论。 因为这是另一个专业课程数据结构的内容。17.1 int 9中断程序处理键盘输入,然后通过a、b、c、d、e、Shift_A、a的输入过程,简单地看一下int 9中断程序处理键盘输入的方法包含在int 16h中断程序中这个功能的号码是0。 使用17.2int16h中断例程读取键盘缓冲区,以下命令从键盘缓冲区读取键盘输入,并从缓冲区中删除。 mov ah,0 int 16h结果: (ah)=扫描代码,(al)=ASCII代码。 使用17.2int 16h中断程序读取键盘缓
4、冲区。 接下来,在上一节的键盘输入过程中,让我们看看int16h如何读取键盘缓冲区。 从上面可以看到,int 16h读取键盘缓冲器演示、17.2使用int 16h中断例程读取键盘缓冲器,该int 16h中断例程的第0功能是(1)检测键盘缓冲器中是否存在数据(2) 读出缓冲区的第一个字单元的键盘输入(4)将读取的扫描代码送入ah,将ASCII代码送入al。 (5)把自己读取的键盘输入从缓冲器中删除。 使用17.2int 16h中断程序读取键盘缓冲区时,B1OS的int 9中断程序和int 16h中断程序是联合的程序,int 9中断程序写入键盘缓冲区,int 16h中断这些写入和读出的时机不同,i
5、nt 9中断程序在按下键时向键盘缓冲器写入数据int 16h中断程序在应用程序调用时从键盘缓冲器读出数据。编程,当使用17.2int 16h中断例程读取键盘缓冲器并编写程序以处理一般的键盘输入时,可以调用int16h从键盘缓冲器读取键盘输入、用户的、 将屏幕上的文字设置为红色:输入“g”,将屏幕上的文字设置为绿色输入“b”,将屏幕上的文字设置为蓝色。程序源代码,特别是提示,检测点17.1(page304 )没有通过这个检测点,所以不要向下移动,17.3字符串的输入,用户用键盘输入的通常不仅是单一字符,而且是字符串。 讨论字符串输入中的问题和简单的解决方法。17.3字符串输入、最基本的字符串输入
6、程序,(1)必须在输入的同时显示该字符串(2)一般在输入回车后,字符串输入结束(3)可删除输入的字符。 对于这三个功能,可以想象在DOS中输入命令行时的情形。 17.3字符串输入创建接收字符串的输入子例程,实现上述三个基本功能。 因为在键入时必须显示,所以子程序的残奥元是(dh )、(dl)=字符串在画面上显示的行,列的位置ds:si是字符串的存储区域,字符串以0结束。 其次,进行分析、17.3字符串的输入、(1)字符的输入和删除。 每个新输入的字符都保存在先前输入的字符之后,删除从最后一个字符开始。 让我们看看下一个步骤:空字符串:“a”:a输入“b”:ab输入“c”:abc输入“d”:ab
7、cd删除1个字符: abc删除1个字符: ab删除1个字符: a删除1个字符。 这使您可以在堆栈中管理字符串的存储空间。 也就是说,字符串的存储空间实际上是字符堆栈。 字符堆栈中的所有字符。 从堆栈底部到堆栈顶部构成字符串。 输入17.3字符串、(2)回车后,字符串输入结束。 输入回车后,可以在字符串中输入0以指示字符串已结束。17.3字符串的输入、(3)输入的同时需要显示该字符串。 每次新字符输入和删除字符时,必须重新显示字符串。 也就是说,从字符堆栈的底部到堆栈的顶部,显示所有字符。17.3字符串的输入、(4)程序的处理步骤。 现在可以轻松地判断程序的处理步骤了。 对于通过调用int 16
8、h读取键盘输入的字符,返回空格键进入字符堆栈并显示字符堆栈中的所有字符。对于继续空格键,从字符堆栈弹出一个字符并显示字符堆栈中的所有字符。继续Enter键、17.3字符串的输入,通过程序的处理过程可知,字符栈在输入栈、输出栈、显示栈中的内容是需要在多个位置使用的功能,我们应该将它们作为子程序写入。17.3字符串输入、子程序:字符堆栈、堆栈、显示。 残奥表说明: (ah)=功能编号,0表示进入堆栈,1表示退出堆栈,2表示显示,ds : si表示字符堆栈空间。 0号功能时: (al)=输入堆叠字符1号功能时: (al)=返回的字符2号功能时: (dh )、(dl)=字符串在画面上显示的行、列的位置
9、。17.3字符串输入,子程序代码字符栈的访问规则是: (1)栈空(2)“a”输入栈(3)“b”输入栈,17.3字符串输入,另一个需要注意的问题是,在显示栈中的字符时,我们现在接受字符串输入的子规则使用17.4int13h中断程序对磁盘进行读写,主要以3.5英寸软盘为例进行说明。 一般的3.5英寸软盘的结构:分为上下两面,各面有80个磁道,各磁道分为18个扇区,各扇区的大小为512B。 总容量是应用2画面80轨道18扇区512B=1440KB1.44MB、17.4int13h中断例程对盘进行读写,盘的实际访问是由盘控制器进行,通过控制盘控制器来得到的。 只能以扇区为单位对光盘进行读取/写入。读写
10、地段时,要给出面号、轨道号、地段号。 面编号和轨道编号从0开始,扇区编号从1开始。 使用17.4int13h中断程序对磁盘进行读写。 直接控制磁盘控制器访问磁盘时,需要很多硬件的详细信息。 BIOS提供扇区读/写中断例行程序,可以完成许多复杂的硬件相关任务。 可以通过调用BIOS中断例程来访问磁盘。 应用17.4int13h中断程序对磁盘进行读写,BIOS提供的访问磁盘的中断程序为int13h。 如下所示,0面0频道1扇区的内容为0:200 :mov ax、0 mov es、ax mov bx、200h mov al、1 mov ch、0 mov cl、1 mov dl、0 mov dh, 要
11、读取到0 mov dh的入口残奥表: (ah)=int 13h的功能编号(2表示读取扇区) (al)=读取扇区数(ch)=轨道编号(cl)=扇区编号(dh)=头编号(关于FDD的表面编号,硬盘从80h开始,80h开始es:bx指的是接收该扇区读取数据的存储区域,应用17.4int13h中断程序对磁盘进行读写,返回残奥表:操作成功: (ah)=0,(al)=读取的扇区数操作失败: (ah)=错误代码ax mov bx,200h mov al,1 mov ch,0 mov cl,1 mov dl,0 mov dh,0 mov ah,3英寸13 h, 17.4应用int13h中断入口残奥表: (ah)=int 13h的功能编号(3表示写入扇区) (al)=写入扇区数(ch)=轨道编号(cl)=扇区编号(dh)=磁头编号(面)() 硬盘从80h开始,80h :硬盘es:bx是指写入盘的数据,应用17.4int13h中断程序对盘进行读写,返回残奥仪表:操作成功: (ah)=0,(al)=写入扇区数操作失败: (ah)=错误代码注意,17.4应用盘访问如果将数据写入软盘的0面0通道1扇区,则需要重新格式化软盘才能在现有操作系统中使用。 应用17.4i
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年大学第四学年(工程测绘)桥梁施工测量方案设计测试题及答案
- 新疆昌吉州奇台县重点达标名校2026届初三第二学期第一学段考试物理试题试卷含解析
- 四川省都江堰市初市级名校2026届初三数学试题下学期开学考试试题含解析
- 宁波市南三县2025-2026学年下学期第三次考试语文试题(辅导班)试题含解析
- 山东省邹平县实验中学2025-2026学年初三4月语文试题含解析
- 四川省广元市重点中学2025-2026学年初三质量检测试题(二)数学试题含解析
- 浙江省台州市仙居县重点名校2026届初三下学期第二次半月考化学试题试卷含解析
- 驻马店市重点中学2026年初三零诊考试数学试题含解析
- 2025 高中文学类阅读理解之童话主题深度剖析课件
- 2026年振动与劳损关系的深入研究
- 2025学年3 不懂就要问教案
- 中石化油品采购制度规定
- 2026年山东省新动能基金管理有限公司校园招聘笔试模拟试题及答案解析
- 中国艺术研究院社会招聘试题
- 沃尔玛优化物流运输案例分析
- 2025年安徽卫生健康职业学院单招职业适应性测试试题及答案解析
- 维修电工绩效考核制度
- 学校校园门口最小单元应急防暴演练预案方案及总结材料
- 厂房基础注浆加固施工方案
- 医院物业服务框架协议书
- 2025年集团招聘广东省广轻控股集团有限公司招聘备考题库有答案详解
评论
0/150
提交评论