精华内容
下载资源
问答
  • 查看中断类型 0H 查看中断类型 60H 二、实现原理 1、中断类型 0H 功能:程序终止产生中断,所以我们可以写一个内存有问题的子程序,调用它就会产生一个 0H 中断 例如:200H / 0H 等于无穷,导致程序...

    一、实验要求

    1. 查看中断类型码 0H
    2. 查看中断类型码 60H

    二、实现原理

    1、中断类型码 0H
    功能:程序终止产生中断,所以我们可以写一个内存有问题的子程序,调用它就会产生一个 0H 中断

    例如:200H / 0H 等于无穷,导致程序内存溢出终止,产生 0H 号中断

    key_I:	MOV	AX,200H				;程序错误中断0(200H / 0 = ∞)	
    		MOV	BL,0 
    		DIV	BL
    		JMP	wait
    

    2、中断类型码 60H
    这是给用户自定义的中断类型码,所以要产生中断就要调用 60H 中断即可

    例如:自己编写 60H 中断,然后调用即可

    key_I:	int 60h          		;显示调用,自己定义 60H 中断
    		NOP  					;空操作,延时一个机器周期,保证读写    
    		JMP wait
    

    三、代码及解释

    wait——循环(自己定义的,和关键字重复了,可以修改)
    key_Q——程序正常退出
    key_I——调用中断
    store——保存原来这里的数据
    init——设置中断向量
    restore——恢复原来这里的数据
    newint——中断产生后执行程序

    		ASSUME	DS:seg1,CS:seg2
    		
    seg1	SEGMENT
    		intoff	DW	?			;用于保存原中断向量偏移地址
    		intseg	DW	?			;用于保存原中断向量段地址
    seg1	ENDS
    
    seg2	SEGMENT
    start:	MOV AX,seg1
    		MOV	DS,AX
    		MOV	AX,0
    		MOV	ES,AX
    		CALL store
    		CALL init
    		
    wait:	MOV	AH,01H				;01H 键盘输入并回显
    		INT	21H					;21H DOS系统功能调用
    		CMP	AL,'Q'				;根据输入跳转子程序
    		JE	key_Q
    		CMP	AL,'I'
    		JE	key_I
    		JMP	wait
    
    key_Q:	CALL restore			
    		MOV	AH,4CH				;4CH 带返回码结束
    		INT	21H
    
    key_I:	MOV	AX,200H				;程序错误中断0(200H / 0 = ∞)	
    		MOV	BL,0 
    		DIV	BL
    		JMP	wait
    
    store:	MOV	AX,ES:[00H*4]		;保存原来这里的数据
    		MOV	intoff,AX
    		MOV	AX,ES:[00H*4+2]
    		MOV	intseg,AX
    		RET
    		
    init:	MOV	AX,OFFSET newint	;设置中断	;取中断程序偏移地址
    		MOV	ES:[00H*4],AX		
    		MOV	AX,SEG newint		;取中断程序段地址
    		MOV	ES:[00H*4+2],AX
    		RET
    		
    restore:MOV	AX,intoff			;恢复原来这里的数据
    		MOV	ES:[00H*4],AX
    		MOV	AX,intseg
    		MOV	ES:[00H*4+2],AX
    		RET
    		
    		
    ; key_I:	int 60h          		;显示调用,自己定义 60H 中断
    		; NOP  					;空操作,延时一个机器周期,保证读写    
    		; JMP wait
    		
    ; store:	MOV	AX,ES:[60H*4]		;保存原来这里的数据
    		; MOV	intoff,AX
    		; MOV	AX,ES:[60H*4+2]
    		; MOV	intseg,AX
    		; RET
    		
    ; init:	MOV	AX,OFFSET newint	;取中断程序偏移地址
    		; MOV	ES:[60H*4],AX		
    		; MOV	AX,SEG newint		;取中断程序段地址
    		; MOV	ES:[60H*4+2],AX
    		; RET
    		
    ; restore:MOV	AX,intoff			;恢复原来这里的数据
    		; MOV	ES:[60H*4],AX
    		; MOV	AX,intseg
    		; MOV	ES:[60H*4+2],AX
    		; RET
    
    newint:	MOV	BP,SP				;开中断,保护寄存器
    		ADD	WORD PTR [BP],2
    		MOV	AH,02H				;02H 显示输出
    		MOV	DL,'A'				;输出 A
    		INT	21H
    		IRET
    
    seg2	ENDS
    		END	start
    

    四、结果

    调试输入

    -u 				反汇编查看中断调用的地址
    -g [address] 	执行到指定地址
    -d DS:0 		查看保存原始数据
    -d ES:0 		查看中断向量地址
    -d ES:180 		查看中断向量地址
    

    1、中断类型码 0H
    0H * 4 = 0
    可以看到在 ES 中 0000-0003 保存了调用中断的地址,DS 中是以前的保存数据
    在这里插入图片描述

    2、中断类型码 60H
    60H * 4 = 180H
    可以看到在 ES 中 0180-0183 保存了调用中断的地址,DS 中是以前的保存数据
    在这里插入图片描述

    展开全文
  • 计算机组成:中断向量的相关计算

    千次阅读 2019-05-25 16:19:36
    中断向量的相关计算 中断 0~255一个256个中断,一个中断占4字节。 1号中断向量:00000H~00003H。比如中断15H,那么起始的地址:15H × 4 = 00054H(可以转换成10进制计算。注意题目要求的格式是否要前面...

    中断向量的相关计算

    中断码

    0~255一个256个中断码,一个中断码占4字节。
    1号中断向量:00000H~00003H。比如中断码15H,那么起始的地址:15H × 4 = 00054H(可以转换成10进制计算。注意题目要求的格式是否要前面补零,这里统一用五位16进制)

    中断向量 = 中断服务程序的入口地址

    比如:中断类型码20H,中断服务程序的入口地址为5670:1350H,则中断向量第2个、第3个字节单元的地址是什么?(从低到高)

    理解起来很简单,intel的存储时小端方式,即低字节在低地址处。中断码为20H,说明其中地址:20H × 4 = 00080H(32 × 4 = 16 × 8),所以,50H在地址00080H,13H在地址00081H(第二个字节),70H在地址00082H。

    展开全文
  • 所谓中断是指CPU在正常执行程序的过程中,由于内部/外部事件的触发或由程序的预先安排,引起CPU...中断向量:中断的地址的变量; 中断向量表:中断类型号与相应中断源的中断处理程序入口地址之间的连接表; 中断服...

    所谓中断是指CPU在正常执行程序的过程中,由于内部/外部事件的触发或由程序的预先安排,引起CPU暂时中断当前正在运行的程序,而转去执行为内部/外部事件或程序预先安排的事件的服务子程序,待中断服务子程序执行完毕后,CPU再返回到被暂时中断的程序处(断点)继续执行原来的程序,这一过程成为中断。

    中断向量:中断的地址的变量;

    中断向量表:中断类型号与相应中断源的中断处理程序入口地址之间的连接表;

    中断服务程序:发送中断时所执行的中断代码

    中断机制
    中断机制是现代计算机系统中的基本机制之一,它在系统中起着通信网络的作用,以协调系统对各种外部事件的响应和处理,中断是实现多道程序设计的必要条件,中断是CPU 对系统发生的某个事件作出的一种反应。引起中断的事件称为中断源。中断源向CPU 提出处理的请求称为中断请求。发生中断时被打断程序的暂停点称为断点。CPU暂停现行程序而转为响应中断请求的过程称为中断响应。处理中断源的程序称为中断处理程序。CPU执行有关的中断处理程序称为中断处理。而返回断点的过程称为中断返回。中断的实现由软件和硬件综合完成,硬件部分叫做硬件装置,软件部分称为软件处理程序。

    众所周知,处理器的速度跟外围硬件设备的速度往往不在一个数量级上,因此,如果内核采取让处理器向硬件发出一个请求,然后专门等待回应的办法,显然降低内核效率。

    既然硬件的响应这么慢,那么内核就应该在此期间处理其他事务,等到硬件真正完成了请求的操作之后,再回过头来对它进行处理。想要实现这种功能,轮询(polling)可能会是一种解决办法。可以让内核定期对设备的状态进行查询,然后做出相应的处理。不过这种方法很可能会让那个内核做不少无用功,因为无论硬件设备是正在忙碌着完成任务还是已经大功告成,轮询总会周期性的重复执行。更好的办法是由我们来提供一种机制,让硬件在需要的时候再向内核发出信号(变内核主动为硬件主动),这就是中断机制。

    中断使得硬件得以与处理器进行通信。举个例子,在你敲打键盘的时候,键盘控制器(控制键盘的硬件设备)会发送一个中断,通知操作系统有键按下。中断本质是一种特殊的电信号,由硬件设备发向处理器。处理器接受到中断后,会马上向操作系统反映此信号的到来,然后就由os负责处理这些新到来的数据。硬件设备生成中断的时候并不考虑与处理器的时钟同步——换句话说就是中断随时可以产生。因此,内核随时可能因为新到来的中断而被打断。

    不同的设备对应的中断不同,而每个中断都通过一个惟一的数字标识。因此,来自键盘的中断就有别于来自硬盘的中断,从而使得操作系统能够对中断进行区分,并知道哪个硬件设备产生了哪个中断。这样,操作系统才能给不同的中断提供不同的中断处理程序。

    在它执行程序的时候,如果有另外的事件发生(比如用户又打开了一个程序)那么这时候就需要由计算机系统的中断机制来处理了。

    中断机制包括硬件的中断装置和操作系统的中断处理服务程序。

    让硬件在需要的时候再向内核发出信号。

    早期的微机系统中将由硬件产生的中断标识码(中断源的识别标志,可用来形成相应的中断服务程序的入口地址或存放中断服务程序的首地址)称为中断向量

    原文链接:https://blog.csdn.net/qq_33726988/article/details/97629164

    1、现实中比喻
    在这里插入图片描述
    2、人和硬件对比
    在这里插入图片描述
    3、中断的处理过程
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    4、异常向量表
    在这里插入图片描述
    转载自:https://blog.csdn.net/qq_18077275/article/details/89304215

    展开全文
  • 中断向量 中断向量表

    千次阅读 2015-05-27 11:24:39
    2、中断向量:早期的微机系统中将由硬件产生的中断标识(中断源的识别标志,可用来形成相应的中断服务程序的入口地址或存放中断服务程序的首地址)称为中断向量。在某些计算机中,中断向量的位置存放一条跳转到...

    1、中断标识码(中断类型号):由硬件(通常是中断控制器)产生,以标识不同的中断源。

    2、中断向量:早期的微机系统中将由硬件产生的中断标识码(中断源的识别标志,可用来形成相应的中断服务程序的入口地址或存放中断服务程序的首地址)称为中断向量。在某些计算机中,中断向量的位置存放一条跳转到中断服务程序入口地址的跳转指令。

    3、中断向量地址:存储中断向量的存储单元地址。

    4、中断:在计算机执行程序的过程中,当出现异常情况或者特殊请求时,计算机停止现行的程序的运行,转而对这些异常处理或者特殊请求的处理,处理结束后再返回到现行程序的中断处,继续执行原程序。

    存放:存放中断服务程序的入口地址,来存放中断向量(共256个),称这一片内存区为中断向量表。

    跳转:跳转到中断服务程序的入口地址,在AVR或ARM微处理器中,中断向量的大小也是4个字节,但其中存放的不是中断程服务程序的入口地址,而是可执行的代码。当响应中断时,硬件自动执行相应中断向量处的跳转代码,然后跳转到具体的中断服务程序的入口地址。



    综上所述:中断向量的地址一定是 中断服务程序的入口地址的地址,但中断向量不一定就是中断服务程序的入口地址。

    展开全文
  • ...■看图理解:硬件中断与软件中断...1、8086/8088CPU可以处理256种不同类型的中断,每一种中断都给定一个编号(0~255),称为中断类型号,CPU根据中断类型号来识别不同的中断源; 2、中断类型号0~4已有固定对应
  • 中断向量

    千次阅读 2019-06-26 11:11:56
    中断向量是什么
  • 51内核的最基础的中断源请求有外部中断、定时器中断和串口中断,这也是学习和开发者最长用的。当然还有其他的中断源,比如ADC、SPI、PWM等。以外部中断0为例,在编程中常使用的方式为:void INT0()interrupt 0 using...
  • 中断,则共有32+16(系统异常)=48 个向量,向上增大到2 的整次幂后值为64,因此地址 地址必须能被64*4=256 整除,从而合法的起始地址可以是:0x0, 0x100, 0x200 等。   向量 表偏移量寄存器,也就是 SCB->VTOR....
  • 中断:所谓中断是指CPU在正常执行程序的过程中,由于内部/外部事件的触发或由程序的预先安排,引起CPU暂时中断当前正在运行的程序,而转去执行为内部/外部事件或程序预先安排的事件的服务子程序,待中断服务子程序...
  • 中断向量 每个中断源都有对应的处理程序,这个处理程序称为中断服务程序,其入口地址称为中断向量。所有中断的中断服务程序入口地址构成一个表,称为中断向量表;也有的机器把中断服务程序入口的跳转指令构成一张表...
  • IC基础知识(十)中断向量地址

    千次阅读 2020-12-24 09:15:42
    中断向量地址
  • 中断向量,中断向量表 ,中断服务函数

    千次阅读 多人点赞 2019-07-29 12:31:52
    所谓中断是指CPU在正常执行程序的过程中,由于内部/外部事件的触发或由程序的预先安排,引起CPU暂时...中断向量:中断的地址的变量; 中断向量表:中断类型号与相应中断源的中断处理程序入口地址之间的连接表; ...
  • 【汇编语言】中断

    2021-05-09 21:15:27
    (理解)中断向量的存放的内存地址在哪里、中断向量的值、中断向量值的含义。 中断向量存放在地址为0000:0000h~0000:03ffh的内存空间中。 中断向量号为n,则中断向量就存放在地址为0000:4n,0000:4n+1,0000:4n+2,0000:...
  • 中断向量的相关计算 中断 0~255一个256个中断,一个中断占4字节。 1号中断向量:00000H~00003H。比如中断15H,那么起始的...比如:中断类型20H,中断服务程序的入口地址为5670:1350H,则中断向量第2个、...
  • 中断向量 中断源的识别标志,可用来形成相应的中断服务程序的入口地址或存放中断服务程序的首地址。运行过程 在中断响应过程中,CPU通过从接口电路获取的中断类型号(中断向量号)计算对应中断向量在表中的位置,...
  • 说到中断号和中断向量,也许你并不陌生,这两个概念也可以将中断原理解释个大概了。但是当你深究下去的时候你会碰到另一个东西——IRQ,之后自然而然的对从硬件级开始到中断向量表的整个中断过程产生好奇,然后继续...
  • 8088系统的中断

    2020-06-25 23:41:29
    1.按照中断请求的来源可以分为 ○ 内部中断(完全在CPU内部实现) § 异常中断----异常事件引起的(掉电、除法、溢出等) § 软件中断----中断指令引起的(INT n---中断调用系统的DOS功能) ○ 外部中断 § ...
  • 中断向量类型表

    千次阅读 2013-12-17 12:50:13
    中断向量类型表  中断类型  功能 一 CPU中断类型  0
  • Linux ARM 中断向量重定位分析

    千次阅读 2019-01-01 22:11:12
    作为Linux的开篇,延续我一贯的风格,从启动以及中断向量开始。此篇文章的内容是以Linux版本是2.6.39,硬件平台是ATMEL9G25。 大神路过,看一眼,请指正其中错误之处。好了,开始正题。 在arch/arm/kernel/entry...
  • 8 中断和异常题库

    千次阅读 2019-02-17 11:16:33
    1、x86实模式下,若中断类型为15H,则中断向量存放在从哪个地址开始的4个字节单元中。 00054h 解析: 2、x86实模式下,若中断类型为10H,则中断向量存放在从哪个地址开始的4个字节单元中。 00040h 解析...
  • 文章目录第八章 中断系统8.1 中断的基本概念8.1.1 中断概念的引入及描述中断方式示意(以输入中断为例)**中断**的定义8.1.2 中断源及中断分类中断的分类8.1.3 中断类型中断类型码中断向量中断向量表中断向量表的...
  • 系统级C语言程序设计(中断原理简介) 摘要:本文主要介绍C语言中中断服务程序的编写、安装和使用。由于硬中断服务程序的编写涉及到硬件端口读写操作,使得用户直接和硬件打交道...关键词:软中断、中断向量中断向量
  • 80386的中断和异常

    千次阅读 2014-11-25 10:55:18
    80386的中断和异常 8086/8088把中断分为内部中断和外部中断两大类。为了支持多任务和虚拟存储器等功能,80386把外部中断称为“中断”,把内部中断称为“异常”。与8086/8088一样,80386通常在两条指令之间响应...
  • 获取83号中断向量地址的计算方法

    千次阅读 2012-07-22 21:21:14
    00000009 10.54927540 [vmm] 中断向量执行首地址 0x[899732AC] 与通过windbg获得的中断向量表的地址是一致的: 1: kd> !idt Dumping IDT: 37: 806e7864 3d: 806e8e2c 41: 806e8c88 50: 806e793...
  • 思路的整理:中断的设计 中断的类型 问题1:Java/Js 等语言为什么可以捕获到键盘输入? 问题2:操作系统可以处理键盘按键可以理解,那么我们开机的时候也可以使用键盘,但是那时候操作系统还.
  • 这里写目录标题先验知识回顾控制寄存器回顾1、8086中断类型1、外部可屏蔽中断2、外部不可屏蔽中断3、除法错中断4、单步中断5、断点中断6、溢出中断7、软中断2、8086中断向量表3、8086中断响应1、外部可屏蔽中断响应2...
  • 在PC机系列中,键盘的中断为INT 9H,其中断向量在存储器的物理地址是多少?

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 14,885
精华内容 5,954
关键字:

中断向量码