微机原理第三章7剖析

上传人:今*** 文档编号:106866898 上传时间:2019-10-16 格式:PPT 页数:31 大小:503.50KB
返回 下载 相关 举报
微机原理第三章7剖析_第1页
第1页 / 共31页
微机原理第三章7剖析_第2页
第2页 / 共31页
微机原理第三章7剖析_第3页
第3页 / 共31页
微机原理第三章7剖析_第4页
第4页 / 共31页
微机原理第三章7剖析_第5页
第5页 / 共31页
点击查看更多>>
资源描述

《微机原理第三章7剖析》由会员分享,可在线阅读,更多相关《微机原理第三章7剖析(31页珍藏版)》请在金锄头文库上搜索。

1、1,2019/10/16,4. 中断指令INT和中断返回指令IRET/IRETD,中断分为外部(硬)中断和内部(软)中断两种。 外部中断处理I/O设备与CPU之间的通信。 内部中断如除法运算中除数为0、中断指令引起的中断。,1) 中断指令 INT n ;n为中断类型码,是一个8位的立即数 2) 中断返回指令 (位于中断服务子程序的最后) IRET IRETD,中断(Interrupt )是又一种改变程序执行顺序的方法,第3章 Pentium的指令系统,2,2019/10/16,执行操作: 1. 将标志寄存器值送入堆栈 (保护现场) (E)SP)(E)SP)-2/-4 2. 清除IF、TF,避免

2、进入中断以后再被外面其它 中断所打断及进入中断以后按单步执行。 3. 将返回的断点地址送入堆栈(保护断点) (E)SP)(E)SP)-4/-6,除法错中断:执行除法指令,结果溢出产生的 0 号中断 单步中断:TF1在每条指令执行后产生的 1 号中断 非屏蔽中断: 2号中断 断点中断:用于断点调试(INT 3)的 3 号中断 溢出中断:执行溢出中断指令,OF1产生的 4 号中断 指令中断:执行中断调用指令INT i8产生的 i8 号中断,INT 0 ,INT 1 ,INTO,第3章 Pentium的指令系统,3,2019/10/16,系统功能调用,8086的中断类型号分配: 00H-04H: 专

3、用的中断 08H-1FH: 主板和扩展槽上基本外设的中断服务子程序 BIOS中的I/O子程序调用指令 20H-3FH: DOS系统功能子程序 40H-7FH: 用户保留 2) DOS 系统功能调用: 近百个-软接口 三个方面: A 磁盘的读写管理 B 内存管理 C 基本I/O管理,21H号中断是DOS提供给用户的用于调用系统功能的中断,它有近百个功能供用户选择使用,所有这些调用已经包含了整个系统的功能, 因此称INT 21H 为系统功能调用由此得名. 主要包括设备管理、目录管理和文件管理三个方面的功能,第3章 Pentium的指令系统,4,2019/10/16,3) BIOS 系统功能调用:,

4、基本输入/输出模块BIOS:实现对输入/输出设备的控制, 内含00 1FH 等类型中断子程序,包括显示器、磁盘、键盘、 打印机等标准外设的驱动程序。 ( 参看中断类型分配表 ) BIOS功能调用指对BIOS模块中的中断子程的调用。,功能调用的格式:,为使用方便, 已将所有子程序放在其中断服务程序中按顺序编号, 这个编号即为子程序的功能号.,通常按照如下4个步骤进行:,第3章 Pentium的指令系统,5,2019/10/16, 在AH寄存器中设置系统功能调用号 在指定寄存器中设置入口参数 执行指令INT 21H(或ROM-BIOS的中断向量号)实现中断服务程序的功能调用 根据出口参数分析功能调

5、用执行情况,第3章 Pentium的指令系统,6,2019/10/16,常用的DOS系统功能调用 (21H类型中断调用),入口参数 无 功能号 AH = 01H 类型号 21H 出口参数 AL = 键入字符的ASCII码 实现功能 等待从键盘输入一个字符, 检测 Ctrl-Break键(退出),否则将 键值送入AL, 并在屏幕上回显。,1. 键盘输入并回显 ( 01H功能 ),MOV AH, 01H INT 21H,第3章 Pentium的指令系统,7,2019/10/16,MOV AH, 1 ;等待从键盘输入 INT 21H CMP AL, Y ;是Y? JZ yes CMP AL, y ;

6、是y? JZ yes no: . . . . . . JMP exit yes: . . . . . . exit: . . .,例 利用键盘输入的字符产生分支:,第3章 Pentium的指令系统,8,2019/10/16,入口参数 DL = 要显示字符的ASCII 码 功能号 AH=02H 类型号 INT 21H 出口参数 无 实现功能 显示指定字符,光标随动, Ctrl-Break(退出) 。,例 显示字符A MOV DL, A MOV AH, 02H INT 21H,2. 显示输出单个字符 ( 02H功能 ),例 使光标回到下一行的行首。 MOV DL , 0DH ;显示回车符 MOV

7、AH , 02H INT 21H MOV DL , 0AH ;显示换行符 MOV AH , 02H INT 21H,第3章 Pentium的指令系统,9,2019/10/16,入口参数 DL = 要输出的字符(ASCII) 功能号 AH = 05 H 类型号 21H 出口参数 无 实现功能 把入口时放入DL的字符输出到 标准打印输出设备(默认接入 并行接口打印机),MOV DL, “A” MOV AH, 05H INT 21H,3. 打印机输出 ( 05H功能 ),第3章 Pentium的指令系统,10,2019/10/16,入口参数 无 功能号 AH = 07 H 类型号 21H 出口参数

8、AL = 键入的字符的ASCII码 实现功能 1) 等待从标准输入设备(键盘)输入字符, 不在屏幕上回显,送入AL中 2) 不用检查CTRL-BREAK,4. 键盘输入无回显 ( 07H功能 ),第3章 Pentium的指令系统,11,2019/10/16,input: MOV AH, 07H ;等待从键盘输入 INT 21H MOV DI, AL ;存入缓冲区 CMP AL, 0DH ;是回车符? JNZ input ;不是,继续输入 check: 、 、,例 用不带回显功能输入密码时:,第3章 Pentium的指令系统,12,2019/10/16,入口参数 DS:DX = 内存中以$为结束

9、的字符串 定义要显示的字符串,字符串尾应为$, 作为结束显示的标志。 DS : DX = 字符串的首地址 功能号 AH = 09 H 类型号 21H 出口参数 无 实现功能 显示字符串,遇 $ 停止显示,光标随动。,5. 显示字符串 ( 09H功能 ),第3章 Pentium的指令系统,13,2019/10/16,例 编程显示字符串 Jilin University,data SEGMENT ;定义显示的子符串 stri DB Jilin University, $ data ENDS code SEGMENT ASSUME CS:code, DS:data start: MOV AX, da

10、ta ;置缓冲区地址于DS:DX MOV DS, AX LEA DX, stri MOV AH, 09H ;调显示功能 INT 21H MOV AH, 4CH ;返回DOS INT 21H code ENDS END start,第3章 Pentium的指令系统,14,2019/10/16,入口参数 DS : DX = 缓冲区的首地址 ( DS :DX ) = 限制最多输入的字符数 功能号 AH = 0AH 类型号 21H 出口参数 ( DS : DX+1 ) = 实际键入的字符个数(不含回车符) 从( DS : DX+2 )开始顺序存放键入的字符串, 回车符0DH为串尾最后一字符。 实现功能

11、 等待从键盘输入字符串,存入设定的缓冲区内, 同时回显字符串,光标随着移动, 回车符使光标回到行首。 注意事项: 应按要求先定义缓冲区,再调用。,定义格式: DATA SEGMENT BUF DB 50 ;定义缓冲区长度,不能为0 DB ? ;实际输入的字符个数 DB 50 DUP (?) ;定义具有缓冲区长度的存储区 . DATA ENDS,6. 键盘输入到内存缓冲区 ( 0AH功能 ),第3章 Pentium的指令系统,15,2019/10/16,例 应用0AH功能输入字符串。,data SEGMENT ;定义缓冲区 max DB 11 ;定义限制最多输入个数 lenth DB ? ;用于

12、存放实际输入个数 stri DB 11 DUP(?) ;用于存放输入的字符串 data ENDS code SEGMENT ASSUME CS:code, DS:data start: MOV AX , data ;置缓冲区地址于DS:DX MOV DS , AX LEA DX , max MOV AH , 0AH INT 21H ;调0A输入功能 MOX CH , 0 MOV CL , lenth ;取字符串长度放CX中 LEA BX , stri ;取字符串首址于BX中 MOV AL , BX ;应用输入字符 、 code ENDS,第3章 Pentium的指令系统,16,2019/10/

13、16,data SEGMENT ;定义缓冲区 max DB 11 ;定义限制最多输入个数 lenth DB ? ;用于存放实际输入个数 stri DB 11 DUP(?) ;用于存放输入的字符串 data ENDS 从键盘输入ABCD, 回车,内存的存放结果:,第3章 Pentium的指令系统,17,2019/10/16,0AH功能注意事项: 1. 输入的字符均带回显,且光标随字符移动。 当输入回车符结束时,也回显回车符。 表现为功能调用结束后,光标回到了行首。 2. 回车符0DH作为一个输入的字符存放在字符串尾, 但计数输入个数时,不包括回车键。 实际最多能输入的字符数 = 限制的最多数-1

14、 (回车符占一个) 3. 执行完0AH功能后,DS和DX的值不变, DS:DX仍指向缓冲区的首地址。 4. 整个缓冲区的大小应为:限制的最多数 +2 max DB 11, ? , 11 dup (?),第3章 Pentium的指令系统,18,2019/10/16,7. 设置中断向量 (25H功能),入口参数 AL = 要设置向量的中断类型号N DS:DX = 中断子程的入口地址(中断向量) 功能号 AH = 25H 类型号 21H 出口参数 无 实现功能 将类型N的中断向量设置在向量表中, 即 ( 0: N 4) =类型N中断子程入口地址的偏移值 ( 0: N 4+2) =类型N中断子程入口地址的段值,第3章 Pentium的指令系统,19,2019/10/16,例1 设置中断子程序Sound 的中断向量,类型号为60H,code SEGMENT ASSUME CS:code start: 、 MOV AX, SEG sound MOV DS, AX MOV DX, Offset sound MOV AL, 60H MOV AH, 25H INT 21H 、 INT 60H ;调用60

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号