最新微机原理-第5版(周荷琴)-第四章-(2)ppt课件.ppt

最新微机原理-第5版(周荷琴)-第四章-(2)ppt课件.ppt

ID:62128914

大小:432.50 KB

页数:55页

时间:2021-04-17

最新微机原理-第5版(周荷琴)-第四章-(2)ppt课件.ppt_第1页
最新微机原理-第5版(周荷琴)-第四章-(2)ppt课件.ppt_第2页
最新微机原理-第5版(周荷琴)-第四章-(2)ppt课件.ppt_第3页
最新微机原理-第5版(周荷琴)-第四章-(2)ppt课件.ppt_第4页
最新微机原理-第5版(周荷琴)-第四章-(2)ppt课件.ppt_第5页
资源描述:

《最新微机原理-第5版(周荷琴)-第四章-(2)ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、微机原理-第5版(周荷琴)-第四章-(2)§4.2DOS系统功能调用和BIOS中断调用4.2.1概述4.2.2DOS系统功能调用4.2.3BIOS中断调用4.2.1概述磁盘操作系统DOS采用模块化、层次化结构,其层次结构如图4.4所示。4.2.2DOS系统功能调用1.中断处理程序分类8086CPU可处理256类中断,利用INTn指令,可直接调用256个系统已编写好的中断处理程序。INTn指令中的类型号n=00~FFH;n=00~04H为专用中断,处理除法错、单步、不可屏蔽中断NMI、断点、溢出中断;n=10H~1AH、2FH、31H

2、、33H为BIOS中断,即保存在系统ROMBIOS中的BIOS功能调用。1.中断处理程序分类n=20H~2EH为DOS中断,应用DOS提供的功能程序来控制硬件,可对显示器、键盘、打印机、串行通信等字符设备提供输入输出服务。例如:n=20H为程序结束中断,利用INT20H中断可返回DOS操作系统。n=21H则为功能最强大的DOS中断,它包含了很多子功能,给每个子功能程序赋一个编号,称为功能号,调用前要送到AH寄存器中。2.DOS系统功能调用方法DOS系统功能调用的步骤:1)功能调用号送到AH寄存器中,AH=00~6CH。2)入口参数送

3、到指定的寄存器中,一种功能调用又包含多个子功能,有些调用不带参数。3)执行INT21H指令。4)得到出口参数,或将结果显示在CRT上。部分DOS功能调用见表4.4(看书)。3.DOS系统功能调用举例1)DOS键盘功能调用利用DOS功能调用,可将读入的键值送进AL,并显示在CRT上,或检查是否有键压下等,还可将从键盘输入的一串字符输入到内存缓冲区中。例4.18DOS功能调用1,等待从键盘输入一个字符。MOVAH,01H;AH功能调用号01HINT21H;AL读入键值,并显示该字符若有键压下,读入键值,并检查是否为Ctrl-Break键

4、?若是,自动调用INT23H中断,执行退出命令;否则将键值送入AL,并显示该字符。3.DOS系统功能调用举例例4.19交互式程序中,用户键入字母键Y或N,分别转入不同的程序去处理,并在CRT上显示键入字符;若按了Ctrl-Break,则结束程序,否则继续等待。GET_KEY:MOVAH,01H;AH功能调用号01HINT21H;AL读入键值CMPAL,‘Y’;键值是Y吗?JEYES;是,转YESCMPAL,‘N’;不是Y,是N吗?JENO;是,转NOJNEGET_KEY;不是N,返回继续等待YES:┇;按Y键的处理程序NO:┇;按

5、N键的处理程序3.DOS系统功能调用举例例4.20DOS功能调用6,控制台I/O(控制台指键盘和CRT),不检查是否按了Ctrl-Break键。MOVAH,6;6号功能调用MOVDL,0FFH;DL=FFH,键盘输入INT21H当调用时DL=FFH,表示从键盘输入字符。执行后,若ZF=0,则AL中为输入字符的键值;若ZF=1,表示无键压下,AL中不是键值。如果调用时DL≠FFH,表示从屏幕输出字符。3.DOS系统功能调用举例例4.21利用0AH号DOS功能调用,将键入字符送输入缓冲区。调用前预先定义一个缓冲区,首地址为:DS:DX。

6、缓冲区的第一个字节由用户指定,存放缓冲区最大容量(字节数);第二个字节保留,功能调用后存放实际键入的字符个数;从第三个字节开始存入键盘输入的实际字符的ASCII码,直到击了ENTER键为止。若键入的字符数小于最大字节数,缓冲区其余部分都填0;若大于最大字节数,则后键入的字符丢失,并发出嘟嘟声。程序如下:DATASEGMENTBUFFDB50;定义缓冲区最大50(32H)字节DB?;存实际键入字节数DB50DUP(?);定义50个字节空间;存放键入字符的ASCII码DATAENDSCODESEGMENT┇MOVAX,DATA;定义DS

7、:DXMOVDS,AX;DS=缓冲区首址基地址MOVDX,OFFSETBUFF;DX=缓冲区首址偏址MOVAH,0AH;AH=功能号10INT21H┇CODEENDS3.DOS系统功能调用举例若键入的字符串为“goodmorning.”,包括空格共13(0DH)个字符,则缓冲区各单元存储的信息如图4.5所示。要检查是否已在缓冲器中存入字符串,可用显示字符的功能调用,将字符串显示在屏幕上。3.DOS系统功能调用举例2)显示功能调用2号功能调用用来显示单个字符,9号功能调用则显示以$结尾的字符串。例4.22编写显示星号“*”的程序。MO

8、VDL,‘*’;DL要显示字符的ASCII码MOVAH,02H;AH功能号02HINT21H;显示星号“*”9号功能调用前,要将字符串的首地址送到DS:DX中,调用后显示以DS:DX为首地址的字符串,直到遇到$符为止,$符不显示出

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。