IBM-PC汇编语言程序设计第二版第9章-1.ppt_第1页
IBM-PC汇编语言程序设计第二版第9章-1.ppt_第2页
IBM-PC汇编语言程序设计第二版第9章-1.ppt_第3页
IBM-PC汇编语言程序设计第二版第9章-1.ppt_第4页
IBM-PC汇编语言程序设计第二版第9章-1.ppt_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

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

文档简介

键盘 I/O 显示器 I/O 打印机 I/O 串行通信口I/O 第九章 BIOS 和 DOS 中断 子程序调用 主程序 CALL SUBP 子程序 RET DOS/BIOS调用 源程序 INT n DOS/BIOS 例行程序 IRET 实现机制不同实现机制不同 BIOS和DOS基本调用 调用方法: 1、将调用参数装入指定的寄存器中; 2、BIOS或DOS功能号装入AH; 3、如需子功能号,把它装入AL; 4、按中断号调用DOS或BIOS中断(INT); 5、检查或取得返回参数。 例:DOS调用:键盘输入,显示输出 MOV AH, 01 ;DOS功能号:键盘输入 INT 21H ;DOS调用 MOV CHAR, AL ;返回参数: (AL) MOV DL, A ;调用参数: 输出字符 MOV AH, 02 ; DOS功能号: 显示输出 INT 21H ; DOS调用 1. 1. 键盘键盘I/OI/O (1) BIOS键盘中断 ( INT 16HINT 16H) AH 功能 返回参数 0 从键盘读一字符 AL=字符码,AH=扫描码 1 读键盘缓冲区的字符 如ZF=0,AL=字符码, AH=扫描码 如ZF=1,缓冲区空 2 取键盘状态字节 AL=键盘状态字节 字符数字键 字符码为ASCII 码 功能键、控制键 字符码为0 对应一个扫描码 (2)DOS键盘中断 ( INT 21HINT 21H) AHAH 功 能 调用参数 返回参数 1 1 从键盘输入一个字符并回显在屏幕上 AL=字符 6 6 读键盘字符,不回显 DL= 0FFH 若有字符可取,AL=字符,ZF=0 若无字符可取,AL=0,ZF=1 7 7 从键盘输入一个字符,不回显 AL=字符 8 8 从键盘输入一个字符,不回显, AL=字符 检测Ctrl-Break A A 输入字符到缓冲区 DS:DX = 缓冲区首址 B B 读键盘状态 AL=0FFH有键入,AL=00无键入 C C 清除键盘缓冲区, AL=键盘功能号 并调用一种键盘功能 (1,6,7,8或A) 例: 输入字符串到缓冲区STRING DATA SEGMENTDATA SEGMENT MAXLEN DB 32 MAXLEN DB 32 ,0, 32 DUP(?) ACTLEN DB ? MAXLEN DB 32 ,33 DUP(?) STRING DB 32 DUP(?) DATA ENDSDATA ENDS CODE SEGMENT LEADX,MAXLEN MOV AH,0AH0AH INT21H CODE ENDS END 32 5 68H 61H 70H 70H 79H 0DH MAXLEN ACTLEN STRING 2.2.显示器显示器I/OI/O 文本方式 ASCII字符 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 前景 000 = 黑 111 = 白 亮度 0 = 正常亮度 1 = 加强亮度 闪烁 0 = 正常显示 1 = 闪烁显示 背景 000 = 黑 111 = 白 单色属性 7 6 5 4 3 2 1 0 前景 闪烁 背景 BL R G B I R G B 16色属性 (1) BIOS显示中断 INT 10H (2) 功能号 AH=0,1, 2, 3, 5, 6, 7, 8, 9, 0AH, 0EH 13H (p.328) (3) 例:清除屏幕 (4) movah, 6; 屏幕初始化 (5)mov al, 0; 全屏空白 (6)mov bh, 7; 卷入行属性 (7)mov ch, 0; 左上角行号 (8)mov cl, 0; 左上角列号 (9)mov dh, 24; 右下角行号 (10)mov dl, 79; 右下角列号 (11)int10h; BIOS调用 (12) 定义窗口 例: 在品红背景下,显示5个浅绿色闪烁的星号。 MOVAH,09 ;光标位置下显示 MOVAL,* ;显示字符 MOVBH,0 ;显示页0 MOVBL,0DAH ; 1 101 1010 (表9.7) MOVCX,05 ;显示次数 INT 10H ;BIOS调用 例:在屏幕上以红底兰字显示字符串:“WORLD SCENERY” STRING DB WORLD SCENERY ;定义在ES段 LEN_TR DW 13 MOV AL,3 ;8025, 16色文 本方式 MOV AH,0 INT 10H MOV BP,SEG STRING MOV ES,BP ;串地址ES:BP MOV BP,OFFSET STRING MOV CX,LEN_STR ;串长度 MOV DX,0 ;起始行列 MOV BX,0041H;0100 0001(属性) MOV AL,1;子功能 MOV AH,13H;显示字符串 INT 10H (2) DOS显示功能调用中断 INT 21HINT 21H AH 功 能 调 用 参 数 2 显示一个字符(检验Ctrl-Break) DL = 字符 光标跟随字符移动 6 显示一个字符(不检验Ctrl-Break) DL = 字符 光标跟随字符移动 9 显示字符串 DS:DX=串地址 串必须以串必须以$ $结束结束, 光标跟随串移动 例:显示字符串 MESSAGE DB The sort operation is finished.,13,10,$ MOV MOV AHAH,9 9 MOV DX MOV DX,SEG MESSAGESEG MESSAGE MOV MOV DSDS,DXDX MOV MOV DXDX,OFFSET MESSAGEOFFSET MESSAGE INT 21HINT 21H 3. 3. 打印机打印机I/OI/O (p.336) INTAH功 能调用参数返回参数 2121HH 5 5 打印一个字符 DL = 字符 17H 0 打印一个字符 AL = 字符 AH = 状态字节 并回送状态字节 DX = 打印机号 17H 1 初始化打印机 DX = 打印机号 AH = 状态字节 回送状态字节 17H 2 回送状态字节 DX = 打印机号 AH = 状态字节 例: 打印字符串TEXT (DOS) TEXT DB Hello,everybody! COUNT EQU $TEXT ;COUNT=17 MOV CX,COUNT MOV BX,0 NEXT: MOV AH,5MOV AH,5 MOV DL,TEXTBXMOV DL,TEXTBX INT 21HINT 21H INC BX LOOP NEXT 例: 打印字符串TEXT(BIOS) TEXT DB Hello,everybody! COUNT EQU $TEXT MOV CX, COUNT MOV BX, 0 NEXT: MOV AH, 0MOV AH, 0 MOV AL,TEXTBXMOV AL,TEXTBX MOV DX,0MOV DX,0; ;打印机号打印机号 INT 17HINT 17H INC BX LOOP NEXT 4. 串行通信口I/O (1)DOS 串行通信口功能 (INT 21H) AH功 能调调用参数返回参数 3 读读字符AL=读读入的数据 4 写字符DL=写入的数据 (2)BIOS 串行通信口功能 (INT 14H) AH 功 能调调用参数返回参数 0 初始化串行通信口AL=初始化参数AH=通信口状态态 DX=通信口号AL=modem状态态 1 向通信口写字符 AL=所写字符 成功:AL=字符 DX=通信口号 失败败:AH=口状态态 2 从通信口读读字符 DX=通信口号 成功:AL=字符 COM1=0,COM2=1 失败败:AH=口状态态 3 取通信口状态态 DX=通信口号AH=通信口状态态 COM1=0,COM2=1AL=modem

温馨提示

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

评论

0/150

提交评论