《汇编语言》PPT课件.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《《汇编语言》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《汇编语言》PPT课件.ppt(57页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、汇编语言数学科学学院计算机应用技术专业修兴强&Ariel北京师范大学数学科学学院202.112.84.202/2007年11月1第15章 BIOS程序设计2007年11月2BIOS数据区BIOS数据区包含了ROM BIOS服务历程使用的系统数据,它位于内存的0040h段内。中断向量表BIOS和DOS数据软件BIOSDOS内核、设备驱动命令行处理器驻留部分驻留程序区(应用程序可用)命令行处理器的暂留部分图形视频文本和图形视频保留区ROM BIOS地址FFFFFF0000C0000B8000A80000040000000VRAM640K RAM2007年11月3INT 16h键盘中断BIOS层次仅
2、在硬件层次之上,在该层次控制计算机有着极大的灵活性,这种方法的一个重要限制就是所有的程序必须在实地址模式或虚拟8086模式下运行。BIOS键盘处理程序INT 16h获取键盘输入。INT 16h不允许重定向,但却是读取扩展功能键、方向盘、PgUp和PgDn的最好方法,这些扩展键产生一个8位的扫描码(scan code)。对IBM兼容机而言,每个键的扫描码都是惟一的。事实上,所有的按键都产生扫描码,但我们通常并不注意和ASCII字符对应的扫描码,因为这是ASCII码更加通用。当按下扩展健时,其ASCII码是00h或E0h,如下表所示:按键按键ASCIIASCII码码Ins,Del,PageUp,P
3、ageDown,Home,End,上,下,左,右E0h功能键(F1-F12)00h2007年11月4键盘是如何工作的?键盘输入事件是从键盘控制芯片开始的,到字符被放在30字节的键盘输入缓冲区(在偏移001Eh003Dh处)中时结束。键盘输入缓冲区在任何时刻最多可容纳15个击键,因为每次击键将产生两个字节(ASCII码+扫描码)的数据。当用户按键时将产生下列事件:l键盘控制芯片向PC的键盘输入端口发送一个8位的扫描码(sc)。l输入端口引发一个中断,中断是预定义的信号,用于通知CPU一个输入输出设备需要引起注意。CPU通过执行INT 9h服务例程响应键盘中断。lINT 9h服务例程从输入端口获取
4、键盘的扫描码(sc)并查找对应的ASCII码(ac),如果找到了ASCII码就将ASCII码和扫描码仪器插入到键盘缓冲区中(如果扫描码没有对应的ASCII码,键盘缓冲区中的ASCII码就设为0)。2007年11月5KeyboardINT 9h handlertypeahead bufferINT 21h handlerINT 16h handlersc=scan codeac=ASCII codescscsc,acacsc,acinput port2007年11月6一旦扫描码和ASCII码被安全地放置于缓冲区中,它们就一直保存在那里,直到被当前运行的程序取出为止,有两种方法取出按键:l调用BI
5、OS INT 16h功能从键盘缓冲区中返回扫描码和ASCII码。这在处理没有ASCII码的功能键和光标键时非常有用。l调用MS-DOS INT 21h功能从输入缓冲区中返回按键的ASCII码。如果按下了扩展健,必须第二次调用INT 21h以返回扫描码。INT 16h功能进行键盘处理时INT 16h比INT 21h有许多明显的优点。INT 16h可在一步内同时返回扫描码和ASCII码;另外INT 16h还有一些额外的功能,如设置击键重复率和返回键盘状态标志等。击键重复率是指在按下键时击键的重复速率。当不知道用户按下的是否是扩展健时,INT 16h通常是可调用的最佳功能。2007年11月7INT
6、16h功能03h(设置击键重复率)INT 16h功能03h允许设置键盘击键重复率。当一直按着某个键时,在键开始重复之前通常有2501000毫秒的延迟。重复速率的取值可以在1Fh(最慢)到0(最快)之间。描述描述设置击键重复率接收参数接收参数AH=3AL=5BH=重复延迟(0=250 ms;1=500ms;2=750ms;3=1000ms)返回值返回值无2007年11月8INT 16h功能05h(在键盘缓冲区中插入按键动作)INT 16h功能05h允许你将一个按键动作送入键盘缓冲区。一个按键由两个8位整数构成:一个ASCII码和一个键盘扫描码。描述描述将按键送键盘缓冲区接收参数接收参数AH=5C
7、H=扫描码CL=ASCII码返回值返回值如果键盘缓冲区已满,则CF=1,AL=1;否则CF=0,AL=02007年11月9INT 16h功能10h(等待按键)INT 16h功能10h从键盘缓冲区中删除下一个按键。如果缓冲区中没有现成的按键存在,则键盘处理程序等待用户按键。描述描述等待按键接收参数接收参数AH=10h返回值返回值AH=键盘扫描码AL=ASCII码注意注意如果缓冲区内无按键,该功能就等待按键2007年11月10INT 16h功能11h(检查键盘缓冲区)INT 16h功能11h允许察看键盘缓冲区内是否有按键在等待。如果有按键,则函数返回按键的ASCII码和扫描码。我们可在执行其他任务
8、的循环内使用该功能,注意该功能并不从键盘缓冲区中删除按键。描述描述检查键盘缓冲区接收参数接收参数AH=11h返回值返回值如果有键在等待,则ZF=0,AH=扫描码,AL=ASCII码;否则ZF=0注意注意并不从缓冲区中删除字符(如果有的话)2007年11月11INT 16h功能12h(获取键盘标志)INT 16h功能12h返回非常有价值的关于当前键盘标志的信息。例如 字处理程序通常在CapsLock,NumLock和Insert等按下的时候在屏幕的底端显示标志或记号,这是通过不断检查键盘标志并监视其变化而做到的。描述描述获取键盘标志接收参数接收参数AH=12h返回值返回值键盘状态标志的一份拷贝注
9、意注意键盘标志位于BIOS数据区中,在00417h-00418h处2007年11月12INT 10h视频程序设计背景知识应用程序在文本模式下向屏幕上写字符的时候,可在下列三种类型的视频输出方式中进行选择:lMS-DOS方式访问:任何运行或模拟MS-DOS的计算机都可以使用INT 21h在视频显示上写文本,输入输出可轻易地被重定向到其他设备上,如打印机和磁盘。但这种访问模式输出较慢并且不能控制文本的颜色。lBIOS方式访问:使用INT 10h BIOS服务输出字符。执行起来比INT 21h快得多,而且允许控制文本的颜色。在填充大块屏幕区域时,通常能感觉到轻微的延迟。输出不能重定向。l直接视频访问
10、:字符直接送视频RAM,因此执行是瞬时的。输出不可重定向。在MS-DOS时代,字处理程序和电子表格程序全部采用了这种方法(在Windows NT/2000/XP下这种方法仅限于全屏模式)。应用程序在选择使用何种访问方式时不尽相同。那些要求高性能的程序选择直接视频访问;其他一些则选择BIOS方式访问;当屏幕输出需要重定向或要和其他程序共享屏幕时,一般使用MOS-DOS方式访问。应该说明的是,MS-DOS中断使用BIOS过程来完成它们的任务,而BIOS过程又使用直接视频访问在屏幕上输出结果。2007年11月13在全屏幕模式下运行程序使用视频BIOS绘制图形的程序应该在以下环境下执行:l纯MS-DO
11、S。lLinux 下的DOS模拟器。lMS-Windows下的全屏模式。在MS-Windows下有两种方法切换到全屏模式:l为程序的EXE文件创建一个快捷方式,打开快捷方式的属性对话框,选择屏幕标签,然后选择全屏幕模式。l从开始菜单中打开一个命令行窗口,然后按下Alt-Enter键切换到全屏模式。使用cd命令(改变目录)进入EXE文件所在的目录,输入程序的名字运行程序。Alt-Enter是一个开关,再次按下它就可以返回到窗口模式。2007年11月14理解视频文本视频模式有两种类型:文本模式和图形模式。当计算机以MS-DOS引导后,视频控制器就被设置为视频模式3(彩色文本,25行80列)。在文本
12、模式下,行从屏幕最顶端(行0)开始计算,行高是当前字体的一个字符单元的高度;列从屏幕的最左边(列0)开始计算,列宽是一个字符单元的宽度。字体字体字符是由驻留内存的字体表生成的。最初这个表格位于ROM中,但后来版本的BIOS允许程序员在运行时重写字体表,这使得在文本模式下自定义字体成为可能。视频文本页视频文本页文本模式下的视频内存被分成多个视频页,每一页都可以容纳整个屏幕的文本。应用程序可以在显示一页的时候写另外的隐藏页,并可以在页之间快速切换。在追求高性能的时代,MS-DOS程序常常要在内存中同时保留若干个文本页。随着当前图形接口的流行,文本页的特性已经不再重要了。默认的视频页是页0。2007
13、年11月15属性属性如下所示,每个字符都被赋予了一个控制字符颜色(称为前景色)和字符之后的屏幕颜色(称为背景色)的属性字节。视频显示的每个位置容纳一个字符以及其属性(颜色)。属性以一个单独的字节存储,在内存中的位置紧跟在字符后面。在下图中,屏幕上的三个位置包含字母ABC:闪烁闪烁视频显示的字符可以闪烁。视频控制器以预定的频率反转字符的前景色和背景色来做到这一点。当PC从MS-DOS模式引导时,默认情况下闪烁是被允许的,我们可以使用视频BIOS功能来关闭闪烁。在MS-Windows下打开MS-DOS模拟窗口时,默认情况下闪烁是被禁止的。A前景(字符)背景Ann Bnn Cnn字符属性字符属性字符
14、属性2007年11月16色彩的控制原色的混合视频显示上的每个像素都是通过三种独立的电子束产生的:红、绿和蓝,还有一个通道用来控制像素的亮度。因此所有可用的文本颜色都可以用下表中的4位二进制值来表示(I=亮度、R=红、G=绿、B=蓝)。下图显示了一个白色像素的构成。1111IRGB2007年11月17如下图所示,将三原色混合就可以产生新的色彩。进一步打开亮度位,混合后的色彩就会更亮。混合三原色混合三原色得到的颜色得到的颜色打开亮度位打开亮度位红+绿+蓝浅灰白绿+蓝青浅青红+蓝洋红浅洋红红+绿棕黄(无色彩)黑色暗灰2007年11月18如下表所示,原色和混合色彩组成了所有可能的4位色彩值。右边列表中
15、的每种色彩都打开了亮度位。IRGBIRGB色彩色彩IRGBIRGB色彩色彩0000黑1000灰0001蓝1001浅蓝0010绿1010浅绿0011青1011浅青0100红1100浅红0101洋红1101浅洋红0110棕1110黄0111浅灰1111白2007年11月19属性字节在色彩文本模式下,每个字符都被赋予了一个属性字节,该字节由两个4位的色彩代码构成,则前景色和背景色:IRGBIRGB背景前景闪烁闪烁 这个简单的色彩方案有一点稍微复杂的地方,那就是如果当前的显卡允许闪烁,那么背景色高位的含义就是字符是否闪烁。当该位被设置时,字符将闪烁显示:闪烁RGBIRGB背景前景允许闪烁在允许闪烁时,
16、上表中只有左边一栏的低亮度颜色可用做背景色(黑、蓝、青、红、洋红、棕和浅灰)。MS-DOS引导时默认的配色方案是二进制00000111(黑色背景、浅灰前景)。2007年11月20构造属性字节使用汇编编译器的SHL操作符将背景色值左移4位,然后与前景色进行或操作,这样就可以用两种颜色(前景和背景)构建一个属性字节。例如下面的语句创建蓝色背景浅灰色文字的属性字节:BLUE=1LIGHT_GRAY=111bmov bh,(BLUE SHL 4)OR LIGHT_GRAY;00010111下面创建红色背景白色文字的属性值:WHITE=1111bRED=100bmov bh,(RED SHL 4)OR
17、WHITE;000101112007年11月21下面是在棕色背景上产生蓝色字符:BLUE=1BROWN=110bmov bh,(BROWN SHL 4)OR BLUE);00010111在不同的操作系统下运行程序时字体和颜色会稍微有所不同。例如,在Windows 2000下闪烁是被禁止的,除非切换到全屏模式。2007年11月22INT 10h视频功能精选的INT 10h功能功能号功能号描述描述0设置文本或图形显示模式1设置光标起始和结束线,控制光标的形状和大小2设置光标在屏幕上的位置3获取光标的屏幕位置和大小6上卷当前的视频页,将上卷的行用空行代替7下卷当前的视频页,将下卷的行用空行代替8读取
18、当前光标所在位置的字符和属性9在当前光标位置显示字符及其属性0Ah在当前光标位置显示字符(无属性)0Ch图形视频模式下在屏幕上写一个像素点0Dh读取给定位置的一个像素点的色彩值0Fh获取视频模式信息10h切换闪烁和亮度模式1Eh以电传模式向屏幕上写字符串在调用INT 10h之前保护通用寄存器(使用PUSH指令)是个好主意,因为不同版本的BIOS影响寄存器的方式并不相同。2007年11月23INT 10h功能0(设置视频模式)INT 10h功能0允许将当前视频模式设置为文本或图形模式,一些文本模式的编号列在下表中。模式模式分辨率分辨率颜色数量颜色数量040*251140*2516280*2523
19、80*2516780*25214h132*25162007年11月24在设置新的视频模式之前,最好首先获取(使用INT 10h功能0Fh)当前的视频模式并将其保存在变量中,在程序退出时可以利用该值恢复原始的视频模式。描述描述设置视频模式接收参数接收参数AH=0AL=视频模式返回值返回值无注意注意在调用该功能之前,如果未设置AL中的最高位,则屏幕自动被清除2007年11月25INT 10h功能01h(设置光标起始行和结束行)INT 10h功能01h用来设置文本光标的大小。通过定义起始扫描行和结束扫描行可以控制文本光标的现实大小。应用程序可以通过设置光标的大小以显示当前操作的状态。例如,文本编辑器
20、可能会在NumLock键时增大光标,再次按下NumLock的时候,光标又恢复成原始大小。描述描述设置光标起始和结束行接收参数接收参数AH=01hCH=起始行CL=结束行返回值返回值无注意注意单色显示模式下光标使用12线方式,其他显示模式下使用8线方式2007年11月26光标可描述为一系列的水平线,其中第0线在最顶端。默认情况下光标从第6线开始,到第7线结束,如下图所示。顶端底端2007年11月27INT 10h功能02h(设置光标位置)INT 10h功能02h在特定视频页的特定行列位置定位光标。描述描述设置光标位置接收参数接收参数AH=02hDH,DL=行、列值BH=视频页返回值返回值无200
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汇编语言 PPT 课件
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内