精华内容
下载资源
问答
  • 中断指令INT 理解

    2021-05-06 21:33:30
    INT指令为 软件中断指令,是CALL指令的一种特殊形式,call指令调用的子程序是用户程序的一部分,而INT指令调用的则是操作系统或者BIOS提供的特殊子程序。 INT n就好像是调用子程序,只不过其调用的是中断处理程序。 ...

    前言

    我们在学习操作系统时,在引导部分代码中,会看到 int 指令,比如:

    int 10h
    

    书上会解释说,通过10h中断能够实现显示屏操作。

    分析

    INT指令为 软件中断指令,是CALL指令的一种特殊形式,call指令调用的子程序是用户程序的一部分,而INT指令调用的则是操作系统或者BIOS提供的特殊子程序。
    INT n就好像是调用子程序,只不过其调用的是中断处理程序。

    • 格式 : int n
    • 功能:转到相应的中断处理程序执行

    举例

    mov ah, 1	; 设置入参
    int 21h			; 调用21h中断服务程序
    

    这段代码的含义是,调用中断号为21的终端服务程序的 第1号功能,其中ah是入参。

    为什么这样用?

    刚开始接触这种使用方式时,我们可能会有疑惑,为什么要使用这种方式来实现程序调用,毕竟中断服务程序也是类似于一个子程序而已,为什么不用call,毕竟使用call,对于程序员来说,更容易理解,这里我简单的分析一下,可能不太正确,但是起码能够帮助我们理解。

    • 1、BIOS的全称为 “基本输入/输出系统”,BIOS一般是电脑制作商根据CPU的型号和主板原理图设计的软件,是引导操作系统的关键,对于BIOS来讲,它是不懂windows和linux的,它的主要工作就是上电后第一个运行的程序,能够提供最基本的输入(键盘)和输出(蜂鸣器、显示器VGA)功能,所以BIOS中,是包括了显示器、键盘的驱动的,也预留了键盘、显示器的使用接口。
    • 2、那么问题就来了,BIOS预留的使用接口,引导程序怎么能够方便使用呢?由于BIOS和引导程序在不同的存储介质中,基本上可以理解为BIOS和引导程序是两个进程(注意不是线程),代码不在一起,就不存在所谓的调用了,所以需要有个全局的调用接口?
    • 3、接着上面的分析,在没有操作系统的情况下,什么是全局可见的接口呢,很明显,中断是全局可见的,但是肯定不能使用硬中断,因为硬中断是与绑定的,那自然就是软中断了,所以BIOS中自然就包括了软中断服务程序,比如 显示器的操作,就是通过 10h中断来实现的,cpu规定好,通过a寄存器来进行传参。这样就实现了在引导程序中,操作显示器的功能。
    展开全文
  • CPU可以选择决定做任何一个,即决定何时相对于原始指令流处理中断 .对于无序执行,通常会有数十条指令在运行,并且不止一个指令可以立即在ALU中执行 .但是,一个有趣的问题是,允许完成和更新中断处理程序看到或未...

    CPU可以选择决定做任何一个,即决定何时相对于原始指令流处理中断 .

    对于无序执行,通常会有数十条指令在运行,并且不止一个指令可以立即在ALU中执行 .

    但是,一个有趣的问题是,允许完成和更新中断处理程序看到或未更新的架构状态是否允许已经开始执行但尚未退出的低延迟指令(如 add 或 imul ) .

    如果没有,这可能是因为很难 Build 逻辑来检测有多少连续指令准备好“很快”退出,超出当前的退休状态 . 中断是罕见的(最坏情况下每千条指令一个,或者I / O负载较低的每百万条指令一个),因此在中断处理中挤压周围代码的更多吞吐量的好处很低 . 中断延迟的任何潜在成本都将是一个缺点 .

    Some instructions, especially micro-coded ones, have mechanisms for being interrupted without having to restart from scratch . 例如

    rep movsb可以将RSI,RDI和RCX更新为部分通过副本(因此它将在重新启动时完成复制) . 其他REP字符串指令可以类似地被中断 . 对于中断,只有一次操作计数是原子的 .

    AVX2收集像vpgatherdd有一个输入掩码矢量,显示要收集哪些元素而忽略 . 它在成功收集相应的索引后清除掩码元素 . 在异常(例如页面错误)上,错误元素是最右边的元素,其掩码仍然设置(聚合顺序不保证,但故障顺序是,参见英特尔的手册条目) .

    这使得聚集成功成为可能,而无需同时映射所有相关页面 . 即使在内存压力的情况下,在另一个元素中进行分页时驱逐已经收集的元素也不会导致无限循环 . 保证前进 .

    在异步中断上,硬件可以类似地使聚集部分完成,使用掩码来记录进度 . IDK,如果任何硬件确实这样做,但ISA设计使该选项保持打开状态 .

    无论如何,这就是为什么你需要在循环内为每个聚集创建一个全新的全屏模板 .

    没有中断和重启机制的非常慢的指令包括wbinvd . (将所有缓存同步到主内存并使其无效) . Intel's manual mentions that wbinvd does delay interrupts.

    因此,使用WBINVD指令会对逻辑处理器中断/事件响应时间产生影响 .

    这可能是为什么它是一个特权指令 . 用户空间可以做很多事情来使系统变慢(例如占用大量内存带宽),但它不能过于显着地增加中断延迟 . (从ROB退出但尚未提交给L1d的商店可能会增加中断延迟,因为它们必须发生并且不能中止 . 但是在飞行中创建大量分散的缓存缺失存储的病态情况更难 . )

    展开全文
  • 主程序中使用的指令决定具体子程序的执行状况。当主程序调用子程序并执行时,子程序执行全部指令直至结束。然后,系统将控制返回至调用子程序网络中的主程序。子程序用于为程序分段和分块,使其成为较小的、更易管理...

    满意答案

    dcebd7a0de6265b6ccae5ead692f1eab.png

    0519gao

    2013.10.06

    dcebd7a0de6265b6ccae5ead692f1eab.png

    采纳率:46%    等级:12

    已帮助:11303人

    子程序帮助您对程序进行分块。主程序中使用的指令决定具体子程序的执行状况。当主程序调用子程序并执行时,子程序执行全部指令直至结束。然后,系统将控制返回至调用子程序网络中的主程序。

    子程序用于为程序分段和分块,使其成为较小的、更易管理的块。在程序中调试和维护时,您可以利用这项优势。通过使用较小的程序块,对这些区域和整个程序简单地进行调试和排除故障。只在需要时才调用程序块,可以更有效地使用PLC,因为所有的程序块可能无须执行每次扫描。

    最后,如果子程序仅引用参数和局部内存,则可移动子程序。为了移动子程序,应避免使用任何全局变量/符号(I、Q、M、SM、AI、AQ、V、T、C、S、AC内存中的绝对地址)。如果子程序无调用参数(IN、OUT或IN_OUT)或仅在L内存中使用局部变量,您就可以导出子程序并将其导入另一个项目。

    欲在程序中使用子程序,必须执行下列三项任务:

    ?建立子程序

    ?在子程序局部变量表中定义参数(如果有)

    ?从适当的POU(从主程序或另一个子程序)调用子程序

    当子程序被调用时,整个逻辑堆栈被保存,堆栈顶端被设为一,所有其他堆栈位置被设为零,控制被传送至调用子程序。当该子程序完成时,堆栈恢复为在调用点时保留的数值,控制返回调用例行程序。

    子程序和调用例行程序共用累加器。由于子程序的使用,对累加器不执行保存或恢复操作。

    用参数调用子程序

    子程序可能包含交接的参数。参数在子程序的局部变量表中定义。参数必须有一个符号名(最多为23个字符)、一个变量类型和一个数据类型。可向子程序交接16个参数或从子程序交接16个参数。

    局部变量表中的变量类型域定义参数是否交接至子程序(IN)、交接至或交接出子程序(IN_OUT)或交接出子程序(OUT)。下表说明子程序的参数类型。欲增加参数条目,将光标放在您希望增加的类型的变量类型域上(IN、

    IN_OUT或OUT)。单极鼠标右键,获得选项菜单。选择"插入"选项,然后选择"下一行"选项。在当前条目的下方会显示所选类型的另一个参数条目。

    跳转至标签(JMP)指令对程序中的指定标签(n)执行分支操作。跳转接受时,堆栈顶值始终为逻辑1。标签(LBL)指令标记跳转目的地(n)的位置。您可以在主程序、子程序或中断例行程序中使用"跳转"指令。"跳转"及其对应的"标签"指令必须始终位于相同的代码段中(主程序、子程序或中断例行程序)。您不能从主程序跳转至子程序或中断例行程序中的标签,与此相似,您也不能从子程序或中断例行程序跳转至该子程序或中断例行程序之外的标签。您可以在SCR段中使用"跳转"指令,但对应的"标签"指令必须位于相同的SCR段内。

    中断允许(ENI)指令全局性启用所有附加中断事件进程。中断禁止(DISI)指令全局性禁止所有中断事件进程。转换至RUN(运行)模式时,中断开始时被禁止。一旦进入RUN(运行)模式,您可以通过执行全局中断允许指令,启用所有中断进程。执行中断禁止指令会禁止处理中断;但是现用中断事件将继续入队等候

    11分享举报

    展开全文
  • 01号中断:输入一个字符,默认放到 al 里面 mov ah,01h int 21h ------------------------------------------------------------ 02号中断:输出dl所在的位置的字符 mov ah,02h mov dl,10h int 21h ----------------...
    01号中断:输入一个字符,默认放到 al 里面
    mov ah,01h
    int 21h
    ------------------------------------------------------------
    02号中断:输出dl所在的位置的字符
    mov ah,02h
    mov dl,10h
    int 21h
    ------------------------------------------------------------
    09号中断:
    string db "hello$"
    mov ah,09h
    lea dx,string		// string 要加 '$'
    int 21h
    ------------------------------------------------------------
    0a号中断
    string db 128,?,128 dup('$') // 第一个是输入的字符个数上限(自定义),包含回车符
    											// 第二个是输入的数据的大小(功能调用自动统计)
    											// 第三个是输入数据
    mov ah,0ah
    lea dx,string
    int 21h
    
    
    展开全文
  • 并行:包含同时性和并发性两方面。 同时性指两个或多个事件在同一时刻发生,并发性指两个或多个事件在同一时间段发生。 在同一时刻或同一时间段内完成两种或两种以上性质相同或不同的功能,只要在时间上互相重叠,...
  • 什么要在程序中引入访管指令呢? 这是因为用户程序只能在用户态下运行。若用户程序想要完成在用户态下无法完成的工作,该怎么办?解决这个问题要靠访管指令。访管指令本身不是特权指令,其基本功能是让程序拥有...
  • 中断信息中包含(1byte)中断类型码,CPU根据此来定位中断处理程序 中断向量表:存放中断类型码和中断处理程序的对应关系的表,存放中断处理程序的入口地址 8086的中断向量表是放在内存起始位置总共256个中断类型,...
  • 在开始写中断函数之前,我们来一起回顾一下,单片机的中断系统。中断的意思(学习过微机原理与接口技术的同学,没学过单片机,也应该知道),我们在这里就不讲了,首先来回忆下中断系统涉及到哪些问题。(1)中断源:...
  • 在单片机程序设计中,...时钟中断的电路一种时钟中断检测电路,包括:对输入时钟以不同分度值进行分频并输出多个分频时钟的分频器电路;对输入时钟和多个分频时钟进行“与”操作的“与”电路;将具有最大分度值的分频...
  • DOS中断/ BIOS中断

    2021-07-21 19:56:56
    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一、pandas是什么?...执行完当前指令后,检测到从CPU内部或者外部发送过来的中断信息,并且可以立即对所接...
  • 最近,某团外卖被爆出大数据杀熟,所谓的大数据杀熟指的是平台利用户的数据,分析你是否是钱多的人,或者是否是不...刹车,大数据杀熟的话题就说到这了,我们还是回归到今日的技术主题:什么是软中断?。 中断是什
  • 中断和软中断

    2021-08-31 21:41:19
    本文介绍了中断的分类,以Linux系统为例,介绍了操作系统的硬中断和软中断的实现机制。
  • 该楼层疑似违规已被系统折叠隐藏此楼查看此楼* 名称:外部中断* 日期:2013-9-10* 晶振:11.0592MHZ******************************************************************/#include //包含头文件,对IO进行定义,可以...
  • 三菱FX2N应用指令集程序流程应用指令1、FNC(CJ) 跳转指令2、FNC01 FNC02 FNC06(CALL SRET FEND) 调用子程序3、FNC03 FNC04 FNC05(IRET EI DI)中断处理4、FNC07(WDT)看门狗定时器5、FNC08 FNC09(FOR NEXT)程序循环...
  • 1. 中断的基本概念 1.1 中断与异常 上一章提到了,微处理器和外设有三种基本的IO方式,分别是直接程序控制方式、中断方式、DMA方式。在中断方式中,外设满足传输条件后向处理器发送中断请求信号,然后处理器调用中断...
  • 如果要你讲一下中断,你会怎么去描述一个中断的触发流程呢? 最基础的可能就是:保护现场 - 中断处理 - 恢复现场... 那保护现场做了什么事情?... CPU在什么条件、什么时候、以什么方式来响应中断? ..
  • 在一个计算机系统当中,CPU执行的程序类型包括两种:应用程序(用户自编程序)和内核程序。但是要注意到,这两种程序同时有主从关系,主要体现在前者对后者的管理上。而主要的原因是内核程序能够执行某些特权指令而...
  • 中断是指CPU在执行当前程序时系统出现了某种状况,使得CPU必须停止当前程序,而去执行另一段程序来处理的出现的紧急事务,处理结束后CPU再返回到原先暂停的程序继续执行,这个过程就称为中断
  • 中断优先级

    千次阅读 2021-07-25 04:32:43
    为使系统能及时响应并处理发生的所有中断,系统根据引起中断事件的重要性和紧迫程度,硬件将中断源分为若干个级别,称作中断优先级。在实际系统中,常常遇到多个中断源同时请求中断的情况,这时CPU必须确定首先为哪...
  • 8086中断技术

    2021-12-04 10:27:48
    中断技术一,概述1,中断中断源2,中断响应与中断处理二,lntel8086的中断系统(重点)1,外部中断2,内部中断3,中断向量表 一,概述 1,中断中断源 所谓“中断”是指在CPU正常运行程序时,由于内、外部事件引起...
  • c51编译器支持在c源程序中直接开发中断程序,从而减轻了采用编写中断服务程序的繁琐程度。为了满足在c语言源程序中直接编写中断服务程序的需要,c51编译器对函数的定义进行了扩展,增加了一个扩展关键词interrupt。...
  • 什么中断? ​ 在学习操作系统中,经常性的会看到中断这个概念,最典型的就是汇编代码中的int命令。 ​ 用一个比较通俗的概念来说,就是计算机会连接许多外接设备,包括磁盘、显示器、键盘鼠标等等,而如何处理...
  • 汇编语言—中断

    2021-10-13 20:15:59
    中断——外设随机地(指主程序运行到任何一条指令时)或程序预先安排产生中断请求信号,暂停CPU正在运行的程序,转入执行称为中断服务的子程序,中断服务完毕后,返回到主程序被中断处继续执行的过程。 中断源——...
  • CMP指令

    千次阅读 2021-07-26 04:47:21
    CMP指令是由美国斯坦福大学提出的,英文名称是Chip multiprocessors,翻译成中文就是单芯片多处理器,也指多核心其思想是将大规模并行处理器中的SMP(对称多处理器)集成到同一芯片内,各个处理器并行执行不同的进程。...
  • 汇编语言指令

    2021-01-30 09:53:46
    数据传送指令集MOV功能:把源操作数送给目的操作数语法:MOV目的操作数,源操作数格式:MOVr1,r2MOVr,mMOVm,rMOVr,dataXCHG功能:交换两个操作数的数据语法:XCHG格式:XCHGr1,r2XCHGm,rXCHGr,mPUSH,POP功能:把操作数压入或...
  • c语言中的中断函数注意事项单片机_C语言函数_中断函数(中断服务程序)在开始写中断函数之前,我们来一起回顾一下,单片机的中断系统。中断的意思(学习过微机原理与接口技术的同学,没学过单片机,也应该知道),我们在...
  • 指令系统

    2021-07-27 00:37:31
    指令系统程序功能:求两个数据之和并输出#includeint main{int a,b,sum;a=12;b=13;sum=a+b;printf("sum is %d\n",sum);//在高级语言中称为语句;在机器语言和汇编语言中称为指令。}运行结果:sum is 25基本概念:...
  • 第6章 中断与DMA第2节 中断中断系统第二节 中断中断系统2.1 中断的概念1、 中断中断系统"中断(Interrupt)"是一种操作,它使CPU中止正在执行的程序,而转入称为"中断处理程序(Interrupt Handler)"(或称中断...
  • 中断中断处理流程

    千次阅读 2020-12-20 04:41:20
    1. 中断概念中断是指由于接收到来自外围硬件(相对于中央处理器和内存)的异步信号或来自软件的同步信号,而进行相应的硬件/软件处理。...软件中断则通常作为CPU指令集中的一个指令,以可编程的方式直接指...
  • 【信捷plc标记与中断处理小知识】有关信捷plc的编程知识,在信捷plc中标记P、I用于分支与中断,标记I一般用于中断功能,包括外部中断、定时中断等场合,分支用的标记(P)用于条件跳转或子程序的跳转目标。一、标记P、...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 155,372
精华内容 62,148
关键字:

中断指令包括什么