微机原理中断小结
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(2)AH=1 功能:从键盘读入字符送AL,并设置ZF标志,若 按过任一键,则置ZF=0,否则ZF=1。 出口参数:ZF=0,键盘有输入,(AL)=键入字符 的ASCII码;ZF=1,键盘无输入。 (3)AH=2 功能:读取特殊功能键的状态。 出口参数:AL中是各特殊功能键的状态(如下图)
三、综合举例:
DOS系统功能调用与BIOS中断调用
学习目标: 1、理解DOS系统功能调用和ROM BIOS中 断调用的概念。 2、熟悉常用的功能调用,如键盘输入字符/ 字符串、显示器输出字符/字符串等的调用 方法。
一、DOS系统功能调用
1、什么是DOS系统功能调用 系统功能调用是DOS为用户提供的常用子程序 (80多个),可在汇编语言程序中直接调用。这 些子程序的主要功能包括: (1)设备管理(如键盘、显示器、打印机、磁盘 等的管理) (2)文件管理和目录操作 (3)其他管理(如内存、时间、日期等管理) 这些子程序给用户编程带来很大方便,用户不必 了解有关的设备、电路、接口等方面的问题,只 需直接调用即可。
DOS功能调用
类型号 20H 22H 中断功能 程序结束 结束地址 磁盘顺序写 类型号 21H 23H 25H 27H 中断功能 请求DOS功能调用 中止(Ctrl-Break)处理 磁盘顺序读 程序结束且驻留内存 DOS内部保留 DOS内部保留
24H 关键性错误处理 26H 28H 2FH
DOS内部使用 29~2EH DOS内部使用 30~3FH
简单的人机对话的实现 屏幕显示: What is your name ?(使用9号DOS功能调用) 用户输入: LiPing↙(使用10号DOS功能调用) 屏幕在显示: Hello,LiPing!(使用9号DOS功能调用)
程序清单:
DATA SEGMENT BUF DB 30 ACTL DB ? STR DB 30 DUP(?) MESS DB ‘What’s your name?’,0Dh,0AH,’$’ DMESS DB 0DH,0AH,’Hello,$’ DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA MAIN PROC FAR
02H号功能
功能:将DL中的一个字符显示在屏幕上。 入口参数:待显示字符的ASCII码。 调用方式: MOV DL,待显示字符的ASCII码 MOV AH,02H INT 21H 出口参数:无。
08H号功能
功能:等待从键盘输入一个字符,将该字符 的ASCII码送AL,但不在屏幕上显示该字 符。 入口参数:无。 调用方式: MOV AH,08H INT 21H 出口参数:AL的内容为输入字符的ASCII码。
2、调用方法
DOS功能调用的子程序已按顺序编号—功能 号(00H—68H),其调用方法是: (1)功能号----AH (2)入口参数--指定寄存器 (3)INT 21H 用户只需给出以上三方面信息,DOS就可根 据所给信息自动转入相关子程序执行。
3、常用的系统功能调用
01H号功能 功能:等待从键盘输入一个字符,将该字符的 ASCII码送AL,并在屏幕上显示该字符。 入口参数:无。 调用方式: MOV AH,01H INT 21H 出口参数:AL的内容为输入字符的ASCII码。
从上图可见,两者相比较,BIOS可更直接地控 制外设,故能完成更复杂的输入/输出操作; 而DOS操作对硬件依赖性少,比相应的BIOS操 作简单,因此在二者能完成同样功能时,应 尽量使用DOS功能调用。
类型号 00 H 01 H 02 H 03 H 04 H 05 H 06 H 07 H 08 H 09 H 0A H 0B H 0C H 0D H 0E H 0F H 10 H
PUSH DS MOV AX,0 PUSH AX MOV AX,DATA MOV DS,AX LEA DX,MESS MOV AH,9 INT 21H ;显示‘what’s your name?’ LEA DX,BUF MOV AH,10 INT 21H ;从键盘接收用户输入的信息
MOV AL,ACTL ;取得键入字符串的时间长度 CBW MOV SI,AX LEA BX,STR MOV [BX+SI],BYTE PTR ‘!’ ;再键入的字符串后加‘!‘ MOV [BX+SI+1],BYTE PTR ‘$’ ;在’!‘后加’$‘,以便显示 LEA DX,DMESS ;显示’Hello!‘ MOV AH,9 INT 21H
Biblioteka Baidu
3、键盘I/O中断调用示例
键盘I/O中断调用(INT 16H)有三个功能,功 能号为0~2。 (1)AH=0 功能:从键盘读入字符送AL。 出口参数:( AL)=键入字符的ASCII码; (AH)=键入字符的扫描码 【例】MOV AH,0 INT 16H 调用结果:将键盘输入字符的ASCII码送AL,扫 描码送AH
中断功能 设备检测 存储容量 磁盘I/O 通信I/O 盒式磁带I/O 键盘I/O 打印机I/O ROM BASIC 引导 日时钟 Ctrl-Break 定时器报时 显示器参数 软盘参数 图形字符扩展 保留给软盘 硬盘参数
2、调用方法
用户在汇编程序中可使用软中断指令“INT n”调 用BIOS程序,其中n是中断类型码。常用的BIOS 程序的功能与其中断类型码对应关系如下表:
LEA DX,STR ;显示 键入的字符串 MOV AH,9 INT 21H RET MAIN ENDP
CODE ENDS END MAIN
Z o n g. a s m
这个程序的功能是什么呢?
• • • • • mov dl,1 mov ah,2 int 21 inc dl jmp 102
4CH号功能
功能:返回DOS。 入口参数:无。 调用方式: MOV AH,4CH INT 21H 出口参数:无。
二、BIOS中断调用
1、什么是BIOS BIOS的全称是ROM-BIOS—ROM Basic I/O system (只读存储器基本输入输出系统)。他是一组固化到微 机主板上一个ROM芯片上的子程序,主要功能包括: (1)驱动系统中所配置的常用外设(即驱动程序),如 显示器、键盘、打印机、磁盘驱动器、通信接口等。 (2)开机自检,引导装入。 (3)提供时间、内存容量及设备配置情况等参数。 使用BIOS中断调用与DOS系统功能调用类似,用户也无须 了解相关设备的结构与组成细节,直接调用即可。
09H号功能
功能:在屏幕上显示一个以$符号作为结束标 志的字符串。 入口参数:DX的内容为待显示某个字符串的 首地址。 调用方式: MOV DX,待显示字符串的首地址 MOV AH,09H INT 21H 出口参数:无。
0AH号功能(或10)
功能:从键盘上输入一串字符送到指定的内 存缓冲区。 入口参数:DX存有内存缓冲区的首地址。 调用方式: MOV DX,内存缓冲区的首地址 MOV AH,0AH INT 21H 出口参数:无。
中断功能 被零除 单步 不可屏蔽 断点 溢出 打印屏幕 保留 保留 日时钟 键盘 保留 串口2 串口1 硬盘 软盘 打印机 显示器
类型号 11 H 12 H 13 H 14 H 15 H 16 H 17 H 18 H 19 H 1A H 1B H 1C H 1D H 1E H 1F H 40 H 41 H
中断类型码 10H 13H 14H 16H 17H BIOS中断调用功能 显示器I/O中断调用(及显示器驱动程序) 磁盘驱动程序 通信驱动程序 键盘驱动程序 打印机驱动程序
例如,用指令“INT 16H”可调用键盘驱动程序
当某个BIOS程序中具有多种不同功能时,用不 同的编号----功能号加以区分,并约定功能号 存放在寄存器AH中。其调用方法与DOS功能调 用类似: (1)功能号-AH (2)入口参数-指定寄存器 (3)指令“INT n”实现对BIOS子程序的调用 下面以键盘I/O中断调用为例介绍BIOS中断调用 的方法。
在该功能调用之前,应该在存储缓冲区的第 一个字节设置待接受字符的个数(范围为 1~255),存储缓冲区的第二个字节在该功 能调用后被自动置上实际键入的字符数 (标志输入结束的回车符除外),输入的 字符从该存储缓冲区的第三个字节开始存 放。若输入的字符数少于所设置的待接受 字符的个数,则多余的内容被置为零;若 实际输入的字符数多于所设置的待接受字 符的个数,则多余部分被忽略。