汇编语言程序设计第九章模板.ppt





《汇编语言程序设计第九章模板.ppt》由会员分享,可在线阅读,更多相关《汇编语言程序设计第九章模板.ppt(21页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第九章、第九章、第九章、第九章、BIOS BIOS 和和和和 DOS DOS 中断中断中断中断第第1515讲讲(第第1515周周):键盘:键盘I/OI/O和显示器和显示器I/O I/O 第第第第15151515讲:键盘讲:键盘讲:键盘讲:键盘I/OI/O和显示器和显示器和显示器和显示器I/OI/O 键盘键盘 I/O 显显示器示器 I/O 打印机打印机 I/O 串行通信口串行通信口I/O前一讲总目录第第1515讲讲(第第1515周周):键盘:键盘I/OI/O和显示器和显示器I/O I/O 前一讲总目录预备知识预备知识预备知识预备知识1.BIOS1.BIOS1.BIOS1.BIOS(basic i
2、nput/output system(basic input/output system 基本输入输出系统基本输入输出系统基本输入输出系统基本输入输出系统):存存储储系系统统中中从从地地址址0FE000H0FE000H0FE000H0FE000H0FFFFFH0FFFFFH0FFFFFH0FFFFFH的的8KB8KB8KB8KBROMROMROMROM中中装装入入的的基基本本输输入入输输出出的的例例行行程程序序,主主要要包包括括系系统统加加电电自自检检、引引导导装装入入、I/OI/O设设备备的的处处理理程程序序以以及及接接口口控控制功能模块制功能模块(最接近硬件最接近硬件););2.DOS2.
3、DOS2.DOS2.DOS(disk operating system(disk operating system 磁盘操作系统磁盘操作系统磁盘操作系统磁盘操作系统)的两个功能模块:的两个功能模块:1.IBM1.IBM1.IBM1.IBMBIOBIOBIOBIO.COM.COM.COM.COM:输输输输入入入入输输输输出出出出设设设设备备备备处处处处理理理理程程程程序序序序,主主要要提提供供DOSDOS到到ROMROMROMROM BIOSBIOS的的低低级级接接口口,主要完成内存与外设之间的数据交换主要完成内存与外设之间的数据交换主要完成内存与外设之间的数据交换主要完成内存与外设之间的数据交
4、换;2.IBM2.IBM2.IBM2.IBMDOSDOSDOSDOS.COM.COM.COM.COM:主主要要包包含含一一个个文文件件管管理理程程序序和和一一些些处处理理程程序序,功功能能是是把把把把用用用用户户户户的的的的I/OI/OI/OI/O请求信息传递给请求信息传递给请求信息传递给请求信息传递给IBMBIO.COMIBMBIO.COMIBMBIO.COMIBMBIO.COM从而形成从而形成从而形成从而形成BIOSBIOSBIOSBIOS功能调用功能调用功能调用功能调用;3.DOS3.DOS3.DOS3.DOS的两个功能模块与的两个功能模块与的两个功能模块与的两个功能模块与BIOSBIO
5、SBIOSBIOS之间的关系之间的关系之间的关系之间的关系 :说明说明大多数情况下用户调用大多数情况下用户调用DOSDOS功能调用,少数情况直接调用功能调用,少数情况直接调用BIOSBIOS功能;功能;第第1515讲讲(第第1515周周):键盘:键盘I/OI/O和显示器和显示器I/O I/O 前一讲总目录 4 4 4 4.PC.PC.PC.PC中断系统中中断类型可分为三类:中断系统中中断类型可分为三类:中断系统中中断类型可分为三类:中断系统中中断类型可分为三类:第一类第一类第一类第一类 BIOSBIOSBIOSBIOS中断服务程序中断服务程序中断服务程序中断服务程序(系统主板系统主板BIOSB
6、IOS芯片提供芯片提供),主要包括:,主要包括:l l.系统内部中断系统内部中断系统内部中断系统内部中断:中断类型号中断类型号从从从从00H00H00H00H到到到到07H07H07H07H(共共8 8个个);l l.系系系系统统统统8 8 8 8级级级级外外外外部部部部中中中中断断断断:中中断断类类型型号号从从从从08H08H08H08H到到到到0FH0FH0FH0FH(共共8 8个个),它它们们对对应应于于可可编编程程中中断断控控制制器器8259A8259A的的8 8个个中中断断请请求求输输入入端端IRIR0 0 IRIR7 7的的8 8个个外外部部中中断断,其其中中IRIR2 2(中中断
7、断类类型型号号0AH)0AH)为系统保留,用户可通过该引脚实现对用户所需的外部硬件中断的管理;为系统保留,用户可通过该引脚实现对用户所需的外部硬件中断的管理;l l.设备驱动程序设备驱动程序设备驱动程序设备驱动程序:中断类型号中断类型号从从从从10H10H10H10H到到到到1FH1FH1FH1FH(共共1616个个)等;等;第二类第二类第二类第二类DOSDOSDOSDOS中断服务程序中断服务程序中断服务程序中断服务程序:中断类型号:中断类型号从从从从20H20H20H20H到到到到2FH2FH2FH2FH(共共1616个个);第第第第三三三三类类类类用用用用户户户户中中中中断断断断服服服服务
8、务务务程程程程序序序序:中中断断类类型型号号从从从从60H60H60H60H到到到到7FH7FH7FH7FH、F1HF1HF1HF1H到到到到FFHFFHFFHFFH(共共4747个个)。用用户户可可根根据据实实际际需需要要将将某某些些通通用用性性较较强强的的子子程程序序通通过过中中断断服服务务程程序序来来实实现现。一一旦旦这些中断服务程序设置好了,其他应用程序就可以调用这些中断服务程序。这些中断服务程序设置好了,其他应用程序就可以调用这些中断服务程序。5 5 5 5.BIOSBIOSBIOSBIOS和和和和DOSDOSDOSDOS基本基本基本基本调用方法:调用方法:调用方法:调用方法:111
9、1、将、将、将、将调用参数调用参数调用参数调用参数装入装入装入装入指定的指定的指定的指定的寄存器中;寄存器中;寄存器中;寄存器中;2222、BIOSBIOSBIOSBIOS或或或或DOSDOSDOSDOS功能号功能号功能号功能号装入装入装入装入AHAHAHAH;3333、如需、如需、如需、如需子功能号子功能号子功能号子功能号,把它装入,把它装入,把它装入,把它装入ALALALAL;4444、按中断号、按中断号、按中断号、按中断号调用调用调用调用DOSDOSDOSDOS或或或或BIOSBIOSBIOSBIOS中断中断中断中断(INTINTINTINT););););5555、检查或取得、检查或取
10、得、检查或取得、检查或取得返回参数返回参数返回参数返回参数。例:例:DOSDOS调用:键盘输入,显示输出调用:键盘输入,显示输出 MOV MOV AHAH,01,01;DOS;DOS功能号功能号:键盘输入键盘输入 INT 21HINT 21H ;DOS;DOS调用调用 MOV CHAR,MOV CHAR,AL AL ;返回参数返回参数:(AL)(AL)MOV MOV DLDL,CHAR,CHAR ;调用参数调用参数:输出字符输出字符 MOV MOV AHAH,02,02;DOS;DOS功能号功能号:显示输出显示输出 INT 21HINT 21H;DOS;DOS调用调用第第1515讲讲(第第15
11、15周周):键盘:键盘I/OI/O和显示器和显示器I/O I/O 总目录前一讲第第1515讲讲(第第1515周周):键盘:键盘I/OI/O和显示器和显示器I/O I/O 总目录9.19.19.19.1、键盘、键盘、键盘、键盘I/O I/O I/O I/O 1 1 1 1、键盘键的分类:、键盘键的分类:、键盘键的分类:、键盘键的分类:1.1.1.1.字字字字符符符符数数数数字字字字键键键键传传送送一一个个ASCASC码码字字符符;主主要要是是字字母母A(a)A(a)Z(z)Z(z)、常常用用字符、等以及数字字符、等以及数字();2.2.2.2.扩扩扩扩展展展展功功功功能能能能键键键键产产生生一一
12、个个动动作作;比比如如HomeHome把把光光标标移移到到屏屏幕幕左左上上角角;这这些些键键主主要要有有:F1F1F F1 12(2(程程序序功功能能键键)、ESCESC、INSERTINSERT、DELETEDELETE、HOMEHOME、ENDEND、PAGEUPPAGEUP、PAGEDOWNPAGEDOWN等等;等等;3.3.3.3.组合键组合键组合键组合键和其它键组合使用的控制键:和其它键组合使用的控制键:AltAlt、CtrlCtrl、ShiftShift等;等;说明:说明:说明:说明:l l键键盘盘和和主主机机相相连连的的五五根根线线:电电源源线线、地地线线、复复位位线线、键键盘盘
13、数数据据线线和和键键盘盘时钟线;时钟线;l l按盘识别采用按盘识别采用“行列扫描法行列扫描法”;l l键盘数据线将按键的键盘数据线将按键的8 8位位“扫描码扫描码”送入主机;送入主机;前一讲第第1515讲讲(第第1515周周):键盘:键盘I/OI/O和显示器和显示器I/O I/O 总目录2 2 2 2、字符码与扫描码、字符码与扫描码、字符码与扫描码、字符码与扫描码:1111、扫扫扫扫描描描描码码码码的的的的获获获获得得得得若若键键盘盘中中断断允允许许(8259A(8259A的的中中断断屏屏蔽蔽寄寄存存器器 即即21H21H端端口口 的的第第1 1位位为为0)0),按按下下或或放放开开一一个个键
14、键时时产产生生一一个个类类型型9 9的的键键盘盘中中断断而而转转入入BIOSBIOS键键盘盘中中断断处处理理程程序序,该该程程序序从从82558255可可编编程程外外围围接接口口芯芯片片的的输输入入口口60H60H读读取取一一个个字字节节,该该字字节节低低7 7位位就就是是“扫扫扫扫描描描描码码码码”,按按下下时时最最高高位位为为0(0(此此时时称称为为“通通通通码码码码”),放放开开时时最高位为最高位为1(1(此时称之为此时称之为“断码断码断码断码”);2222、扫描码的处理、扫描码的处理、扫描码的处理、扫描码的处理BIOSBIOS键盘中断处理程序键盘中断处理程序对扫描码作如下处理:对扫描码
15、作如下处理:l l字符数字键字符数字键(ASC(ASC码键码键)把扫描码转换成相应的把扫描码转换成相应的字符码字符码字符码字符码(大部分为大部分为ASCASC码码););l l非字符数字符键非字符数字符键(非非ASCASC码键码键)不转换,仍为扫描码,产生一个操作;不转换,仍为扫描码,产生一个操作;字符码或扫描码存储于字符码或扫描码存储于ROM BIOSROM BIOS数据区的键盘缓冲区数据区的键盘缓冲区 KB-BUFFERKB-BUFFER中中 前一讲3.3.3.3.键盘键盘键盘键盘I/OI/OI/OI/O中断中断中断中断 (1).BIOS(1).BIOS(1).BIOS(1).BIOS键盘
16、中断键盘中断键盘中断键盘中断(INT 16HINT 16HINT 16HINT 16H)AH 功能功能 返回参数返回参数 0 从键盘读一字符从键盘读一字符 AL=字符码,字符码,AH=扫描码扫描码 1 读键盘缓冲区的字符读键盘缓冲区的字符 如如ZF=0,AL=字符码,字符码,AH=扫描码扫描码 如如ZF=1,缓冲区空,缓冲区空 2 取键盘状态字节取键盘状态字节 AL=键盘状态字节键盘状态字节 P319 字符数字键字符数字键 字符码为字符码为ASCII 码码 功能键、控制键功能键、控制键 字符码为字符码为0对应一个扫描码对应一个扫描码第第1515讲讲(第第1515周周):键盘:键盘I/OI/O和
17、显示器和显示器I/O I/O 总目录前一讲(2)(2)(2)(2)DOSDOSDOSDOS键盘中断键盘中断键盘中断键盘中断(INT 21HINT 21HINT 21HINT 21H)第第1515讲讲(第第1515周周):键盘:键盘I/OI/O和显示器和显示器I/O I/O 总目录AH AH AH AH 功能功能调用参数调用参数返回参数返回参数1 1 1 1键盘输入一个字符键盘输入一个字符,并回显在屏幕上并回显在屏幕上AL=AL=字符字符(ASC(ASC码码)6 6 6 6读取键盘缓冲区字符读取键盘缓冲区字符 DL=OFFH DL=OFFH ZF=0 ZF=0时时(不空不空),AL=AL=字符字
18、符;ZF=1ZF=1时时(为空为空),AL=0AL=07 7 7 7键盘输入一个字符键盘输入一个字符,不回显不回显 AL=AL=字符字符 8 8 8 8键盘输入一个字符键盘输入一个字符,不回显;不回显;检测检测ctrl-breakctrl-breakctrl-breakctrl-break AL=AL=字符字符 A A A A输入字符到缓冲区输入字符到缓冲区 DSDS:DX=DX=缓冲区首址缓冲区首址首字节初始化为最大字符数首字节初始化为最大字符数首字节初始化为最大字符数首字节初始化为最大字符数 B B B B读键盘状态读键盘状态 有键入时有键入时AL=FFHAL=FFH无键入时无键入时AL=
19、00H AL=00H C C C C清除键盘缓冲区,并调用一种键盘功能清除键盘缓冲区,并调用一种键盘功能AL=AL=键盘功能号键盘功能号(1 1、6 6、7 7、8 8、A A)注意:注意:注意:注意:AH=1/7/8/0AHAH=1/7/8/0AHAH=1/7/8/0AHAH=1/7/8/0AH都是字符先进键盘缓冲区然后进都是字符先进键盘缓冲区然后进都是字符先进键盘缓冲区然后进都是字符先进键盘缓冲区然后进ALALALAL或用户缓冲区;或用户缓冲区;或用户缓冲区;或用户缓冲区;前一讲第第1515讲讲(第第1515周周):键盘:键盘I/OI/O和显示器和显示器I/O I/O 总目录1111、单字
20、符输入方法、单字符输入方法、单字符输入方法、单字符输入方法AH=01/07/08 AH=01/07/08 AH=01/07/08 AH=01/07/08 AH AH=01H=01H和和08H08H时时,如如果果按按下下CtrlCtrl-C C或或CtrlCtrl-Break,DOSBreak,DOS在在返返回回前前调调用用INT INT 23H23H并结束程序;并结束程序;实例参见实例参见eg9.2eg9.29.49.42222、字符串输入方法、字符串输入方法、字符串输入方法、字符串输入方法 AH=OAH AH=OAH AH=OAH AH=OAH (P322P322)从从键键盘盘读读入入一一个
21、个字字符符串串并并把把它它存存入入用用户户定定义义的的缓缓冲冲区区中中;缓缓冲冲区区中中第第1 1个个字字节保存节保存事前用户指定事前用户指定事前用户指定事前用户指定的本次输入的最大字符数的本次输入的最大字符数(=255)(=255);缓缓冲冲区区的的第第2 2个个字字节节是是实实实实际际际际输输输输入入入入的的字字符符数数(由由由由功功功功能能能能A A A A填填填填入入入入)最最后后结结束束字字符符串串的回车的回车ODHODH占一个字节;整个缓冲区的大小为占一个字节;整个缓冲区的大小为“最大字符数最大字符数最大字符数最大字符数(含回车含回车含回车含回车)+2)+2)+2)+2”;程程序序
22、运运行行时时,每每键键入入一一个个字字符符第第2 2个个字字节节自自增增1 1,当当第第2 2个个字字节节值值比比第第1 1个个字字节节小小且且遇遇到到“回回车车”则则结结束束输输入入,若若第第1 1个个字字节节等等于于第第0 0个个字字节节值值还还没没有有“回回车车”则光标不移动且发则光标不移动且发“嘟嘟嘟嘟”声;声;3333、清除键盘缓冲区方法、清除键盘缓冲区方法、清除键盘缓冲区方法、清除键盘缓冲区方法 AH=OCH AH=OCH AH=OCH AH=OCH MOV AH,0CH MOV AL,08H;指定清除键盘缓冲区以后执行相应的功能;INT 21H 4444、检查键盘状态方法、检查键
23、盘状态方法、检查键盘状态方法、检查键盘状态方法 AH=OBH AH=OBH AH=OBH AH=OBH 若有按键则若有按键则AL=0FFHAL=0FFH,没有按键则,没有按键则AL=OHAL=OH SOUNDER:SOUNDER:MOV AHMOV AH,OBHOBH INT 21H INT 21H INC AL INC AL JNZ S JNZ SOUNDEOUNDER R RET前一讲例例:输入字符串到缓冲区输入字符串到缓冲区STRINGSTRING,用户最多连续输入,用户最多连续输入3232个字符;个字符;DATAS SEGMENTDATAS SEGMENTDATAS SEGMENTDA
24、TAS SEGMENT MAXLEN DB 32MAXLEN DB 32 ACTLEN DB?ACTLEN DB?STRING DB 32 STRING DB 32 DUP(?)DUP(?)DATAS ENDSDATAS ENDSDATAS ENDSDATAS ENDSCODECODE SEGMENT SEGMENTMOV AX,DATAS MOV AX,DATAS MOV MOV DS,AXDS,AXLEALEADX,MAXLENDX,MAXLENMOVMOVAH,AH,0AH0AH0AH0AHINTINT21H21HCODECODE ENDS ENDS END END第第1515讲讲(第第
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汇编语言 程序设计 第九 模板

限制150内