版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第九章BIOS和DOS中断任课教师:陶雪丽xueli_xl@126.com2/6/20231河南师范大学计算机与信息技术学院本章内容提要键盘I/O显示器I/O打印机I/O串行通信口I/O2/6/20232河南师范大学计算机与信息技术学院BIOS和DOS基本输入输出系统(basicinput/outputsystem,BIOS)例行程序,驻留在系统的从地址0FE000H开始的8KB的只读存储器中。BIOS给PC系列的不同微处理器提供了兼容的系统加电自检、引导装入、主要I/O设备的处理程序以及接口控制等功能模块来处理所有的系统中断。使用DOS操作比使用BIOS操作更简易,而且DOS对硬件的依赖性更少些。有些情况既能选择DOS中断也能选择BIOS中断。如字符输入输出等。但有些功能DOS没有提供,这时只能考虑用I/O指令在端口级上编程。如声音控制等。2/6/20233河南师范大学计算机与信息技术学院BIOS和DOS功能调用的步骤将调用参数装入指定的寄存器中;如需功能号,把它装入AH;如需子功能号,把它装入AL;按中断号调用DOS或BIOS中断;检查返回参数是否正确。2/6/20234河南师范大学计算机与信息技术学院9.1键盘I/O1字符码与扫描码2BIOS键盘中断3DOS键盘功能调用2/6/20235河南师范大学计算机与信息技术学院键盘的基本键键盘的主要三种基本类型键:字符数字键。如A(a)~Z(z),数字0~9以及%,$,#等常用字符。扩展功能键。如Home,End,Backspace,Delete的等。和其他键组合使用的控制键。如Alt,Ctrl和Shift等。字符数字键给计算机传送一个ASCII码字符;扩展功能键产生一个动作;组合控制键能改变其他键所产生的字符码。2/6/20236河南师范大学计算机与信息技术学院9.1.1字符码和扫描码当在键盘上“按下”或“放开”一个键时,如果键盘中断是允许的(21H端口的D1=0),就会产生一个类型号为9的中断,并转入到BIOS的键盘中断处理程序。该处理程序从8255可编程外围接口芯片的输入端口60H读取一个字节,这个字节的低7位是键的扫描码。而最高位为0或为1,分别表示键的“按下”和“放开”状态。按下时,取得的字节称为通码;放开时取得的字符称为断码。键盘上每个键都对应一个扫描码。根据扫描码能惟一地确定哪一个键改变了状态。P317的表9.3给出了键盘上每个键对应的扫描码。2/6/20237河南师范大学计算机与信息技术学院BIOS键盘中断处理程序BIOS键盘中断处理程序将取得到扫描码转换成相应的字符码,大部分键的字符码是一个标准的ASCII码。转换成的字符码以及扫描码存储在ROMBIOS数据区的键盘缓冲区KB_BUFFER中。
0040:001ABUFF_HEADDW?;键盘缓冲区的首地址 0040:001CBUFF_TAILDW?;键盘缓冲区的末地址 0040:001EKB_BUFFERDW16DUP(?);16个输入量的空间 0040:003DKB_BUFFER_ENDLABELWORD这个缓冲区是一个先进先出的循环队列,当首尾指针相等时,缓冲区为空。CPU要得到键盘输入时,调用BIOS键盘例行程序,按其接收时的次序从缓冲区取出字符和扫描码,回送CPU。2/6/20238河南师范大学计算机与信息技术学院9.1.2BIOS键盘中断表9.4 BIOS键盘中断(INT16H)单个字符输入 AH=0例9.1读取键盘状态字节2/6/20239河南师范大学计算机与信息技术学院9.1.3DOS键盘功能调用表9.5 DOS键盘操作(INT21H)例9.2单个字符输入 AH=1单个字符输入AH=7 例9.3、例9.4清除键盘缓冲区输入字符串例9.5检验键盘状态例9.62/6/202310河南师范大学计算机与信息技术学院9.2显示器I/O1字符属性2BIOS显示中断3DOS显示调用2/6/202311河南师范大学计算机与信息技术学院图9.4显示屏幕上的字符位置2/6/202312河南师范大学计算机与信息技术学院9.2.1字符属性单色字符显示彩色字符显示显示存储器2/6/202313河南师范大学计算机与信息技术学院1.单色字符显示对单色字符显示,图9.5字符的属性定义了字符的显示特性。属性可以有不同的组合。属性值可以任意组合。表9.6是一些单色显示的属性。屏幕上的字符可以按相同的属性显示,也可以按不同的属性显示,如果设置的属性为00H,字符就显示不出来。2/6/202314河南师范大学计算机与信息技术学院2.彩色字符显示
在显示彩色文本时,属性字节能够选择前景(显示的字符)和背景的颜色。每个字符可以选择16种颜色中的一种,背景有8种颜色可以选择。图9.6是16色文本方式显示的属性字节。表9.7列出了16色字符方式颜色的组合。2/6/202315河南师范大学计算机与信息技术学院3.显示存储器
对于所有的显示适配器,文本方式下显示字符的原理都是一样的,所不同的是各种适配器的视频显示存储器(又称显存)的起始地址不同:DMA,显存的起始地址为B000:0000;CGA/EGA/VGA,是B800:0000.每个字符的ASCII码和属性码字节存放于连续的两个字节中。图9.7表明了显示存储单元与屏幕上字符的对应关系。2/6/202316河南师范大学计算机与信息技术学院显示存储单元与屏幕上字符的对应关系在25×80的文本显示方式下,屏幕可有2000个字符位置,因每个字符需要用两个字节来表示,所以显存容量需要4KB。如果显存有16KB,则可保存4屏幕的字符数据,通常称为4页数据。CGA/EGA/VGA的80列显示方式,0页在显存中的起始地址是B800:0000,1页是B800:1000,2页是B800:0000,3页是B800:3000。屏幕上某一字符位置在显存中的偏移地址可由下列公式算出:
Char_offset=Page_offset+((row×width)+column)×byte表示一个字符所用的字节数,在字符显示方式下,byte=2。相对于屏幕左上角位置(0,0)的行列坐标。2/6/202317河南师范大学计算机与信息技术学院9.2.2BIOS显示中断表9.8 类型10H的显示操作例9.8控制光标 例9.9读光标位置例9.10选择显示页
字符显示 例9.14、例9.15清屏和卷屏 例9.11、例9.12、例9.13彩色和字符串显示 例9.16、例9.17、例9.182/6/202318河南师范大学计算机与信息技术学院9.2.3DOS显示调用表9.10 INT21H显示操作显示字符串
使用赋值伪操作
显示字符串的宏定义 例9.192/6/202319河南师范大学计算机与信息技术学院练习与作业P353-354习题上机练习: 9.2、9.82/6/202320河南师范大学计算机与信息技术学院表9.4BIOS键盘中断(INT16H)2/6/202321河南师范大学计算机与信息技术学院
BIOS单个字符输入举例 MOV AH,0 INT 16H MOV BX,AX CALL BINIHEX ;二进制转换成十六进制2/6/202322河南师范大学计算机与信息技术学院
例9.1;读取键盘状态字节,并以十六进制打印出来 AGAIN: MOV AH,02H INT 16H MOV BX,AX CALL BINIHEX MOV DL,0DH MOV AH,02H INT 21H JMP AGAIN2/6/202323河南师范大学计算机与信息技术学院
图9.2键盘状态字节2/6/202324河南师范大学计算机与信息技术学院表9.5DOS键盘操作(INT21H)2/6/202325河南师范大学计算机与信息技术学院
例9.2DOS单个字符输入AH=1;接收键盘输入并对其进行测试 GET_KEY: MOV AH,1 INT 21H CMP AL,‘Y’ JE YES CMP AL,‘N’ JE NO JNE GET_KEY2/6/202326河南师范大学计算机与信息技术学院
例9.3DOS单个字符输入AH=7;检测键盘输入的字符是否时回车键 WAIT_HERE: MOV AH,7 INT 21H CMP AL,0DH JNE WAIT_HERE2/6/202327河南师范大学计算机与信息技术学院
例9.4DOS单个字符输入AH=7;检测键盘输入的功能键。 MOV AH,7 INT 21H CMP AL,0 JE GET_EC JMP ERRORGET_EC: MOV AH,7 INT 21H CMP AL,3BH ;F1? JE OPTION1 CMP AL,3CH ;F2? JE OPTION2 CMP AL,3DH ;F3? JE OPTION3 JMP ERROR2/6/202328河南师范大学计算机与信息技术学院
例9.5输入字符串程序 .modelsmall .stack .datauser_sting db 50,0,50dup(?) .code .startup lea dx,user_string mov ah,0ah int 21h .exit 0 end2/6/202329河南师范大学计算机与信息技术学院
清除键盘缓冲区INT21H的功能0CH能清除键盘缓冲区,然后执行在AL中指定的功能。AL指定的功能可以是1,6,7,8或0AH。使用0CH功能可以使程序在输入一个字符之前,将以前输入的字符清除掉。使用0CH功能的好处是可以避免由于偶然超前键入的字符而出现的错误。例如: MOV AH,0CH MOV AL,08H INT 21H2/6/202330河南师范大学计算机与信息技术学院
例9.6检验键盘状态;该功能并不返回实际字符码,仅提供一种是否按键的提示。;在未按键之前,程序总是不断循环执行,只要按下一个键,程序就退出循环并返回。 SOUNDER: … … MOV AH,0BH INT 21H INC AL JNZ SOUNDER RET2/6/202331河南师范大学计算机与信息技术学院
图9.5单色显示的属性字节2/6/202332河南师范大学计算机与信息技术学院
表9.6单色显示的属性2/6/202333河南师范大学计算机与信息技术学院
图9.616色方式下的属性字节2/6/202334河南师范大学计算机与信息技术学院
表9.716种颜色的组合2/6/202335河南师范大学计算机与信息技术学院
图9.7显示存储单元与显示屏幕上字符的对应关系例9.72/6/202336河南师范大学计算机与信息技术学院
例9.7检验键盘状态;计算屏幕上某一字符位置所对应的显存地址。Video_addr MACRO width,page_num ;入口参数:DH=row,DL=column;出口参数:DI=Char_offset
push ax mov al,width mul dh xor dh,dh add ax,dx shl ax,1 add ax,page_num*1000h mov di,ax pop ax endm2/6/202337河南师范大学计算机与信息技术学院
表9.8类型10H的显示操作2/6/202338河南师范大学计算机与信息技术学院
表9.8类型10H的显示操作2/6/202339河南师范大学计算机与信息技术学院
例9.8控制光标;置光标开始行为5,结束行为7,;并把它设置到第5行第6列。 MOV CH,5 ;置光标类型 MOV CL,7 MOV AH,1 INT 10H MOV DH,4 ;置关标位置 MOV DL,5 MOV BH,0 MOV AH,2 INT 10H2/6/202340河南师范大学计算机与信息技术学院
例9.9读光标位置;读0页的当前光标位置 MOV AH,3 MOV BH,0 INT 10H2/6/202341河南师范大学计算机与信息技术学院
例9.10选择显示页;INT10H的功能5可由程序确定显存中的显示区域。ROMBIOS将CGA的显存分为4页,每页25×80个字符,或分为8页,每页25×40个字符。每一页的起始地址在1KB的边界。这四页的起始地址分别为B800:0000,B800:1000,B800:2000,B800:3000。 MOV AL,vpage ;AL=页号 MOV AH,5 INT 10H2/6/202342河南师范大学计算机与信息技术学院
例9.11-1;清除全屏幕的子程序clear_screen proc near push ax push bx push cx push dx;clearscreen mov ah,6 mov al,0 mov bh,7 mov ch,0 mov cl,0 mov dh,242/6/202343河南师范大学计算机与信息技术学院
例9.11-2 mov dl,79 int 10h;locatecursor mov dx,0 mov ah,2 int 10h;restoreregisters pop dx pop cx pop bx pop axclear_screen endp2/6/202344河南师范大学计算机与信息技术学院
例9.12;清除左上角为(0,0),右下角为(24,39)的窗口,;初始化为反相显示,该窗口相当于全屏幕的左半部分。 MOV AH,7 MOV AL,0 MOV BH,70H MOV CH,0 MOV CL,0 MOV DH,24 MOV DL,39 INT 10H2/6/202345河南师范大学计算机与信息技术学院
例9.13-1;在屏幕中心的小窗口显示字符。 .modelsmall .stack .dataEsc_key equ 1bhwin_ulc equ 30win_ulr equ 8win_lrc equ 50win_lrr equ 16win_width equ 20 .codeinclude cls.inc ;clearthescreen2/6/202346河南师范大学计算机与信息技术学院
例9.13-2 .startup call clear_screen locate: mov ah,2 mov dh,win_lrr mov dl,win_ulc mov bh,0 int 10h mov cx,win_width get_char: mov ah,1 int 21h cmp al,Esc_key jz exit loop get_char2/6/202347河南师范大学计算机与信息技术学院
例9.13-3;scrollup mov ah,6 mov al,1 mov ch,win_ulr mov cl,win_ulc mov dh,win_lrr mov dl,win_lrc mov bh,7 int 10h jmp locate .exit 0 end2/6/202348河南师范大学计算机与信息技术学院
例9.14字符显示;置光标到0显示页的(20,25)位置,;并以正常属性显示一个星号‘*’。 MOV AH,2 MOV BH,0 MOV DH,20 MOV DL,25 INT 10H MOV AH,9 MOV AH,‘*’ MOV BH,0 MOV BL,7 MOV CX,1 INT 10H2/6/202349河南师范大学计算机与信息技术学院
例9.15;在0页显示页的(11,0)位置读取字符和属性 MOV AH,2 MOV BH,0 MOV DH,11 MOV DL,0 INT 10H MOV AH,8 MOV BH,0 INT 10H2/6/202350河南师范大学计算机与信息技术学院
例9.16;彩色和字符串显示BL中设置的为前景和背景的属性值,属性值的典型组合如表9.9。;在品红背景下,显示5个浅绿色闪烁的星号。 MOV AH,09 MOV AL,’*’ MOV BH,0 MOV BL,0DAH MOV CX,05 INT 10H2/6/202351河南师范大学计算机与信息技术学院
表9.9属性字节的典型组合2/6/202352河南师范大学计算机与信息技术学院
例9.17;在屏幕上以红底蓝字显示字符串:;“WORLDSCENERY”
STRING DB ‘WORLDSCENERY’ LEN_STR EQU $-STRING … MOV AL,3 MOV AH,0 INT 10H MOV BP,SEGSTRING MOV ES,BP MOV BP,OFFSETSTRING MOV CX,LEN_STR MOV DX,0 MOV BL,41H MOV AL,0 MOV AH,13H INT 10H2/6/202353河南师范大学计算机与信息技术学院
例9.18-1;在屏幕上以红底蓝字显示“WORLD”,然后分别以红底绿字和红底蓝字相间地显示“SCENERY”。STRING1 DB ‘WORLD’STRING2 DB ‘$’,42H,‘C’,41H,‘E’,42H,‘N’,41H DB ‘E’,42H,‘R’,41H,‘Y’,42HLEN_STR2 EQU $-STRING2 … MOV AL,3 MOV AH,0 INT 10H MOV BP,SEGSTRING1 MOV ES,BP2/6/202354河
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 【正版授权】 ISO 16610-21:2025 EN Geometrical product specifications (GPS) - Filtration - Part 21: Linear profile filters: Gaussian filters
- 2025年度楼顶广告牌租赁期广告效果评估与优化协议4篇
- 二零二五版集装箱销售与全球物流配送、保险、维修保养及服务合同范本3篇
- 二零二五年度钢材采购合同绿色物流与配送服务协议3篇
- 2025年度零食店收银员与顾客社交平台互动合同4篇
- 2025年度智能车牌租赁服务合同范本8篇
- 2025年高校与地方政府教育资源共享合作协议3篇
- 2025年度美容院美容院美容项目合作经营合同4篇
- 2025年度个人户外运动保险合同样本2篇
- 二零二五版民营医院药剂科药剂师劳动合同4篇
- 数学-山东省2025年1月济南市高三期末学习质量检测济南期末试题和答案
- 中储粮黑龙江分公司社招2025年学习资料
- 湖南省长沙市2024-2025学年高一数学上学期期末考试试卷
- 船舶行业维修保养合同
- 2024年3月江苏省考公务员面试题(B类)及参考答案
- 医院科室考勤表
- 春节期间化工企业安全生产注意安全生产
- 数字的秘密生活:最有趣的50个数学故事
- 移动商务内容运营(吴洪贵)任务一 移动商务内容运营关键要素分解
- 基于ADAMS的汽车悬架系统建模与优化
- 当前中国个人极端暴力犯罪个案研究
评论
0/150
提交评论