第9章_ BIOS与DOS中断(书).ppt_第1页
第9章_ BIOS与DOS中断(书).ppt_第2页
第9章_ BIOS与DOS中断(书).ppt_第3页
第9章_ BIOS与DOS中断(书).ppt_第4页
第9章_ BIOS与DOS中断(书).ppt_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第9章基本输入输出系统和操作系统中断9.1键盘输入/输出9.2显示器9.3打印机输入/输出,第9章基本输入输出系统和操作系统中断。在存储系统中,从地址000H开始的8K只读存储器(只读存储器)装有基本输入/输出系统程序。位于只读存储器中的基本输入输出系统提供功能模块,如系统上电自插、引导加载、主输入输出设备的处理程序和接口控制,以处理所有系统中断。基本输入输出系统功能调用:你可以直接使用指令参与政治,而不需要引入硬件输入输出接口特性,然后调整可读性,便于移植。磁盘操作系统,由软盘或硬盘提供。两个模块:IBMBIO,COM IBMDOS,COM使基本输入输出系统更方便使用。DOS提供了更多的测试

2、。操作系统比基本输入输出系统更容易操作,具有相应的功能,并且较少依赖硬件。它提供了一个从操作系统到只读存储器基本输入输出系统的低级接口,外设数据可以从内存数据中读写。包括一个文件管理程序产品。一些在DOS下运行的程序可以调用这些处理程序。为了完成操作系统函数调用,IBM DOS组件将信息传输到IBM DOS组件,形成一个或多个基本输入输出系统调用。同样的功能,你可以选择操作系统和基本输入输出系统,但基本输入输出系统更接近硬件。操作系统可以处理大多数输入输出用户的高级和低级只读存储器,但基本输入输出系统更接近硬件。操作系统可以处理大多数输入输出表9.1基本输入输出系统中断类型表9.2输入输出程序

3、请求。DOS IBMBIO。9.1键盘输入/输出键盘提供三种基本类型的键:字符键,如字母A-8,数字0-9,% $ #,等等。2扩展功能键,如Home、End、Return、Del、Ins、Pgup、Pgdn 3控制键与其他键结合使用,如Alt、Crtl、Shift字符键,向计算机发送ASLII。控制键可以改变字符代码Ctrl-c 1、字符代码和其他键生成的扫描代码。当按下“或”键释放一个键时,将产生类型为“9”的键盘中断处理程序。处理器在8255可编程位置从接口核心的输入端口60H读取一个字节,该字节的低7位是密钥的扫描码。最高位是0或1,表示按键是“按下”还是“释放”。最高位是0或1,表示

4、该键是“按下”还是“释放”。传递代码:下一次传递时获得的字节。OH破坏代码:释放时获得字节。81H的表9.3是键盘上每个键对应的扫描码。基本输入输出系统键盘处理器将获得的扫描码转换成相应的字符码。大多数按键的字符代码是标准的ASCZZ代码。无ASCZZ (F1-F10)键的字符代码为0,转换后的书写代码和扫描代码存储在只读存储器基本输入输出系统数据区的键盘缓冲区0040:001 BVFFHEADDW中。0040:001 BVFFTAILDW在缓冲区的开头?缓冲区结束0040:001 kbbvfeerdw?16 DOP 0040:003 ekbboffendlabelword用16个输入量填写空

5、格。当中央处理器想要获得键盘输入时,它调用基本输入输出系统键盘例程,从缓冲区中取出字符和扫描代码,并按照接收它们的顺序将它们发送回中央处理器。1。基本输入输出系统键盘中断类型16(键盘)中断提供三种键盘操作AH=0从键盘读取一个字符AH,AL扫描码字符石=1读取键盘缓冲区中的字符=2取状态字节(AL)无字节,高4位数字,“键盘模式”(Ens,Capslock,Nomlock,roll),低4位数字表示Alt,Ctrl,是否按下Shift的例子:取键盘状态,使AH=02H, INT16H 2和DOS键盘功能被调用,如表9.5 (1)所示单字符输入DOS 21H中断功能1.7和8可以从键盘读取一个

6、字符并将其发送到所有寄存器。AH=1:显示字符,并检查是否按下了Ctrl-Break。如果按下Ctrl-B,将自动调用中断23H,程序AH=7将结束。您不能输入返回字符或勾选Ctrl-B AH=OA将字符输入缓冲区1。回应互动程序Getkey:mov AH Int 21h Cmp al中的提示次数。Y Je yes输入为“y”,如果是,再次等待输入2,或查看是否按下回车键,ASCZZ=odhwait: movah,7 Int 21h Cmp al,ODH Ine Wait差为“AH=7”,则按下的键不显示,3。如果需要,它可以接收功能键或数字组合键。那么必须进行两次拒绝服务呼叫。第一个echo

7、 00和第二个echo scan代码示例:程序显示一个菜单,要求用户通过键入F1、F2或F3来选择项目1、2和3,接收一个将导致错误。Mov ah,07h键盘接收不响应int21h CMP al,o;这是功能键吗?如果是,检查扫描代码;否则,会出现错误:JMP或getec: movah,07hint 21h cmpal,3bhje option 1;是的,在选项1下完成程序cmp al,3chF2?Je选项2 Cmp al,3DhF3?Je Option3 Jmp错误(1)被输入字符串“21H”中断的函数“AH=0AH”可以从键盘读取一个字符串,并将其存储在用户定义的缓冲区中。缓冲区的第一个字

8、节存储最大字符数,用户给出最大字符串,第二个字节是实际输入字符的原因。-OAH 填充第三个字节,开始存储字符串。-缓冲区的最后一个字节是回车。ODH缓冲区的最大间隔为=最大字符数2(回车也是一个字符)。例如,数据区中定义的字符缓冲区如下:maxcendb32ae字符串DB 32dup(?)输入字符串的指令如下:lea dx,maslen mov ah,OAH int 21h type By brooks Ceaping将实际字符数放入CX寄存器,并将指针dx: dx指向字符串的第一个字符。(2)清除字符键盘缓冲区。来自键盘的输入字符实际上被放在一个16字节的键盘缓冲区中。函数1.7.8和OAH

9、实际上从键盘缓冲区获取字符。当(AH)=OCH,(AL)=1.6.7.8时,OAH清除键盘缓冲区,然后执行(AL)中指定的功能。使用OCH在输入字符之间制作程序。俄克拉荷马州MOV市清仓银行;接收到的字符不回显,但是应该检测到ctrl-break int 21h。(1)检查键盘状态:AH=0BH,INT21H AH=0BH;它可以检查一个键是否被按下。如果按下下一个键,OFFH存储在人工智能中。如果没有按下键,(AL)=00。在任何情况下,程序的下一条指令都将继续执行。示例:当程序运行时,检查键盘,看用户是否按任意键来终止程序或退出循环。发声器: MOVAT,OBT Int 21H公司Aljn

10、e SD不是0,然后按下它没有键,然后按下它当al=oFFH没有键,然后OfH 100,9.2显示I/0显示可以通过两种适配器权利连接到电脑单元显示和并行打印机。彩色/图形监视器适配器连接到监视器或目标电视机。单行适配器只能显示字符,只能用于黑白显示。字符由标准的字线、数字和符号组成,加上像钻石、矩形和笑脸这样的简单图形。显示屏分为80列*25行。适配器在这2000个网格位置显示字符,屏幕上的每个网格位置也称为“像素”。对于屏幕上的每个像素,内存中都有一个对应的单元,所以我们说屏幕是内存映射的。该存储器映射使得显示电路容易知道哪个单元内容对应于屏幕上的哪个屏幕:0-24列:0-79 1。属性:

11、单色显示屏上的每个字符由内存中的两个字节表示,一个字节保存字符的ASCZZ代码,另一个字节保存字符的属性。属性:确定要显示的每个字符的特征:0正常显示,0正常亮度,1闪烁显示,1增强亮度,属性可以有不同的组合。正常显示是黑色背景上的白色=07=000011反向显示,即白色背景上的黑色。当属性相同时,可能不会显示(00H)。单色屏幕有2000个字符=25*80个位置。每个字符需要两个字节来表示单色显示存储容量=4K字节。单色显示存储器布置在段地址=B000H的区域中。偏移地址从0到0F9FH=(3999)。图9.8屏幕上记忆的对应关系对应于屏幕上的每个字符位置。主存储空间有相应的存储单元,称为显

12、示存储区。每个字符由两个连续的字节表示:字符的ASCII字符属性,屏幕上可以有2000个字符=25*80列(文本模式)=4KB的显示内存。如果有16KB的显示内存,可以保存4个屏幕字符,称为4页。屏幕上的某个字符的中断类型为10小时,在基本输入输出系统显示中断表9.6中列出。(1)控制光标:下划线/方形字符AH=01。光标不是ASCI字符表中的字符,INT10H的函数“AH=0IH”由硬件使用。使光标出现或关闭,并控制光标的大小。光标大小:用于控制光标行开始和结束的数据,位于通道和通道的低4位(0-3)。当通道的符号4位=1标记没有出现时,光标只能出现。光标大小范围从0到13。(2)当AH=2

13、时,设置光标位置DH=行号,DL=列号,BH=页码,页码BH=0第5行(0,1,2,3,4),第5行(5)。第6栏,(0,1,2,3,4,5) mov BH,o;页码BH是0 mov AH,2;将光标位置设置为int ioh movch,开始行movcl为5,结束行movah为7,读取标签行INT 10H(1)1卷处的光标位置(AH=3H,ZHT10H) AH=3,函数3为读取光标位置,页码必须在BH中指定。该函数给出光标位置的行号,列号=DL。CH和CL的示例用光标大小参数填充:读取当前光标位置第0页的MOV AH,读取光标位置第3页的MOV BH,第0页的INT 10H,行号=DH列号=D

14、L (1)清除屏幕和郑屏幕(AH=06H,INT10H)。功能6使屏幕内容能够向上滚动指定的行。这个函数需要7个参数。如果屏幕的开始行不是(0,0)如果结束行不是(24,79),则只有屏幕的指定部分具有滚动功能。这个屏幕上的一些区域叫做窗口。我们可以在屏幕上设置多个这样的窗口,可以独立使用。如果滚动超过指定窗口的顶部,这些行的内容将会丢失,出现在窗口底部的新行将被空格填充,它们的属性将由BH寄存器IP决定。例如,AL=0将根据AL中的空白字符10使指定的窗口占优势,AH=7类似于6,以便初始化屏幕(或窗口)或向下滚动指定的行。示例3:将右上角清除为(0,0),将右下角清除为窗口,并将其初始化为

15、反相显示,这相当于窗口的左半部分。Mov AH,7卷Mov AL,o填充空白Mov BH,70h反向movch在白色背景上为黑色,0 movcl在左上角,0 movdh在左上角,24 movdl在右下角,Int 10H在右下角。输入的字符将显示在窗口底部。每次输入20个字符,该行将向上滚动9行。输入字符后,将显示顶行的内容。prognam段假设cs: prognam push ds subax,axpush ax1,字符显示AH=9,OAH,INT10H,AH=09/0A,所有这些都可以将一个字符传输到显示屏,然后将光标返回到其初始位置,因此在当前光标位置写入一个字符后,必须使用INT10H的

16、OZ函数将光标移动到下一个字符位置。区号:AH=09H,=0AH。将字符及其属性输出到当前光标位置。仅输出字符,并且它们的属性是该位置的先前属性。示例5将光标设置到0显示页面的(20,25)位置,并显示一个星号movat,距离正常属性2;设置光标位置,movbt,2;第0页,第20页;0行,25列movdt,25 int10t movat,09;在光标位置显示字符和属性移动。显示字符movbt,0;页面=0 mov bl,7;属性movcx,黑色背景上有白色字符,1;字符重复次数int 10h mov ah,6个绕组功能编号6 mov al,0填充空白movach,0左上行0.0 mov cl

17、,0 mov dh,24右下行24.79 movdl,79 movbh,7,int 10 h pos-curl: movah,2;设置光标位置movh,16行mov dl,30列mov bh,0页码int 10h mov cx,20接收字符数getchar:movh ah,1 int 21h cmp al,3,3为CTRC退出jz退出循环获取char mov ah,6;向上移动,1向上移动行,8左上角行,列8.30移动行,30移动行,50移动行,黑色背景上的7个白色字符示例6:读取0显示页面(11,0)位置的字符和属性。Movh,2设置光标,0页面movh,0页面0 Mov dh,11行1 Mov dl,0列1int10h movh,8读取光标位置的movh,0属性AH Int 10h和字符AL DOS显示函数调用(INT21H,AH=2,6,9),两个显示单个字符,另一个显示字符串,你可以自动移动光标AH=9,DS: DX=字符串地址向前,字符串必须参与结果,光标显示字符串与字符串。它要求显示的字符必须以字符(24大)作为分隔符。此函数用作

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论