第九章BIOS和DOS中断_第1页
第九章BIOS和DOS中断_第2页
第九章BIOS和DOS中断_第3页
第九章BIOS和DOS中断_第4页
第九章BIOS和DOS中断_第5页
已阅读5页,还剩54页未读 继续免费阅读

下载本文档

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

文档简介

1、IBM-PC汇编语言程序设计2021-9-23河南师范大学计算机与信息技术学院1第九章第九章 BIOSBIOS和和DOSDOS中断中断任课教师:陶雪丽任课教师:陶雪丽xueli_IBM-PC汇编语言程序设计河南师范大学计算机与信息技术学院河南师范大学计算机与信息技术学院22021-9-23本章内容提要本章内容提要 键盘键盘I/OI/O显示器显示器I/OI/O打印机打印机I/OI/O串行通信口串行通信口I/OI/OIBM-PC汇编语言程序设计河南师范大学计算机与信息技术学院河南师范大学计算机与信息技术学院32021-9-23BIOSBIOS和和DOS DOS 基本输入输出系统(基本输入输出系统(

2、basic input/output system , BIOSbasic input/output system , BIOS)例)例行程序,驻留在系统的从地址行程序,驻留在系统的从地址0FE000H0FE000H开始的开始的8KB8KB的只读存储器中。的只读存储器中。 BIOS BIOS给给PCPC系列的不同微处理器提供了兼容的系统加电自检、引系列的不同微处理器提供了兼容的系统加电自检、引导装入、主要导装入、主要I/OI/O设备的处理程序以及接口控制等功能模块来处理设备的处理程序以及接口控制等功能模块来处理所有的系统中断。所有的系统中断。 使用使用DOSDOS操作比使用操作比使用BIOSB

3、IOS操作更简易,而且操作更简易,而且DOSDOS对硬件的依赖性对硬件的依赖性更少些。更少些。 有些情况既能选择有些情况既能选择DOSDOS中断也能选择中断也能选择BIOSBIOS中断。如字符输入输出中断。如字符输入输出等。等。 但有些功能但有些功能DOSDOS没有提供,这时只能考虑用没有提供,这时只能考虑用I/OI/O指令在端口级上指令在端口级上编程。如声音控制等。编程。如声音控制等。IBM-PC汇编语言程序设计河南师范大学计算机与信息技术学院河南师范大学计算机与信息技术学院42021-9-23BIOSBIOS和和DOSDOS功能调用的步骤功能调用的步骤将调用参数装入指定的寄存器中;将调用参

4、数装入指定的寄存器中;如需功能号,把它装入如需功能号,把它装入AHAH;如需子功能号,把它装入如需子功能号,把它装入ALAL;按中断号调用按中断号调用DOSDOS或或BIOSBIOS中断;中断;检查返回参数是否正确。检查返回参数是否正确。IBM-PC汇编语言程序设计河南师范大学计算机与信息技术学院河南师范大学计算机与信息技术学院52021-9-239.1 9.1 键盘键盘I/O I/O 字符码与扫描码字符码与扫描码BIOSBIOS键盘中断键盘中断DOSDOS键盘功能调用键盘功能调用IBM-PC汇编语言程序设计河南师范大学计算机与信息技术学院河南师范大学计算机与信息技术学院62021-9-23键

5、盘的基本键键盘的基本键 键盘的主要三种基本类型键:键盘的主要三种基本类型键: 字符数字键。如字符数字键。如A(a)A(a)Z(z)Z(z),数字,数字0 09 9以及,以及,$ $,等,等常用字符。常用字符。 扩展功能键。如扩展功能键。如HomeHome,EndEnd,BackspaceBackspace,DeleteDelete的等。的等。 和其他键组合使用的控制键。如和其他键组合使用的控制键。如AltAlt,CtrlCtrl和和ShiftShift等。等。字符数字键给计算机传送一个字符数字键给计算机传送一个ASCIIASCII码字符;码字符;扩展功能键产生一个动作;扩展功能键产生一个动作;

6、组合控制键能改变其他键所产生的字符码。组合控制键能改变其他键所产生的字符码。IBM-PC汇编语言程序设计河南师范大学计算机与信息技术学院河南师范大学计算机与信息技术学院72021-9-239.1.1 9.1.1 字符码和扫描码字符码和扫描码 当在键盘上当在键盘上“按下按下”或或“放开放开”一个键时,如果键盘中断是允一个键时,如果键盘中断是允许的(许的(21H21H端口的端口的D1D10 0),就会产生一个类型号为),就会产生一个类型号为9 9的中断,并转入的中断,并转入到到BIOSBIOS的键盘中断处理程序。的键盘中断处理程序。 该处理程序从该处理程序从82558255可编程外围接口芯片的输入

7、端口可编程外围接口芯片的输入端口60H60H读取一个读取一个字节,这个字节的字节,这个字节的低低7 7位是键的扫描码位是键的扫描码。而最高位为而最高位为0 0或为或为1 1,分别表,分别表示键的示键的“按下按下”和和“放开放开”状态。状态。 按下时,取得的字节称为通码;放开时取得的字符称为断码。按下时,取得的字节称为通码;放开时取得的字符称为断码。 键盘上每个键都对应一个扫描码。键盘上每个键都对应一个扫描码。根据扫描码能惟一地确定哪根据扫描码能惟一地确定哪一个键改变了状态。一个键改变了状态。P317P317的表的表9.39.3给出了键盘上每个键对应的扫描码。给出了键盘上每个键对应的扫描码。IB

8、M-PC汇编语言程序设计河南师范大学计算机与信息技术学院河南师范大学计算机与信息技术学院82021-9-23BIOSBIOS键盘中断处理程序键盘中断处理程序 BIOS BIOS键盘中断处理程序将取得到扫描码转换成相应的字符码,键盘中断处理程序将取得到扫描码转换成相应的字符码,大部分键的字符码是一个标准的大部分键的字符码是一个标准的ASCIIASCII码。码。 转换成的字符码以及扫描码存储在转换成的字符码以及扫描码存储在ROM BIOSROM BIOS数据区的键盘缓冲数据区的键盘缓冲区区KB_BUFFERKB_BUFFER中。中。0040:001A BUFF_HEAD DW ? 0040:001

9、A BUFF_HEAD DW ? ; ;键盘缓冲区的首地址键盘缓冲区的首地址0040:001C BUFF_TAIL DW ? 0040:001C BUFF_TAIL DW ? ; ;键盘缓冲区的末地址键盘缓冲区的末地址0040:001E KB_BUFFER DW 16DUP(?) 0040:001E KB_BUFFER DW 16DUP(?) ;16;16个输入量的空间个输入量的空间0040:003D KB_BUFFER_END LABEL WORD0040:003D KB_BUFFER_END LABEL WORD 这个缓冲区是一个先进先出的循环队列,当首尾指针相等时,缓这个缓冲区是一个先进

10、先出的循环队列,当首尾指针相等时,缓冲区为空。冲区为空。CPUCPU要得到键盘输入时,调用要得到键盘输入时,调用BIOSBIOS键盘例行程序,按其接键盘例行程序,按其接收时的次序从缓冲区取出字符和扫描码,回送收时的次序从缓冲区取出字符和扫描码,回送CPUCPU。IBM-PC汇编语言程序设计河南师范大学计算机与信息技术学院河南师范大学计算机与信息技术学院92021-9-239.1.2 BIOS9.1.2 BIOS键盘中断键盘中断表表9.4 9.4 BIOSBIOS键盘中断(键盘中断(INT 16HINT 16H)单个字符输入单个字符输入AH=0AH=0例例9.1 9.1 读取键盘状态字节读取键盘

11、状态字节IBM-PC汇编语言程序设计河南师范大学计算机与信息技术学院河南师范大学计算机与信息技术学院102021-9-239.1.3 DOS9.1.3 DOS键盘功能调用键盘功能调用表表9.5 9.5 DOSDOS键盘操作(键盘操作(INT 21HINT 21H)例例9.2 9.2 单个字符输入单个字符输入AH=1AH=1单个字符输入单个字符输入 AH=7AH=7例例9.3 9.3 、例、例9.49.4清除键盘缓冲区清除键盘缓冲区输入字符串输入字符串 例例9.59.5检验键盘状态检验键盘状态 例例9.69.6IBM-PC汇编语言程序设计河南师范大学计算机与信息技术学院河南师范大学计算机与信息技

12、术学院112021-9-239.2 9.2 显示器显示器I/O I/O 字符属性字符属性BIOS显示中断显示中断DOS显示调用显示调用IBM-PC汇编语言程序设计河南师范大学计算机与信息技术学院河南师范大学计算机与信息技术学院122021-9-23图图9.4 9.4 显示屏幕上的字符位置显示屏幕上的字符位置IBM-PC汇编语言程序设计河南师范大学计算机与信息技术学院河南师范大学计算机与信息技术学院132021-9-239.2.1 9.2.1 字符属性字符属性单色字符显示单色字符显示彩色字符显示彩色字符显示显示存储器显示存储器IBM-PC汇编语言程序设计河南师范大学计算机与信息技术学院河南师范大

13、学计算机与信息技术学院142021-9-231. 1. 单色字符显示单色字符显示对单色字符显示,图对单色字符显示,图9.59.5字符的属性定义了字符的显示特性。字符的属性定义了字符的显示特性。属性可以有不同的组合。属性可以有不同的组合。属性值可以任意组合。表属性值可以任意组合。表9.69.6是一些单色显示的属性。是一些单色显示的属性。 屏幕上的字符可以按相同的属性显示,也可以按不同的属性显示,屏幕上的字符可以按相同的属性显示,也可以按不同的属性显示,如果设置的属性为如果设置的属性为00H00H,字符就显示不出来。,字符就显示不出来。IBM-PC汇编语言程序设计河南师范大学计算机与信息技术学院河

14、南师范大学计算机与信息技术学院152021-9-232. 2. 彩色字符显示彩色字符显示 在显示彩色文本时,属性字节能够选择前景(显示的字符)和在显示彩色文本时,属性字节能够选择前景(显示的字符)和背景的颜色。背景的颜色。每个字符可以选择每个字符可以选择1616种颜色中的一种,背景有种颜色中的一种,背景有8 8种颜色可以选择。种颜色可以选择。图图9.69.6是是1616色文本方式显示的属性字节。色文本方式显示的属性字节。表表9.79.7列出了列出了1616色字符方式颜色的组合。色字符方式颜色的组合。IBM-PC汇编语言程序设计河南师范大学计算机与信息技术学院河南师范大学计算机与信息技术学院16

15、2021-9-233. 3. 显示存储器显示存储器 对于所有的显示适配器,文本方式下显示字符的原理都是一样对于所有的显示适配器,文本方式下显示字符的原理都是一样的,所不同的是各种适配器的视频显示存储器(又称显存)的起始的,所不同的是各种适配器的视频显示存储器(又称显存)的起始地址不同:地址不同:DMADMA,显存的起始地址为,显存的起始地址为B000:0000B000:0000;CGA/EGA/VGACGA/EGA/VGA,是,是B800:0000.B800:0000.每个字符的每个字符的ASCIIASCII码和属性码字节存放于连续的两个字节中。码和属性码字节存放于连续的两个字节中。图图9.7

16、9.7表明了显示存储单元与屏幕上字符的对应关系。表明了显示存储单元与屏幕上字符的对应关系。IBM-PC汇编语言程序设计河南师范大学计算机与信息技术学院河南师范大学计算机与信息技术学院172021-9-23显示存储单元与屏幕上字符的对应关系显示存储单元与屏幕上字符的对应关系 在在25258080的文本显示方式下,屏幕可有的文本显示方式下,屏幕可有20002000个字符位置,因每个字符位置,因每个字符需要用两个字节来表示,所以显存容量需要个字符需要用两个字节来表示,所以显存容量需要4KB4KB。如果显存。如果显存有有16KB16KB,则可保存,则可保存4 4屏幕的字符数据,通常称为屏幕的字符数据,

17、通常称为4 4页数据。页数据。 CGA/EGA/VGA CGA/EGA/VGA的的8080列显示方式,列显示方式,0 0页在显存中的起始地址是页在显存中的起始地址是B800:0000B800:0000,1 1页是页是B800:1000B800:1000,2 2页是页是B800:0000B800:0000,3 3页是页是B800:3000B800:3000。 屏幕上某一字符位置在显存中的偏移地址可由下列公式算出:屏幕上某一字符位置在显存中的偏移地址可由下列公式算出:Char_offset=Page_offset+(rowChar_offset=Page_offset+(rowwidth)+col

18、umn)width)+column)bytebyte 表示一个字符所用的表示一个字符所用的字节数,在字符显示方式字节数,在字符显示方式下,下,byte=2byte=2。 相对于屏幕左上角位置(相对于屏幕左上角位置(0 0,0 0)的行列坐标。的行列坐标。IBM-PC汇编语言程序设计河南师范大学计算机与信息技术学院河南师范大学计算机与信息技术学院182021-9-239.2.2 BIOS9.2.2 BIOS显示中断显示中断 表表9.8 9.8 类型类型10H10H的显示操作的显示操作例例9.8 9.8 控制光标控制光标例例9.9 9.9 读光标位置读光标位置例例9.10 9.10 选择显示页选择

19、显示页字符显示字符显示例例9.149.14、例、例9.159.15清屏和卷屏清屏和卷屏例例9.119.11、例、例9.129.12、例、例9.139.13彩色和字符串显示彩色和字符串显示例例9.169.16、例、例9.179.17、例、例9.189.18IBM-PC汇编语言程序设计河南师范大学计算机与信息技术学院河南师范大学计算机与信息技术学院192021-9-239.2.3 DOS9.2.3 DOS显示调用显示调用表表9.109.10 INT 21H INT 21H显示操作显示操作显示字符串显示字符串使用赋值伪操作使用赋值伪操作显示字符串的宏定义显示字符串的宏定义例例9.199.19IBM-

20、PC汇编语言程序设计河南师范大学计算机与信息技术学院河南师范大学计算机与信息技术学院202021-9-23练习与作业练习与作业P353-354 习题习题上机练习:上机练习:9.29.2、9.89.8IBM-PC汇编语言程序设计河南师范大学计算机与信息技术学院河南师范大学计算机与信息技术学院212021-9-23表表9.4 BIOS9.4 BIOS键盘中断(键盘中断(INT 16HINT 16H) IBM-PC汇编语言程序设计河南师范大学计算机与信息技术学院河南师范大学计算机与信息技术学院222021-9-23 BIOSBIOS单个字符输入举例单个字符输入举例 MOVMOVAH , 0AH ,

21、0INT INT 16H16HMOVMOVBX , AXBX , AXCALLCALLBINIHEXBINIHEX; ;二进制转换成十六进制二进制转换成十六进制IBM-PC汇编语言程序设计河南师范大学计算机与信息技术学院河南师范大学计算机与信息技术学院232021-9-23 例例9.19.1;读取键盘状态字节,并以十六进制打印出来;读取键盘状态字节,并以十六进制打印出来AGAIN:AGAIN:MOVMOVAH , 02HAH , 02HINTINT16H16HMOVMOVBX , AXBX , AXCALLCALLBINIHEXBINIHEXMOVMOVDL , 0DHDL , 0DHMOVM

22、OVAH , 02HAH , 02HINTINT21H21HJMPJMPAGAINAGAINIBM-PC汇编语言程序设计河南师范大学计算机与信息技术学院河南师范大学计算机与信息技术学院242021-9-23 图图9.2 9.2 键盘状态字节键盘状态字节IBM-PC汇编语言程序设计河南师范大学计算机与信息技术学院河南师范大学计算机与信息技术学院252021-9-23表表9.5 DOS9.5 DOS键盘操作(键盘操作(INT 21HINT 21H) IBM-PC汇编语言程序设计河南师范大学计算机与信息技术学院河南师范大学计算机与信息技术学院262021-9-23 例例9.2 DOS9.2 DOS单

23、个字符输入单个字符输入AH=1AH=1;接收键盘输入并对其进行测试;接收键盘输入并对其进行测试GET_KEY:GET_KEY:MOVMOVAH , 1AH , 1INTINT21H21HCMPCMPAL , YAL , YJEJEYESYESCMPCMPAL , NAL , NJEJENONOJNEJNEGET_KEYGET_KEYIBM-PC汇编语言程序设计河南师范大学计算机与信息技术学院河南师范大学计算机与信息技术学院272021-9-23 例例9.3 DOS9.3 DOS单个字符输入单个字符输入AH=7AH=7;检测键盘输入的字符是否时回车键;检测键盘输入的字符是否时回车键WAIT_HE

24、RE:WAIT_HERE:MOVMOVAH , 7AH , 7INTINT21H21HCMPCMPAL , 0DHAL , 0DHJNEJNEWAIT_HEREWAIT_HEREIBM-PC汇编语言程序设计河南师范大学计算机与信息技术学院河南师范大学计算机与信息技术学院282021-9-23 例例9.4 DOS9.4 DOS单个字符输入单个字符输入AH=7AH=7;检测键盘输入的功能键。;检测键盘输入的功能键。MOVMOVAH , 7AH , 7INTINT21H21HCMPCMPAL , 0AL , 0JEJEGET_ECGET_ECJMPJMPERRORERRORGET_EC:GET_EC

25、:MOVMOVAH , 7AH , 7INTINT21H21HCMPCMPAL , 3BHAL , 3BH;F1?;F1?JEJEOPTION1OPTION1CMPCMPAL , 3CHAL , 3CH;F2?;F2?JEJEOPTION2OPTION2CMPCMPAL , 3DHAL , 3DH;F3?;F3?JEJEOPTION3OPTION3JMPJMPERRORERRORIBM-PC汇编语言程序设计河南师范大学计算机与信息技术学院河南师范大学计算机与信息技术学院292021-9-23 例例9.5 9.5 输入字符串程序输入字符串程序 .model small.model small.s

26、tack.stack.data.datauser_stinguser_stingdbdb50 , 0 , 50 dup(?)50 , 0 , 50 dup(?).code.code.startup.startuplealeadx , user_stringdx , user_stringmovmovah , 0ahah , 0ahintint21h21h.exit .exit 0 0endendIBM-PC汇编语言程序设计河南师范大学计算机与信息技术学院河南师范大学计算机与信息技术学院302021-9-23 清除键盘缓冲区清除键盘缓冲区 INT 21H INT 21H的功能的功能0CH0CH能

27、清除键盘缓冲区,然后执行在能清除键盘缓冲区,然后执行在ALAL中中指定的功能。指定的功能。ALAL指定的功能可以是指定的功能可以是1 1,6 6,7 7,8 8或或0AH0AH。 使用使用0CH0CH功能可以使程序在输入一个字符之前,将以前输功能可以使程序在输入一个字符之前,将以前输入的字符清除掉。入的字符清除掉。 使用使用0CH0CH功能的好处是可以避免由于偶然超前键入的字符功能的好处是可以避免由于偶然超前键入的字符而出现的错误。而出现的错误。例如:例如:MOVMOVAH , 0CHAH , 0CHMOVMOVAL , 08HAL , 08HINTINT21H21HIBM-PC汇编语言程序设

28、计河南师范大学计算机与信息技术学院河南师范大学计算机与信息技术学院312021-9-23 例例9.6 9.6 检验键盘状态检验键盘状态;该功能并不返回实际字符码,仅提供一种是否按键的提示。;该功能并不返回实际字符码,仅提供一种是否按键的提示。; ;在未按键之前,程序总是不断循环执行,只要按下一个键,在未按键之前,程序总是不断循环执行,只要按下一个键,程序就退出循环并返回。程序就退出循环并返回。SOUNDER:SOUNDER:MOVMOVAH , 0BHAH , 0BHINTINT21H21HINCINCALALJNZJNZSOUNDERSOUNDERRETRETIBM-PC汇编语言程序设计河南

29、师范大学计算机与信息技术学院河南师范大学计算机与信息技术学院322021-9-23 图图9.5 9.5 单色显示的属性字节单色显示的属性字节IBM-PC汇编语言程序设计河南师范大学计算机与信息技术学院河南师范大学计算机与信息技术学院332021-9-23 表表9.6 9.6 单色显示的属性单色显示的属性IBM-PC汇编语言程序设计河南师范大学计算机与信息技术学院河南师范大学计算机与信息技术学院342021-9-23 图图9.6 169.6 16色方式下的属性字节色方式下的属性字节IBM-PC汇编语言程序设计河南师范大学计算机与信息技术学院河南师范大学计算机与信息技术学院352021-9-23

30、表表9.7 169.7 16种颜色的组合种颜色的组合IBM-PC汇编语言程序设计河南师范大学计算机与信息技术学院河南师范大学计算机与信息技术学院362021-9-23 图图9.7 9.7 显示存储单元与显示屏幕上字符的对应关系显示存储单元与显示屏幕上字符的对应关系例例9.79.7IBM-PC汇编语言程序设计河南师范大学计算机与信息技术学院河南师范大学计算机与信息技术学院372021-9-23 例例9.7 9.7 检验键盘状态检验键盘状态;计算屏幕上某一字符位置所对应的显存地址。;计算屏幕上某一字符位置所对应的显存地址。Video_addrVideo_addrMACROMACROwidth ,

31、page_numwidth , page_num; ;入口参数:入口参数:DH=row , DL=columnDH=row , DL=column; ;出口参数:出口参数:DI=Char_offset DI=Char_offset pushpushax ax movmoval , widthal , widthmulmuldhdhxorxordh , dhdh , dhaddaddax , dxax , dxshl shl ax , 1ax , 1addaddax , page_numax , page_num* *1000h1000hmovmovdi , axdi , axpoppopax

32、ax endmendmIBM-PC汇编语言程序设计河南师范大学计算机与信息技术学院河南师范大学计算机与信息技术学院382021-9-23 表表9.8 9.8 类型类型10H10H的显示操作的显示操作IBM-PC汇编语言程序设计河南师范大学计算机与信息技术学院河南师范大学计算机与信息技术学院392021-9-23 表表9.8 9.8 类型类型10H10H的显示操作的显示操作IBM-PC汇编语言程序设计河南师范大学计算机与信息技术学院河南师范大学计算机与信息技术学院402021-9-23 例例9.8 9.8 控制光标控制光标; ;置光标开始行为置光标开始行为5 5,结束行为,结束行为7 7,; ;

33、并把它设置到第并把它设置到第5 5行第行第6 6列。列。MOVMOVCH , 5CH , 5; ;置光标类型置光标类型MOVMOVCL , 7CL , 7MOVMOVAH , 1AH , 1INTINT10H10HMOVMOVDH , 4DH , 4; ;置关标位置置关标位置MOVMOVDL , 5DL , 5MOVMOVBH , 0BH , 0MOVMOVAH , 2AH , 2INTINT10H10HIBM-PC汇编语言程序设计河南师范大学计算机与信息技术学院河南师范大学计算机与信息技术学院412021-9-23 例例9.9 9.9 读光标位置读光标位置;读;读0 0页的当前光标位置页的当

34、前光标位置MOVMOVAH , 3AH , 3MOVMOVBH , 0BH , 0INT INT 10H10HIBM-PC汇编语言程序设计河南师范大学计算机与信息技术学院河南师范大学计算机与信息技术学院422021-9-23 例例9.10 9.10 选择显示页选择显示页;INT 10HINT 10H的功能的功能5 5可由程序确定显存中的显示区域。可由程序确定显存中的显示区域。ROM ROM BIOSBIOS将将CGACGA的显存分为的显存分为4 4页,每页页,每页25258080个字符,或分为个字符,或分为8 8页,页,每页每页25254040个字符。每一页的起始地址在个字符。每一页的起始地址

35、在1KB1KB的边界。这四页的边界。这四页的起始地址分别为的起始地址分别为B800:0000 , B800:1000 , B800:2000 , B800:0000 , B800:1000 , B800:2000 , B800:3000B800:3000。MOVMOVAL , vpageAL , vpage;AL=;AL=页号页号MOVMOVAH , 5AH , 5INTINT10H10HIBM-PC汇编语言程序设计河南师范大学计算机与信息技术学院河南师范大学计算机与信息技术学院432021-9-23 例例9.11-19.11-1;清除全屏幕的子程序;清除全屏幕的子程序clear_screen

36、clear_screenprocprocnearnearpushpushaxaxpushpushbxbxpushpushcxcxpushpushdxdx;clear screen;clear screenmovmovah , 6ah , 6movmoval , 0al , 0movmovbh , 7bh , 7movmovch , 0ch , 0movmovcl , 0cl , 0movmovdh , 24dh , 24IBM-PC汇编语言程序设计河南师范大学计算机与信息技术学院河南师范大学计算机与信息技术学院442021-9-23 例例9.11-29.11-2movmovdl , 79dl

37、, 79int int 10h10h;locate cursor;locate cursormovmovdx , 0dx , 0movmovah , 2ah , 2int int 10h10h;restore registers;restore registerspoppopdxdxpoppopcxcxpoppopbxbxpoppopaxaxclear_screenclear_screenendpendpIBM-PC汇编语言程序设计河南师范大学计算机与信息技术学院河南师范大学计算机与信息技术学院452021-9-23 例例9.129.12; ;清除左上角为(清除左上角为(0 0,0 0),右下

38、角为(),右下角为(2424,3939)的窗口,)的窗口,; ;初始化为反相显示,该窗口相当于全屏幕的左半部分。初始化为反相显示,该窗口相当于全屏幕的左半部分。MOVMOVAH , 7AH , 7MOVMOVAL , 0AL , 0MOVMOVBH , 70HBH , 70HMOVMOVCH , 0CH , 0MOVMOVCL , 0CL , 0MOVMOVDH , 24DH , 24MOVMOVDL , 39DL , 39INT INT 10H10HIBM-PC汇编语言程序设计河南师范大学计算机与信息技术学院河南师范大学计算机与信息技术学院462021-9-23 例例9.13-19.13-1

39、;在屏幕中心的小窗口显示字符。;在屏幕中心的小窗口显示字符。.model small.model small.stack.stack.data.dataEsc_keyEsc_keyequequ1bh1bhwin_ulcwin_ulcequequ3030win_ulrwin_ulrequequ8 8win_lrcwin_lrcequequ5050win_lrrwin_lrrequequ1616win_widthwin_widthequequ20 20 .code.codeincludeincludecls.inccls.inc;clear the screen;clear the screenI

40、BM-PC汇编语言程序设计河南师范大学计算机与信息技术学院河南师范大学计算机与信息技术学院472021-9-23 例例9.13-29.13-2.startup.startupcallcallclear_screenclear_screenlocate:locate:movmovah , 2ah , 2movmovdh , win_lrrdh , win_lrrmovmovdl , win_ulcdl , win_ulcmovmovbh , 0bh , 0intint10h10hmovmovcx , win_widthcx , win_widthget_char:get_char:movmova

41、h , 1ah , 1intint21h21hcmpcmpal , Esc_keyal , Esc_keyjzjzexitexitlooploopget_charget_charIBM-PC汇编语言程序设计河南师范大学计算机与信息技术学院河南师范大学计算机与信息技术学院482021-9-23 例例9.13-39.13-3;scroll up;scroll upmovmovah , 6ah , 6movmoval , 1al , 1movmovch , win_ulrch , win_ulrmovmovcl , win_ulccl , win_ulcmovmovdh , win_lrrdh ,

42、win_lrrmovmovdl , win_lrcdl , win_lrcmovmovbh , 7bh , 7intint10h10hjmpjmplocatelocate.exit.exit0 0endendIBM-PC汇编语言程序设计河南师范大学计算机与信息技术学院河南师范大学计算机与信息技术学院492021-9-23 例例9.14 9.14 字符显示字符显示;置光标到;置光标到0 0显示页的(显示页的(2020,2525)位置,)位置,;并以正常属性显示一个星号;并以正常属性显示一个星号* *。MOVMOVAH , 2AH , 2MOVMOVBH , 0BH , 0MOVMOVDH , 2

43、0DH , 20MOVMOVDL , 25DL , 25INTINT10H10HMOVMOVAH , 9AH , 9MOVMOVAH , AH , * *MOVMOVBH , 0BH , 0MOVMOVBL , 7BL , 7MOVMOVCX , 1CX , 1INTINT10H10HIBM-PC汇编语言程序设计河南师范大学计算机与信息技术学院河南师范大学计算机与信息技术学院502021-9-23 例例9.159.15;在;在0 0页显示页的(页显示页的(1111,0 0)位置读取字符和属性)位置读取字符和属性MOVMOVAH , 2AH , 2MOVMOVBH , 0BH , 0MOVMOV

44、DH , 11DH , 11MOVMOVDL , 0DL , 0INT INT 10H10HMOVMOVAH , 8AH , 8MOVMOVBH , 0BH , 0INTINT10H10HIBM-PC汇编语言程序设计河南师范大学计算机与信息技术学院河南师范大学计算机与信息技术学院512021-9-23 例例9.169.16;彩色和字符串显示;彩色和字符串显示BLBL中设置的为前景和背景的属性值,属性值的典型组合如表中设置的为前景和背景的属性值,属性值的典型组合如表9.99.9。;在品红背景下,显示;在品红背景下,显示5 5个浅绿色闪烁的星号。个浅绿色闪烁的星号。MOVMOVAH , 09AH

45、, 09MOVMOVAL , AL , * *MOVMOVBH , 0BH , 0MOVMOVBL , 0DAHBL , 0DAHMOVMOVCX , 05CX , 05INTINT10H10HIBM-PC汇编语言程序设计河南师范大学计算机与信息技术学院河南师范大学计算机与信息技术学院522021-9-23 表表9.9 9.9 属性字节的典型组合属性字节的典型组合IBM-PC汇编语言程序设计河南师范大学计算机与信息技术学院河南师范大学计算机与信息技术学院532021-9-23 例例9.179.17;在屏幕上以红底蓝字显示字符串:;在屏幕上以红底蓝字显示字符串:;“WORLD SCENERY”W

46、ORLD SCENERY”STRINGSTRINGDBDBWORLD SCENERYWORLD SCENERYLEN_STRLEN_STR EQUEQU$ $STRINGSTRINGMOVMOVAL , 3AL , 3MOVMOVAH , 0AH , 0INTINT10H10HMOVMOVBP , SEG STRINGBP , SEG STRINGMOVMOVES , BPES , BPMOVMOVBP , OFFSET STRINGBP , OFFSET STRINGMOVMOVCX , LEN_STRCX , LEN_STRMOVMOVDX , 0DX , 0MOVMOVBL , 41HB

47、L , 41HMOVMOVAL , 0AL , 0MOVMOVAH , 13HAH , 13HINTINT10H10HIBM-PC汇编语言程序设计河南师范大学计算机与信息技术学院河南师范大学计算机与信息技术学院542021-9-23 例例9.18-19.18-1;在屏幕上以红底蓝字显示;在屏幕上以红底蓝字显示“WORLD”WORLD”,然后分别以红底绿字,然后分别以红底绿字和红底蓝字相间地显示和红底蓝字相间地显示“SCENERY”SCENERY”。STRING1STRING1DB DB WORLDWORLDSTRING2STRING2DB DB $ , 42H , C , 41H , $ , 42H , C , 41H , E, 42H , N , 41HE, 42H , N , 41HDBDBE , 42H , R , 41H , E , 42H , R , 41H , Y , 42HY , 42HLEN_STR2LEN_STR2EQUEQU$-STRING2$-STRING2MOVMOVAL , 3AL , 3MOVMOVAH , 0AH , 0

温馨提示

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

评论

0/150

提交评论