【汇编语言第3版】第7章 实模式下的中断程序设计解析

合集下载

汇编语言7

汇编语言7

例7.14-2/3 ;汇编语言子程序:lt714f.asm .386p .model flat,c PUBLIC power2 .code power2 PROC ,num:dword,power:dword mov eax,num ;获取参数 mov ecx,power shl eax,cl ;计算 ret ;EAX存放返回值 power2 ENDP end
TCC -ms -Iinclude -Llib lt703.c lt703s.obj
; 汇编语言子程序:lt704s.asm 例7.4-1/3 L .model small,c large PUBLIC min .code min proc ;小型模式,为近过程 push bp mov bp,sp 6 mov ax,[bp+4] ;取第1个参数 8 cmp ax,[bp+6] ;与第2个参数比较 jle minexit 8 mov ax,[bp+6] ;保存返回值 minexit: pop bp ret 图示 min endp end
提高程序的开发效率;在某些部分, 利用汇编语言编写,以提高程序的运 行效率
第7章
混合编程方法
嵌入式汇编—— 在C/C++语言中直接使用汇编语言语句, 简洁直观、功能较弱
模块连接—— 两种语言分别编写独立的程序模块,分别 产生目标代码OBJ文件,然后进行连接, 形成一个完整的程序 使用灵活、功能强,要解决参数传递问题
例7.3-1/2 ; 汇编语言子程序:lt703s.asm .model small,c ;采用小型存储模式 .data msg db ’Hello, C and Assembly ! $’ .code PUBLIC display display proc ;过程名加有下划线 mov ah,9 ;小型模式不必设置DS mov dx,offset msg ;寄存器AX和DX无须保护 int 21h ret display endp end

第7章 中断系统 微型计算机原理(第三版)(共10章)

第7章 中断系统 微型计算机原理(第三版)(共10章)
⑶开中断。目的:允许更高级中断请求能够及 时得到响应,实现中断嵌套。
⑷转入中断服务程序。目的:完成的最终目的。 ⑸ 退出中断。返回到主程序的执行。
第12页 2019年3月30日星期六
第7章
2.中断服务程序
中断系统
开中断
执行一条指令
取下一条指令
N
结束
N
转入中断服务程序 执行中断服务程序 关中断 恢复现场 开中断
第7页 2019年3月30日星期六
第7章
8.1.2 中断源类型
中断系统
⑴ 处理机内部中断:如零作除数,为调试程序设 置的断点等。 ⑵ I/O 设备中断:如键盘、打印机等输入输出设 备引起的中断。 ⑶ 数据通道中断:如磁盘、磁带等。 ⑷ 实时时钟中断:如外部时钟电路、内部定时电 路等引起的中断。 ⑸ 故障源:如电源掉电等。磁带等。
INTR 8259A 中断 … 控制器 … IR 7 IR0 IR1
8086中断系统的各中断源分类示意图
INT0除 数为0
INT 1 INT 3 INT 4 单步 断点 溢出
优先级别:除单步中断外,所有内部中断的优先级最 高,其次为不可屏蔽中断、可屏蔽中断,单步中断的 优先级最低。
第17页 2019年3月30日星期六
第3页 2019年3月30日星期六
第7章
中断系统
7.1 中断(Interrupt)的概念 中断过程
按照事件发生的顺序,中断过程包括 [4] : ①中断源发出中断请求; ②判断当前处理机是否允许中断和该中断源是否被屏蔽; ③优先权排队; ④处理机执行完当前指令或当前指令无法执行完,则立即停止 当前程序,保护断点地址和处理机当前状态,转入相应的中断 服务程序; ⑤执行中断服务程序; ⑥恢复被保护的状态,执行“中断返回”指令回到被中断的程 序或转入其他程序。 上述过程中前四项操作是由硬件完成的,后两项是由软件完成 的。

汇编语言子程序及中断

汇编语言子程序及中断

计算机硬件实验室实验报告
亲贤臣,远小人,此先汉所以兴隆也;亲小人,远贤臣,此后汉所以倾颓也。

先帝在时,每与臣论此事,未尝不叹息痛恨于桓、灵也。

侍中、尚书、长史、参军,此悉贞良死节之臣,愿陛下亲之、信之,则汉室之隆,可计日而待也。

臣本布衣,躬耕于南阳,苟全性命于乱世,不求闻达于诸侯。

先帝不以臣卑鄙,猥自枉屈,三顾臣于草庐之中,咨臣以当世之事,由是感激,遂许先帝以驱驰。

后值倾覆,受任于败军之际,奉命于危难之间,尔来二十有一年矣。

先帝知臣谨慎,故临崩寄臣以大事也。

受命以来,夙夜忧叹,恐托付不效,以伤先帝之明;故五月渡泸,深入不毛。

今南方已定,兵甲已足,当奖率三军,北定中原,庶竭驽钝,攘除奸凶,兴复汉室,还于旧都。

此臣所以报先帝而忠陛下之职分也。

至于斟酌损益,进尽忠言,则攸之、祎、允之任也。

愿陛下托臣以讨贼兴复之效,不效,则治臣之罪,以告先帝之灵。

若无兴德之言,则责攸之、祎、允等之慢,以彰其咎;陛下亦宜自谋,以咨诹善道,察纳雅言,深追先帝遗诏。

臣不胜受恩感激。

今当远离,临表涕零,不知所言。

汇编语言程序设计第7章 中断

汇编语言程序设计第7章  中断
(4×N+2)→ CS (7)转中断处理程序
CPU中断返回过程:
(8)IP、CS和FLAGS出栈 (9)返回断点,继续执行下一条指 令
1 中断传送方式
子程序调用
主程序 ……
CALL SLeabharlann BP……实现机制不同
子程序 …… …… RET
源程序 …… INT n ……
调用 DOS/BIOS
DOS/BIOS 例行程序
汇编语言程序设计
ASSEMBLY LANGUAGE PROGRAMMING
第七章 中断
目录
CONTENTS
01 中断传送方式 02 DOS中断
1 中断传送方式
中断源:引起中断的事件
外中断(硬中断): 外设的 I/O 请求 —— 可屏蔽中断 电源掉电 / 奇偶错 —— 非屏蔽中断
内中断(软中断): INT 指令 / CPU 错(除法错、溢出)/ 为调试程序设置的中断
1 中断传送方式
中断源:引起中断的事件
外中断(硬中断): 外设的 I/O 请求 —— 可屏蔽中断 电源掉电 / 奇偶错 —— 非屏蔽中断
内中断(软中断): INT 指令 / CPU 错(除法错、溢出)/ 为调试程序设置的中断
1 中断传送方式
80x86 中断源:
CPU
n INT n
非屏蔽中断请求
2 NMI
;DOS功能号:键盘输入 ;DOS调用 ;返回参数: (AL)
MOV DL, ’A’ MOV AH, 02 INT 21H
;调用参数: 输出字符 ; DOS功能号: 显示输出
; DOS调用
2 DOS中断
AH 功 能
调用参数
1 从键盘输入一个字符并回显在屏幕上

【汇编语言第3版】第7章 循环指令及循环结构程序设计

【汇编语言第3版】第7章  循环指令及循环结构程序设计

初始化部分
工作部分 修改部分 控制部分 结尾部分
6.2.2循环程序的结构
第6章 循环指令与循环结构程序设计
汇 编 语 言 程 序 设 计
(1)先执行后判断(非0次循环结构) (2)先判断后执行(0次循环结构)
初始化部分 工作部分 控制部分 修改部分 工作部分 控制部分 修改部分 结尾部分 结尾部分
取数 Y
结束
=0?
N 移位 CF=0? Y N 计数加1
第6章 循环指令与循环结构程序设计
3.用逻辑变量控制循环
含义:用转移指令来判断循环条件 应用场合:控制转入不同的循环支路 方法:把逻辑变量送入寄存器中,以逻辑变量各位的状态作为执行某段
汇 编 语 言 程 序 设 计
程序的标志
按逻辑变量控制循环程序设计举例
第6章 循环指令与循环结构程序设计
汇 编 语 言 程 序 设 计
【例6-9】在以BUF为起始地址的内存中放有若干单字节无符号数,假定逻辑变量 的长度为一个字节,它的D0 ~ D7 位对应着BUF ~ BUF+7单元内容的运算。某位为 0,则将相应单元内容的D7位复制到D6位,其他位不变;某位为1,则将相应单元 内容之高低四位互换。假定逻辑变量的值是10010101
汇 编 语 言 程 序 设 计
第6章 循环指令与循环结构程序设计
6.3 多重循环程序设计
含义:指循环体内还有循环,也就是循环嵌套 注意:(1) 不允许循环结构交叉 (2)转移指令只能从循环结构内转出或可在同层循环内转移
汇 编 语 言 程 序 设 计
多重循环程序设计应用举例
第6章 循环指令与循环结构程序设计
第6章 循环指令与循环结构程序设计
本章主要教学内容

汇编语言 微机的中断系统.ppt

汇编语言  微机的中断系统.ppt

第7章微机的中断系统版权所有, 2000 (c) 南京航空航天大学计算机科学与工程紊什么是中断•所谓中断,是指处理器在执行正常程序过程中,当出现某些异常情况或某个外部设备请求时,处理器暂时中止正在执行的程序,转而去执行其特定的服务程序,并在执行完服务程序后返回原来被中止的程序处继续执行的过程。

什么是异常?异常是指把因内部意外条件而改变程序执行流程以报告出错情况和非正常状态的过程称为异常中断(简称异常)。

中断和异常有什么区别?(1)中断处理异步发生的外部事件。

(2)异常处理同步发生的内部事件。

(3)硬件中断是作为外部事件的结果而发生的。

(4)中断是在当前指令执行完后才去执行服务程序的,在中断处理程序完成中断服务后,程序继续执行被中断指令之后的指令。

二、中断分类中断服务程序的入口地)组成及格式:节,段地址实方式下中断服务程序入口地址•中断类型号n与其对应的中断向量存放起始地址之间的关系是:起始地址=4×n;末地址=4×n+3即中断向量在4×n ~ 4×n+3指示的内存单元中•示例(例子)保护方式下中断服务程序入口地址•(1)通过中断类型号n从中断描述符表IDT中找出中断描述符。

–中断描述符首地址=中断类型号码n×8+IDT基地–从该地址开始取出8字节内容就是中断描述符。

•(2)通过中断描述符中的选择子从GDT或LDT中找出或求出段描述符。

•(3)据段描述符提供的段基地址与中断描述符提供的偏移地址合成物理地址。

•示例下,内存单元中有关单元存放的内容如右图所示,IDT的首地址为0028000000280000H H,GDT首地址为0050000000500000H H,求2020H H号中断服务程序入口地址。

解:保护方式与实方式中断主要区别•(1)表的大小不同–中断描述符表2KB;中断向量表1KB •(2)表的位置不同–保护方式下的中断描述符表可位于内存的任何位置,由中断描述符寄存器(IDTR)决定;实地址方式下的中断向量表只能固定在00000H~003FFH的最低内存1KB的区域。

汇编语言之中断学习

汇编语言之中断学习

汇编语⾔之中断学习计算机经常会遇到异常,会产⽣中断,发出中断请求。

中断分为内中断和外中断。

下⾯主要介绍的是内中断。

内中断,cpu什么时候会发出中断信号呢?⼀般有⼀下四种情况: ·除法指令 ·单步执⾏ ·int 0指令 ·int n指令 产⽣中断信号的情况⼜被称为中断源。

cpu接收到中断信号以后,要根据中断信号来确定中断情况。

所以,中断信息⾥⾯应该包括中断的来源以及中断的情况。

因此,CPU将定义⼀个变量来存储辨别中断信息,称为中断字节码(8位变量)可以⽤中断字节码表⽰256种情况。

每种中断情况都对应⼀种中断处理程序,但是CPU⼜如何确定相应中断处理程序在内存中的地址呢?如何确定相应中断处理程序的⼊⼝地址?so,中断向量应运⽽⽣。

中断向量就是中断处理程序的⼊⼝地址。

不同的中断情况对应不同的中断处理程序,⼜对应不同的中断向量,为了⾼效的处理中断,我们⼜定义了中断向量表,顾名思义,中断向量表⽤来存储中断向量,就是中断处理程序的⼊⼝地址。

⼀条中断向量有占⽤多少内存地址呢?中断向量⽤来存储中断处理程序的⼊⼝地址,包括段地址和偏移地址,所以占⽤两个字的存储单元,⾼地址字段⽤来存储段地址,低地址字段⽤来存储偏移地址。

CPU知道了相应中断处理程序的⼊⼝地址后,计算机处理中断,中断过程。

⽤中断字节码找到中断向量,来设置CS和IP,这个过程由计算机硬件来完成,这个过程叫做中断过程。

以8086CPU为例,在接收到中断信息后,要执⾏的操作: 1.(从中断信息中)找到中断字节码 2.标志寄存器的值⼊堆栈 3.设置标志寄存器的第8位TF和第9位IF值为0 4.CS 值⼊栈 5.IP值⼊栈 6.从内存地址为终端类型码4 和中断类型码4+2的两个字单元读取中断处理程序的⼊⼝地址,设置CS IP 中断处理程序 由于cpu随时都有可能检测到中断信息,也就是说cpu随时都要执⾏中断处理程序,所以,中断处理程序必须⼀致存储在内存某段空间中。

汇编语言---第7章中断系统

汇编语言---第7章中断系统
在815EP芯片组的82801BA芯片中,集成 815EP芯片组的82801BA芯片中,集成 了两个中断控制器8259A,它除了提供与ISA 了两个中断控制器8259A,它除了提供与ISA 兼容的中断外,还可以利用将PCI中断映射到 兼容的中断外,还可以利用将PCI中断映射到 与ISA兼容的中断线而支持PCI中断。 ISA兼容的中断线而支持PCI中断。
在现代微机中,不仅有前文所述的常规 中断,还有PCI中断、串行中断等新技术。本 中断,还有PCI中断、串行中断等新技术。本 节我们将简单介绍现代微机中关于PCI中断的 节我们将简单介绍现代微机中关于PCI中断的 操作、响应周期和PCI中断共享的概念。 操作、响应周期和PCI中断共享的概念。
返回
7.5.1 现代微机中的PCI 现代微机中的PCI
返回
7.3 中断向量及其操作
7.3.1 中断类型号和中断向量表; 中断类型号和中断向量表; 7.3.2 中断向量的设置; 中断向量的设置; 7.3.3 中断向量的修改; 中断向量的修改; 7.3.4 中断类型号的获取
返回
7.4 Intel 8259A可编程中断控制器 8259A可编程中断控制器
7.4.1 8259A的框图和引脚 8259A的框图和引脚 1.功能及工作特点 2.结构框图 3.8259A的引脚 8259A的引脚 4.8259A的工作原理 8259A的工作原理 5.8259A寄存器及I/O端口的识别 8259A寄存器及I/O端口的识别
返回
7.6.3 停止帧 所有数据帧之后,82801BA会发出 所有数据帧之后,82801BA会发出 一个停止帧。 SERIRQ 信号被 82801BA 驱动为低电平,并维持2 驱动为低电平,并维持2或3 个 PCI 时钟 周期。

【18】中断系统[7-3]

【18】中断系统[7-3]

微机原理与接口技术第十八讲15:31第七章 微型计算机中断系统内容提要 内容提要7-1 概述 7-1 概述 7-2 中断处理过程 7-2 中断处理过程 7-3 中断优先级和中断向量 7-3 中断优先级和中断向量 7-4 可编程中断控制器 7-4 可编程中断控制器功能和引脚 内部结构 8259A的中断管理方式 8259A的编程方式 8259A的中断级联15:31 2§7-4 可编程中断控制器( 8259A)四、8259A的编程方法对8259的编程有两类命令字: 初始化命令字ICW 操作命令字OCW 系统复位后,初始化程序对8259置入初始化命令字。

初始化后可通过发出操作命令字OCW来定义8259的操作方 式,实现对8259的状态、中断方式和优先级管理的控制。

初始化命令字只发一次,操作命令字允许重置,以动态改变 8259的操作与控制方式。

15:313§7-4 可编程中断控制器1.初始化命令字初始化命令字完成的功能:【编程方法】设定中断请求信号触发形式:高电平触发或上升沿触发。

设定8259A工作方式,单片或级联。

设定8259A中断类型号基值,即IR0对应的中断类型号。

设定优先级设置方式。

设定中断处理结束时的结束操作方式。

【注意】:对8259A编程初始化命令字,共预置4个命令字:ICW1、ICW2、ICW3、ICW4。

初始化命令字必须顺序填写,但并不是任 何情况下都要置4个命令字,用户根据具体使用情况而定。

15:314§7-4 可编程中断控制器1.初始化命令字⑴ ICW1 —— 芯片控制初始化命令字【格式】 A0 D7 × × × 1 LTIM 0【编程方法】D0 SNGL IC4 1:需要设置ICW4 0:不需要设置ICW4 1:单级使用 0:级联使用 1:电平触发 0:边缘触发08086/8088 系统中不用标 志 位15:315§7-4 可编程中断控制器1.初始化命令字⑵ ICW2——设置中断类型号初始化命令字A0 D7【编程方法】D01T7 T6 T5 T4 T3中断类型的高5位0008259A中IR0端对应的中断类型号为中断类型号基值,它是可以被8整 除的正整数,ICW2用来设置这个中断类型号基值,由此提供外部中断的中 断类型号。

第7章 中断系统及8237ADMA控制器.详解

第7章 中断系统及8237ADMA控制器.详解

3、中断嵌套管理 中断嵌套——CPU响应了一个中断请求,正在中断处理中,又 有一个中断源发出中断请求。 若发出中断请求的中断源的优先权级别更高,中断系统使CPU 暂停当前的中断服务,转而响应和处理中断优先级更高的中断请求, 处理结束后,再返回原优先级较低的中断服务。
若发出中断请求的中断源的优先权级别低于当前正在处理的中 断源,CPU不予响应,等待当前中断处理结束后,再予以响应。
2、中断系统的作用 (1)并行处理 (2)实时处理 (3)故障处理 7.1.2 中断处理系统 一个完整的中断处理系统必须实现以下功能: 中断源识别、中断优先级判断、中断嵌套管理以及CPU的中断 响应、中断服务和中断返回。 1、中断源识别 中断源——引起程序中断的事件。 在具有多个中断源的系统中,CPU需要识别哪一个中断源有中 断请求。常用的中断技术有单线中断、多线中断和向量中断三种。 单线中断通过查询中断源提供中断地址信息。 多线中断每个中断源有一根输入线,由于CPU引脚线有限而只 能管理少量的中断源。
7.2.3 中断向量表 中断向量——是中断服务程序入口地址。 中断向量表——是中断服务程序入口地址表。 中断向量地址——是中断向量在中断向量表中的位置。 中断向量地址与中断类型号之间的关系可表示为:中断向量地 址=中断类型号*4 。 8086中断系统最多可有256个中断源,每个中断有一个中断类 型号(0~255),每个类型号对应一个中断向量,每个中断向量4 个字节,前两个字节是偏移量IP,后两个字节是段基址CS,256个 中断向量占用最低1KB内存,即0~3FFH。中断向量表如图7-10所示。 8086的前5个中断向量是专用的,接下来的27个中断向量由操 作系统使用,剩下的中断向量可以由用户使用。
第 7章
中断系统及8237ADMA控制器

汇编语言7-输入输出与中断

汇编语言7-输入输出与中断

第7章
当CPU执行输入指令时,指令译码使
IO/M 为高电平、读信号RD有效,同时 地址译码也有效,此时输入缓冲器被选 中,使外设数据进入数据总线,供CPU 读取。 如果此刻数据没有准备好,则操作就会 出错。
第7章
当CPU执行输出指令时,IO/M=1、WR
命令有效,同时地址译码也有效,此时 输出锁存器被选中,CPU送出的数据经 数据总线打入锁存器,供外设读取。
第7章

6.中断优先级和中断嵌套
中断优先级 :多个中断源同时请求中 断时,中断响应的先后次序。
中断嵌套 :中断服务程序执行过程中, 可以响应较高优先级中断请求,进 入较高级中断的中断服务程序,该 中断处理结束后,继续较低级别的 中断处理,称为中断嵌套 。
第7章
7.2.2 中断处理程序的设计

使用中断方式进行输入/输出时,用户需要编制两个程序模 块 :“主程序” 和“中断服务程序”
输入指令IN
将外设数据传送给CPU内的AL/AX
IN AL,i8 ;字节输入:AL←I/O端口(i8直接寻址)
IN AL,DX ;字节输入:AL←I/O端口(DX间接寻址)
IN AX,i8 ;字输入:AX←I/O端口(i8直接寻址) IN AX,DX ;字输入:AX←I/O端口(DX间接寻址)
第7章
CS IP
断点中断 非屏蔽中断 单步中断
IP
CS IP CS IP C S
专用的中断 (共5个)
类型2 类型1 类型0
除数为 0 中断
IP
第7章

5.中断处理过程 中断发生时,计算机中断机构自动完成如下操作 : (1)取中断类型号N (2)标志寄存器(FLAGS)内容入栈 (3)当前代码段寄存器(CS)内容入栈 (4)当前指令计数器(IP)内容入栈 (5)禁止外部中断和单步中断(TF=0,IF=0) (6)从中断向量表中取地址4×N的2字节内容 送IP,取地址4×N+2的2字节内容送CS (7)进入中断处理程序。

汇编语言程序设计教程PPT-第7章

汇编语言程序设计教程PPT-第7章
1
user32.dll 提供用户接口服务功能,包括创建窗口和传递消息等。
2
gdi32.dll 提供图形设备接口,实现文本及图形的显示操作。
3
第七章 Win32汇编语言程序设计
invoke 函数名 [,参数1] [,参数2]
invoke MessageBox, NULL, addr szgreet, addr sztilte, MB_OK
第七章 Win32汇编语言程序设计
第七章 Win32汇编语言程序设计
(3)窗口程序的主要代码分析(模块和句柄、注册窗口类、建立窗口、窗口过程)
(2)窗口程序的运行过程
Win32窗口程序实例: 消息传递机制 代码分析
7.4 汇编语言与VC++的混合编程
嵌入式汇编语言指令及编程方法
(1)嵌入式汇编指令
源程序结构、源程序的模式定义与段定义 在Win32环境下,应用程序可以寻址4GB空间。
API函数的使用(包含声明文件、调用API函数)
Win32汇编的编程环境(命令行编程环境、集成开发 环境)
7.1 Win32汇编语言程序设计基础
.386 ;指定可使用处理器指令集 .model flat, stdcall ;模式定义 option casemap:none ;指定汇编选项 <若干条include 语句> ;包含API函数和动态链接库头文件 .stack [堆栈段大小] ;定义堆栈段 .data ;数据段(定义初始化变量) <初始化变量定义> .data? ;数据段(定义未初始化变量) <未初始化的变量定义> .const ;定义常量段 <常量定义> .code ;定义代码段 <开始标号> <若干语句> end 开始标号 ;源程序结束

汇编语言中断指令

汇编语言中断指令

汇编语言中断指令汇编语言是一种低级别的计算机编程语言,它使用指令的助记符和操作码来直接控制计算机硬件。

在汇编语言中,中断指令是一种重要的操作指令,它可以使程序在执行过程中暂停并切换到指定的中断服务程序。

本文将介绍汇编语言中断指令的基本概念、使用方法和相关应用场景。

一、概述中断是计算机系统中常见的一种机制,它可以使程序在特定条件下暂停当前执行的任务,并转而执行一个中断服务程序。

中断指令是汇编语言中用于触发中断的一种特殊指令,它可以将系统控制权转移给中断服务程序,并在服务程序执行完毕后再返回到原来的程序继续执行。

二、中断指令的使用方法在汇编语言中,中断指令的使用方法如下:1. 设置中断向量表中断向量表是一个存储中断服务程序入口地址的表格,在程序执行过程中,当中断发生时,CPU会根据中断号去中断向量表中查找对应的中断服务程序的入口地址并跳转至该地址开始执行。

程序员需要在编写程序时,事先设置好中断向量表。

2. 触发中断在程序中,通过使用中断指令来触发中断操作。

一般来说,中断指令会附带一个中断号作为参数,告诉系统要执行哪个中断服务程序。

触发中断指令后,CPU会保存当前的程序状态,并将控制权转移到指定的中断服务程序。

3. 中断服务程序的执行当中断发生并切换到中断服务程序时,程序员可以在中断服务程序中编写相应的处理代码,来处理特定的中断事件。

中断服务程序执行完毕后,CPU会将控制权再次转回到原来的程序继续执行。

三、中断指令的应用场景中断指令在实际的计算机应用中有广泛的应用场景,下面列举几个典型的应用场景:1. 硬件设备的驱动程序计算机系统中的硬件设备通常会产生各种中断事件,例如键盘输入、鼠标点击、网络数据接收等。

通过编写相应的中断服务程序,可以及时响应这些中断事件,从而实现对硬件设备的驱动和控制。

2. 异常处理在程序执行过程中,可能会出现各种异常情况,例如除零异常、越界访问异常等。

通过设置相应的中断服务程序,可以在发生异常时及时捕获并处理异常,防止程序崩溃或数据损坏。

汇编语言与计算机原理第七章

汇编语言与计算机原理第七章

第七章中断调用和中断服务程序中断调用是指计算机暂时停止当前执行程序,转移到另一程序执行,执行结束后返回前面的程序继续执行。

中断调用类似于过程调用,和过程调用不同的是,中断调用可以通过硬件,或者指令INT 实现,前者称为硬中断调用,后者称为软中断调用。

中断所调用的过程称为中断服务程序。

在IBM-PC计算机系统中,中断服务程序一般是计算机系统所提供的一组程序,用于完成输入输出等操作。

程序员编写程序时,可在应用程序中直接调用中断服务程序,完成输入输出等操作,这给程序设计带来极大的方便。

中断服务程序可分为两部分:一部分驻留在ROM中,称为BIOS;另一部分由操作系统程序提供。

DOS操作系统提供的中断服务程序保存在磁盘文件中(IO.SYS和IBMDOS.SYS),在系统启动后装入内存。

对于同一功能操作,一般既能选择调用DOS中断服务程序,也能选择BIOS中断服务程序。

例如,通过键盘输入一个字符,可以调用DOS中断21H的01H子功能,也可以调用BIOS中断16H的01H子功能。

因为BIOS比DOS更靠近硬件,因此建议尽可能使用DOS功能,但是,在有些情况下必须使用BIOS功能,因为没有对应的等效的DOS功能。

BIOS和DOS的中断服务程序能处理大多数的输入输出操作,但是,有一些功能还没有提供,这就要考虑使用I/O指令在端口级上编程,这就需要详细了解端口的工作原理。

本章概要介绍BIOS和DOS这两部分中断服务程序,及其调用方法。

§7.1 中断向量和中断服务程序一、中断号和中断号分配IBM-PC 计算机系统给每个中断服务程序分配一个顺序编号,该编号称为中断号。

中断号分配如下:1.CPU内部控制的中断服务程序:0号:除0中断,当程序发生除0错误时系统自动执行该中断服务程序;1号:单步执行,当单步执行程序时,每执行一条指令后暂停程序执行;2号:不可屏蔽中断,分配给由CPU的不可屏蔽中断申请;3号:断点,程序执行到设置的断点时执行该中断服务程序;4号:溢出,产生溢出错误时执行;5号:打印屏幕,当按下PrintScreen键时执行;6号:保留;7号:保留。

汇编语言第7章 中断和DOS功能调用

汇编语言第7章 中断和DOS功能调用

例7.3:输入字符串
buffer db 81
;定义缓冲区 ;第1个字节填入可能输入的最大字符数 db 0 ;存放实际输入的字符 数 db 81 dup(0) ;存放输入的字符串 ... mov dx,seg buffer ;伪指令seg取得buffer的段地址 mov ds,dx ;设置数据段DS mov dx,offset buffer mov ah,0ah int 21h
⒉ 字符串的输出
从键盘输入数据
⒊ 字符的输入 ⒋ 字符串的输入
1. 字符输入的功能调用
DOS功能调用INT 21H 功能号:AH=01H 出口参数:AL=字符的ASCII码 功能:获得按键的ASCII代码值
调用此功能时,若无键按下,则会一直
等待,直到按键后才读取该键值
例7.1:
IRET
;中断返回指令:实现中断返回
7.3 系统功能调用
21H 号中断是 DOS 提供给用户的用于调
用系统功能的中断,它有近百个功能供用 户选择使用,主要包括设备管理、目录管 理和文件管理三个方面的功能 ROM-BIOS 也以中断服务程序的形式, 向程序员提供系统的基本输入输出程序 汇编语言程序设计需要采用系统的各种 功能程序 充分利用操作系统提供的资源是程序设 计的一个重要方面,需要掌握
实现中断返回73系统功能调用?21h号中断是dos提供给用户的用于调用系统功能的中断它有近百个功能供用户选择使用主要包括设备管理目录管理和文件管理三个方面的功能提供给用户的用于调用系统功能的中断它有近百个功能供用户选择使用主要包括设备管理目录管理和文件管理三个方面的功能?rombios也以中断服务程序的形式向程序员提供系统的也以中断服务程序的形式向程序员提供系统的基本输入输出程序?汇编语言程序设计需要采用系统的各种功能程序汇编语言程序设计需要采用系统的各种功能程序?充分利用操作系统提供的资源是程序设计的一个重要方面需要掌握充分利用操作系统提供的资源是程序设计的一个重要方面需要掌握功能调用的步骤通常按照如下4个步骤进行

微机原理课件第七章 中断系统

微机原理课件第七章 中断系统

第七章中断系统一、中断的概念设20H存放按键次数,每按键一次,20H加1。

也就是每次有中断,就要执行一条指令:INCB 20H程序的执行过程:若无按键按下,程序一直处于显示过程,显示20H中的按键次数,一旦按键按下,产生中断,程序中断显示过程,执行一条指令(INCB 20H),然后再回到显示过程,显示20H中的新内容。

MAIN:LCALL INITLOOP1:LCALL DISPLA YLJMP LOOP1问题:INCB 20H放在什么位置?解决方案:将INCB 20H放在单独的位置,将此指令的地址存入某固定地址(中断向量表:每种中断都有不同的地址),当中断产生时,将当前程序运行的PC指针的内容存入堆栈,然后CPU在某个固定地址中去寻找INCB 20H这条指令的存放地址,并将当前程序运行的PC指针的内容改成INCB 20H这条指令的存放地址,执行这条指令,指令执行完,通过RET指令,从堆栈中取出原来保存的程序中断前运行的地址,并根据此内容改变PC指针,使程序从中断处,继续运行。

程序清单:ORG 200EHDCW ANINTORG 2080HMAIN:LCALL INITLOOP1:LCALL DISPLA YLJMP LOOP1INIT:∞∞∞RETDISPLA Y:∞∞∞RETANINT:INCB 20HRET二、中断向量在CPU的地址空间中特殊规定的存储空间,里面存放特定中断服务程序的首地址,不同种类的中断有独立的中断向量。

一个中断向量占2个字节。

由不同种类的中断向量组成的集合叫中断向量表。

三 8098的中断系统1、中断源:共9种。

软件中断、外中断、串行口中断、软件定时器中断、HSI.0中断、高速输出中断、高速输入数据有效中断、A/D 转换完毕中断、定时器溢出中断。

2、中断优先级:当CPU 同时有几个中断申请,CPU 可根据不同种类的中断优先级,来判断先响应哪个中断。

见书P71-表3.13、8098中断结构图:见书P70-图3.1A 、 信号跳变检测器:8098所有中断源可分为两类,外部中断和内部中断。

第三版汇编语言程序设计教程课件

第三版汇编语言程序设计教程课件
2013-8-8
9
6
8
∴ 10101001.01101B =A9.68H
27
汇编语言程序设计教程
机器数的编码
• 原码 数的最高位表示符号位,其余各位表示真值的绝对值。 符号位为0表示该数为正数,符号位为1表示该数为负数。 • 反码
正数的反码与原码相同,
负数的反码其符号位仍用1表示,其余数值位则按位取反。 • 补码 用于解决减法转换为加法的问题,简化计算机运ቤተ መጻሕፍቲ ባይዱ电路。 常用方法之一:先取原数反码,再末位加1即得到补码。
2013-8-8
汇编语言程序设计教程
1
内容简介
•第1章和第2章介绍汇编语言基础知识和80x86机型的功能与 系统结构。 •第3章详细介绍IBM PC机的寻址方式和指令系统。 •第4章介绍伪指令、汇编语言程序格式等知识。 •第5章讲述顺序程序设计、分支程序设计和循环程序设计的 基本方法。 •第6章详细介绍子程序设计及参数传递的方法。 •第7章是输入/输出程序设计技术和方法。 •第8章介绍高级汇编技术,包括宏汇编、条件汇编和重复汇 编等。 •第9章讲述DOS功能调用和BIOS功能调用知识。 •第10章是汇编语言程序设计上机实验指导部分。
2013-8-8
汇编语言程序设计教程
11
存储器的容量
2013-8-8
汇编语言程序设计教程
12
1.2 计算机的基本结构与组成
1.2.1 1.2.2 1.2.3 1.2.4 计算机的硬件 计算机的软件 计算机的程序设计语言 计算机系统的层次结构
2013-8-8
汇编语言程序设计教程
13
计算机硬件组成
2013-8-8
汇编语言程序设计教程
8
计算机的特性

汇编语言实验8 中断程序设计

汇编语言实验8 中断程序设计

;.汇编语言实验报告Assembly Language Programming LabReports______________________________________________________________________________班级: _________ 姓名:___________ 学号:___________ 实验日期:_____________学院: _____计算机与通信工程学院____ 专业:_______计算机科学与技术___________实验顺序:___实验____ 实验名称:____________中断程序设计________________ 实验分数:_______ 考评日期:________ 指导教师:______________________________________________________________________________一.实验目的1.掌握中断的类型,软件中断和硬件中断。

2.掌握中断处理的过程,理解中断类型值,中断向量。

3.掌握系统中断以及功能调用。

4.可以自己设计中断程序______________________________________________________________________________二.实验环境操作系统:windows xp编译程序:masm 5.0______________________________________________________________________________三.实验原理1.CPU响应中断的条件(1)当前的指令周期结束(2)采样到有效的中断请求型号(3)如果是可屏蔽的中断请求INTR,检查中断允许标志IF是否为1(4)CPU正在执行的程序是不是中断服务程序,或者是中断优先级较低的中断服务程序2.中断响应过程(1)首先将标志寄存器FLAGS压入堆栈(2)将TF与IF清零,IF=0即关中断(3)将正在运行程序的断点CS和IP压入堆栈(4)从中断向量表中取出中断向量高两个字节的内容送入CS,取出低两个字节的内容送入IP(5)转到相应中断源的中断服务程序入口,执行中断处理服务程序______________________________________________________________________________四.实验步骤及结果分析1.修改已有中断处理程序。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
8.1.1 中断与中断源
第8章 实模式下的中断程序设计
汇 编 语 言 程 序 设 计
中断:当一种特殊事件发生时,CPU停止正在运行的程序,而转去执
行该事件的处理程序,处理完该事件后,再返回原程序继续 正确地执行下去,这个过程就称为中断。 中断源:引起中断的事件
8086/8088的中断源
非屏蔽中断请求 8259A NMI INTR IR1 可编程 IR2 中断 IR3 控制器 (PIC) n 4 1 0 IR4 IR5 IR6
2018/10/9
8
第8章 实模式下的中断程序设计
2.软中断处理程序 主要步骤: (1)考虑切换堆栈。 (2)及时开中断。 (3)应该保护现场。 (4)完成中断处理。 (5)恢复现场。 (6)堆栈切换。 (7)一般利用IRET指令实现中断返回。
汇 编 语 言 程 序 设 计
2018/10/9
9
8.2.2 设置和获取中断向量
第8章 实模式下的中断程序设计
本章主要教学内容
1.中断的基本概念; 2.中断程序的设计方法; 3.BIOS/DOS中断调用。
汇 编 语 言 程 序 设 计
本章主要教学目的及要求
1.理解中断的基本概念; 2.掌握中断程序的基本设计方法; 3.能熟练使用BIOS/DOS中断调用。
2018/10/9
1
8.1 中断概述
处 理 CPU 某 些 错误类型有两种:除法错中断和溢出中断 错误的中断 调试程序设 置的中断 如单步中断、断点中断、失效、陷井和中止
2018/10/9
3
8.1.3 中断向量表
第8章 实模式下的中断程序设计
汇 编 语 言 程 序 设 计
定义:各种中断处理程序的入口地址放在一起形成一个地址表
偏移地址IP的值 00000H 00004H 共1K字节 存放256个中断 00008H
外部中断
类 型
内部中断
非屏蔽中断NMI CPU不能禁止NMI线上的中断请求,主要用 于一些紧急的故障处理 可屏蔽中断INTR CPU 是否做出响应由该外设的中断请求是 否被屏蔽和CPU是否允许响应中断决定 INT引起的中断 执行 INT n 指令产生中断,调用中断程序来 完成中断功能,操作数n将给出中断的类型
2018/10/9
7
8.2 中断处理程序设计
8.2.1 中断处理程序的编写
1.外中断处理程序
第8章 实模式下的中断程序设计
汇 编 语 言 程 序 设 计
主要步骤: (1)保护现场。主要指各通用寄存器内容和除CS外代码段寄存器 的内容。保护方法一般是压栈。 (2)尽快完成中断处理,以免影响其他外设中断请求。 (3)恢复现场。 (4)中断返回。用IRET指令返回。
0C 0D
IR0
08 09 0A
0B
CPU
中断逻辑
系统定时器 键盘 彩色/图形接口 保留(通信) 串行通信接口 保留(ALT打印机) 软盘 保留(打印机)
0E 0F
INT n 指令
INT0 指令
除法 错误
单步 TF=1
IR7
2018/10/9
2
8.1.2 中断分类
第8章 实模式下的中断程序设计
汇 编 语 言 程 序 设 计
含义:正在运行的中断处理程序,又被其他中断源中断 注意:实际使用时,多层中断嵌套要受到堆栈容量的限制
2018/10/9
6
8.1.6 中断指令
第8章 实模式下的中断程序设计
汇 编 语 言 程 序 设 计
外中断是由外设发出中断信号引起的,没有中断指令 软中断指令 格式: INT n 功能:转到相应中断处理程序执行 中断返回指令 格式: IRET 功能:从中断服务程序返回主程序
2018/10/9
5
8.1.5 中断优先级
1.中断优先级
第8章 实模式下的中断程序设计
汇 编 语 言 程 序 设 计
含义:当多个中断源同时申请中断时,CPU按优先级从高到低的次序 依次处理各中断源的请求 优先级从高到低的次序为: 优先级高
优先级低 2.中断嵌套
非屏蔽中断(NLeabharlann I) 内部中断 可屏蔽中断(INTR) 单步中断
…… MOV AX,SEG INTHAND ;中断处理程序的段地址 MOV DS,AX MOV DX,OFFSET INTHAND ;中断处理程序的偏移地址 MOV AH,25H MOV AL,n INT 21H ……
2018/10/9
10
2.获取中断向量
第8章 实模式下的中断程序设计
方法1:直接读取法。利用MOV指令直接读取中断向量
类型0中断处理 程序入口地址 类型1中断处理 程序入口地址 类型2中断处理 程序入口地址 ……… 类型FF中断处理 程序入口地址
段地址CS值
003FCH
中断向量地址=中断类型号*4
2018/10/9
4
8.1.4 中断过程
第8章 实模式下的中断程序设计
汇 编 语 言 程 序 设 计
中断发生时,硬件自动完成的动作如下: (1)取中断类型号n; (2)标志寄存器(PSW)内容压栈; (3)当前代码段寄存器(CS)内容压栈; (4)当前指令指针(IP)内容压栈; (5)禁止外部中断和单步中断(置IF=0,TF=0); (6)从向量表中取4×n地址的内容送IP,取4×n+2地址中内容送CS; (7)转中断处理程序。 中断与子程序调用的差别: (1)在保护中断现场时,除了保护返回地址CS:IP之外,还保存 了标志寄存器PSW的内容。 (2)在中断发生时CPU自动清除了IF和TF
1.设置中断向量
第8章 实模式下的中断程序设计
汇 编 语 言 程 序 设 计
方法1:直接写入法。用MOV指令将中断向量直接写入中断向量表
【例8-1 】使用直接写入法设置中断向量。 方法2:使用 DOS 功能调用法。25H号DOS功能调用可以设置中断向量 … … 出入口参数: MOV AX,0 预置:AH=25H MOV DS,AX AL=中断类型号 MOV BX,n*4 ;设置n号中断向量 DS∶DX =中断向量 CLI ;关中断 执行:INT 21H MOV WORD PTR[BX],OFFSET INTHAND ;置偏移 功能:将指定的中断向量写入中断向量表。 MOV WORD PTR[BX+2],SEG INTHAND ;置段值 【例8-2 】使用DOS功能调用设置中断向量。 STI ;开中断 INTHAND: … …
相关文档
最新文档