汇编-内中断

这篇具有很好参考价值的文章主要介绍了汇编-内中断。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

汇编-内中断,汇编

中断的意思是指, CPU不再接着(刚执行完的指令) 向下执行, 而是转去处理这个特殊信息。

内中断的产生  

8086CPU,当CPU内部有下面的情况发生的时候, 将产生相应的中断信息:

  (1)除法错误, 比如, 执行div指令产生的除法溢出;

  (2)单步执行;
  (3)执行into指令;

  (4)执行int指令。

 CPU首先要知道, 所接收到的中断信息的来源。所以中断信息中必须包含识别来源的编码。8086CPU用中断类型码的数据来标识中断信息的来源。中断类型码为一个字节型数据,可以表示256种中断信息的来源。以后,我们将产生中断信息的事件, 即中断信息的来源, 简称为中断源,

上述的4种中断源, 在8086CPU中的中断类型码如下:

        (1)除法错误:0

        (2)单步执行:1

        (3) 执行into指令:4

        (4)执行int指令, 该指令的格式为int n, 指令中的n为字节型立即数, 是提供给CPU的中断类型码。

中断向量表

CPU用8位的中断类型码通过中断向量表找到相应的中断处理程序的入口地址。那么什么是中断向量表呢?中断向量表就是中断向量的列表。那么什么是中断向量呢?所谓中断向量,就是中断处理程序的入口地址。展开来讲,中断向量表,就是中断处理程序入口地址的列表。
中断向量表在内存中保存,其中存放着256个中断源所对应的中断处理程序的入口,如图12.1所示。

汇编-内中断,汇编

可以看到, CPU只要知道了中断类型码, 就可以将中断类型码作为中断向量表的表项号,定位相应的表项,从而得到中断处理程序的入口地址。
中断向量表在内存中存放,对于8086PC机,中断向量表指定放在内存地址0处。从内存0000:0000到0000:03FF的1024个单元中存放着中断向量表。能不能放在别处呢?不能, 如果使用8086CPU, 中断向量表就必须放在0000:0000~0000:03FF单元中, 这是规定, 因为8086CPU就从这个地方读取中断向量表。
那么在中断向量表中,一个表项占多大的空间呢?一个表项存放一个中断向量,也就是一个中断处理程序的入口地址,文章来源地址https://www.toymoban.com/news/detail-683643.html

到了这里,关于汇编-内中断的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • [ARM 汇编]进阶篇—异常处理与中断—2.4.1 异常处理概念

    异常处理简介 在ARM汇编开发中,异常处理和中断是常见的概念,它们是对系统运行过程中出现的特殊情况进行处理的一种机制。异常处理和中断包括硬件异常、软件异常和外部中断等。当处理器遇到这些特殊情况时,它会自动执行相应的处理程序。 异常和中断的分类 复位(

    2024年02月09日
    浏览(43)
  • [ARM 汇编]进阶篇—异常处理与中断—2.4.2 ARM处理器的异常向量表

    异常向量表简介 在ARM架构中,异常向量表是一组固定位置的内存地址,它们包含了处理器在遇到异常时需要跳转到的处理程序的入口地址。每个异常类型都有一个对应的向量地址。当异常发生时,处理器会自动跳转到对应的向量地址,并开始执行异常处理程序。 异常向量表

    2024年02月09日
    浏览(56)
  • ARM汇编 : 汇编指令,伪指令,汇编程序格式

    计算机的指令集一般可分为4种: 复杂指令集(CISC) 精简指令集(RISC) 显式并行指令集(EPIC) 超长指令字指令集(VLIW) ARM指令集属于RISC,RISC相对于CISC指令集,主要有以下特点: ●Load/Store架构,CPU不能直接处理内存中的数据,要先将内存中的数据Load(加载)到寄存器中

    2024年02月12日
    浏览(23)
  • 汇编语言—常见汇编指令汇总

    mov    寄存器 ,数据                如:mov ax ,8 mov   寄存器,寄存器              如:mov ax,bx mov   寄存器,内存单元          如:mov ax,[0] mov   内存单元,寄存器          如:mov [0],ax mov   段寄存器,寄存器          如:mov ds,ax add   寄存器,数据

    2024年02月10日
    浏览(28)
  • 【汇编】32位汇编常用的指令

    目录 1、普通指令        mov:传送字或字节        add:加法        sub:减法        inc:加1        dec:减1         and:与运算,都为1才为1        or:或运算,都为0才为0        xor:异或运算,多用于加密解密,相同为0不同为1        not:按位取反,单目运算

    2024年02月02日
    浏览(30)
  • 低级语言汇编真的各个面不如汇编吗?

    今日话题,低级语言汇编真的各个面不如C语言吗?C语言因其可移植性、开发效率和可读性而在各领域广泛使用,市场占有率极高。然而,汇编语言在特定场景下仍然具有独特优势,稳固地占据一席之地。如果你对这方面感兴趣,我可以分享一套包含各类语言和嵌入式行业教

    2024年02月06日
    浏览(32)
  • 5.6 汇编语言:汇编高效数组寻址

    数组和指针都是用来处理内存地址的操作,二者在C语言中可以互换使用。数组是相同数据类型的一组集合,这些数据在内存中是连续存储的,在C语言中可以定义一维、二维、甚至多维数组。多维数组在内存中也是连续存储的,只是数据的组织方式不同。在汇编语言中,实现

    2024年02月11日
    浏览(32)
  • 5.8 汇编语言:汇编高效除法运算

    通常情况下计算除法会使用 div/idiv 这两条指令,该指令分别用于计算无符号和有符号除法运算,但除法运算所需要耗费的时间非常多,大概需要比乘法运算多消耗10倍的CPU时钟,在Debug模式下,除法运算不会被优化,但Release模式下,除法运算指令会被特定的算法经过优化后转

    2024年02月11日
    浏览(33)
  • 汇编六、汇编举例_循环语句怎么写?

    注:使用Keil环境。 MOV direct1,direcct2    ;两个直接地址可以进行数据的传递。 (1)包括 循环体 , 赋初值 , 改变初值 , 比较判断 (2)MOV direct1,direct2    ;将direct2地址中的数据赋值给direct1地址         direct1和direct2表示地址,需要改变,表示0x30-0x3F和0x50-0x5F (3)MOV @R0,@R1 把R

    2024年02月04日
    浏览(21)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包