微机原理与接口技术6-调用子程序指令
- 格式:pdf
- 大小:62.94 KB
- 文档页数:1
第1章微型计算机基础1.1 计算机中数的表示和运算1.1.1 计算机中的数制及转换在微型计算机中,常见和常使用的数制♦十进制♦二进制♦八进制♦十六进制等。
1.十进制十进制计数特征如下:♦使用10个不同的数码符号0,1,2,3,4,5,6,7,8,9♦基数为10♦每一个数码符号根据它在数中所处的位置(即数位),按逢十进一决定其实际数值。
任意一个十进制正数D,可以写成如下形式:(D)10=D n-l³10 n-1 +D n-2³10 n-2 +…+D l³101+D0³100+D—l³10 -1+D-2³10-2+²²+D-n³10-n2.二进制在二进制计数制中,基数是2,计数的原则是“逢2进1”。
特征如下:♦使用两个不同的数码符号0和l♦基数为2♦每一个数码符号根据它在数中所处的位置(即数位),按逢二进一决定其实际数值。
任意一个二进制正数B,可以写成如下形式:(B)2=B n—l³2 n-1 +B n—2³2 n-2+…+B l³21+B0³20+B—l³2 -1+B-2³1-2+²²+B-n³1-n十进制TO二进制把十进制整数转换成二进制整数通常采用的方法是“除以2取余数”。
把十进制小数转换成二进制小数所采用的规则是“乘2取整”。
在计算机中,数的存储、运算、传输都使用二进制。
[例 1-2] 将十进制小数0.6875转换成二进制小数3.八进制在八进制计数制中,基数是8,计数的原则是“逢8进1”。
特征如下:♦使用8个不同的数码符号0,1,2,3,4,5,6,7♦基数为8♦每一个数码符号根据它在数中所处的位置(即数位),按逢八进一来决定其实际数值。
任意一个八进制正数S,可表示为:(S)8=S n—l³8 n-1+S n—2³8 n-2+²²+S1³8 1+S0³8 0 +S—l³8–1+²²+S-m³8-m转换: 将十进制整数转换成八进制整数的方法是“除以8取余数”。
第一章 习题1 什么是冯·诺依曼机?答: 冯·诺依曼在1946年提出了一个完整的现代计算机的结构雏型,它由5个部分组成,即运算器、控制器、存储器、输入设备和输出设备。
运算器负责指令的执行;控制器的作用是协调并控制计算机的各个部件按程序中排好的指令序列执行;存储器是具有记忆功能的器件,用于存放程序和需要用到的数据及运算结果;而输入/输出设备则是负责从外部设备输入程序和数据,并将运算的结果送出。
9 将下列二进制数转换为十进制数。
(1) 1101.01 (2) 111001.0011 (3) 101011.0101 (4) 111.0001解:(1) 13.25(2) 57.1875(3) 43.3125(4) 7.062510 将下列十六进制数转换为十进制数。
(1) A3.3H (2) 129.CH (3) AC.DCH (4) FAB.3H解:(1) 163.1875(2) 297.75(3) 172.859375(4) 4011.187514 将下列二进制数转换为有符号十进制数。
(1) 10000000 (2) 00110011 (3) 10010010 (4) 10001001解:(1) -0(2) 51(3) -18(4) -915 将下列十进制数转换为单精度浮点数。
(1) +1.5 (2) -10.625 (3) +100.25 (4) -1200解:(1) 0 01111111 10000000000000000000000(2) 1 10000010 01010100000000000000000(3) 0 10000101 10010001000000000000000(4) 1 10001001 00101100000000000000000 w w w .k h d a w .c o m 课后答案网第二章习题及答案(科大)必做习题:1,5,9,11,12,14,16,18,20参考答案:1 答:CPU 内部由执行单元EU 和总线接口单元BIU 组成。
微机原理与接口技术-知识点归纳微机原理知识点归纳一、选择题1.在计算机内部,一切信息的存取、处理和传送都是以( 二进制 )码形式进行的。
2.机器字长为8位的有符号数,其表示数值的范围是( -128-127 ),8位无符号数( 0-255 )。
3.运算器运算时经常会遇到\溢出\这是指( 越界 )。
4.实地址模式下,一个逻辑段的体积最大为( 64k )。
5.在下列指令的表示中,不正确的是( c )。
A.MOV AL,[BX+SI] B.JMP DONI C.DEC [SI]D.MUL CL 6.8254中的计数器共有( 6 )种工作方式。
7.在异步串行通信协议中规定,传送的每个帧中数据位长度是( 5-8 )。
8.在异步串行通信中,使用比特率来表示数据传送速率,它是指(比特每秒9.CPU执行IRET指令,从堆栈段中弹出( 6 )字节。
10.8255芯片中能够工作在双向传输方式的数据口是( A口)。
11.机器字长为8位的补码,其表示数值的范围是( -128-127 )。
12.运算器运算时经常会遇到\溢出\这是指( 越界 )。
13.在下列指令的表示中,不正确的是( A )。
A.PUSH AL B.JMP AGA C.MOV AL,[BX+SI] D.MUL CL14.如果一个程序在执行前CS=1000H,IP=2000H,该程序的起始地址是( 15.下列指令中操作数在堆栈段中的是( C ) A.MOV AX, 34H B.ADD AX,ES:[BX] C.INC WORD PTR [BP] D.SUB AX, DS:[34H]16.若SP=0200H,则执行指令PUSH AX 后,SP=( 01FEH )。
17.下列不属于PC机I/O端口分类的是( B )。
A.控制端口 B.地址端口 C.数据端口 D.状态端口 18.实模式下,70H型中断向量存放在内存中的地址是( 1C0H-1C3H )。
子程序调用指令
子程序调用指令是指一个程序在一段程序运行时,该段程序执行某个功能时,会调用由另一段子程序处理的指令的一种机器指令。
子程序调用指令的运行过程主要分为六个步骤:
1、先将书写代码时在子程序指令里声明的一个标记符(参数可以有一到多个)放入程序计数器,编程使程序跳转至对应的子程序。
2、将参数放入堆栈中。
3、程序计数器指向下一个指令(位置),将其存入返回地址寄存器中。
4、转至子程序,调用子程序中的指令,直至子程序返回跳转指令。
5、将从子程序返回的参数或结果放入程序总线中。
6、程序计数器指向堆栈中保存的返回地址,继续执行程序。
子程序调用指令的使用有很多优点,可以将程序设计的复杂性降低,提高代码的可维护性,减少重复的编码,并使程序更加结构良好和清晰。
同时,由于调用子程序时需要使用到跳转指令,也可以减少程序运行所需的时间。
然而,程序的运行效率有时也会根据子程序的大小和复杂性以及条件的多少而有所降低。
微机原理与接口技术第六章-8259A练习题及答案中断技术和中断控制器8259A练习题及答案一、填空题1.8088微处理器最多能处理256种不同类型的中断。
2.8088系统的中断向量表位于从内存地址 00000H 开始,占1K字节存储单元。
3.8088CPU响应INTR中断时,将PSW(或标志寄存器内容)和断点(或CS:IP)进堆栈保存。
4.8259A可管理8级优先级中断源,通过级联,最多可管理 64 级优先级中断源。
5.若8259A的IRR(中断请求寄存器)的内容为10H,说明IR4请求中断。
二、选择题6.8088CPU的标志寄存器中IF=1时,表示允许CPU响应______中断。
CA.内部中断B.外部中断C.可屏蔽中断D.不可屏蔽中断7.CPU在响应中断时,保存断点是指______。
DA.将用户设置的程序指令地址入栈保存B.将中断服务程序的入口地址入栈保存C.将程序状态字PSW入栈保存D.将返回地址即程序计数器PC(CS:IP)的内容入栈保存8.8088的中断向量表用于存放______。
BA.中断类型号B.中断服务程序的入口地址C.中断服务程序的返回地址D.断点地址三、判断题9.8086的可屏蔽中断的优先级高于不可屏蔽中断。
[ ] ×10.通常8259A芯片中的IR0优先级最低,IR7的优先级最高。
[ ]×11.在8088系统中,所谓中断向量就是中断服务程序入口地址。
[ ] √四、简答题12.CPU响应INTR中断的条件是什么?答:(1)INTR信号为有效电平(2)当前指令执行完毕(3)CPU开中断(IF=1)(4)没有更高级的请求(RESET , HOLD ,NMI)13.一般CPU响应中断时自动做哪些工作? 8088CPU呢?答:一般CPU在响应中断时,关中断,保存断点,识别中断源,找到中断服务程序入口地址,转入中断服务程序。
8080CPU在响应中断时,首先把PSW(或标志寄存器内容)入栈保存,其余同一般CPU.14.8088CPU在执行中断返回指令IRET时,执行什么操作?答:(1)弹出断点送CS:IP第 - 2 - 页共 13 页(2)弹出PSW送标志寄存器15.中断控制器8259A中下列寄存器的作用是什么?(1) IRR (中断请求寄存器) :保存中断源的中断请求(2) IMR (中断屏蔽寄存器) :屏蔽/允许中断源请求中断,由程序写入,1为屏蔽,0为允许(3) ISR (中断服务寄存器): 记录CPU正在为哪些中断源服务(4) IVR (中断向量寄存器): 保存中断向量号16、初使化时设置为非自动结束方式,那么在中断服务程序将结束时必须设置什么操作命令?如果不设置这种命令会发生什么现象?答案:当中断服务程序将结束时,必须发0CW2=20H为中断结束命令,执行此命令即撤消正在服务的中断请求和服务标志;否则,即使返回主程序但未退出此中断,造成中断响应的混乱。
微机原理及接⼝技术习题答案第⼀章习题及答案1. 微处理器内部包含哪三⼤部分?解:运算器、控制器和寄存器组。
2. 完成下列数制的转换①解:②0.11B=()D 解:0.11B=0.75D 。
③211.25=( )B =( )H 解:④10111.0101B=( )H=( )BCD解:10111.0101B=17.5H=23.3125D=(0010 0011.0011 0001 0010 0101)BCD3. 已知X=+1011010B ,Y =–0011011B ,设机器数为8位,分别写出X 、Y 的原码、反码和补码。
解:4. 已知X 的真值为32,Y 的真值为–19,求[]?Y X =+补解:[]00001101B X Y +=补5. 已知X=51,Y=–86,⽤补码完成下列运算,并判断是否产⽣溢出(设字长为8位)。
① X +Y ② X -Y ③ –X +Y ④ –X -Y 解:67C C 0⊕=,所以未产⽣溢出。
676. 若使与门的输出端输出⾼电平,则各输⼊端的状态是什么?解:各输⼊端为⾼电平。
7. 若使与⾮门的输出端输出低电平,则各输⼊端的状态是什么?解:各输⼊端为⾼电平。
8. 如果74LS138译码器的Y 4端输出低电平,则C 、B 、A 三个输⼊端的状态分别是什么?解:C 、B 、A 三个输⼊端的状态分别是‘1’,‘0’,‘0’。
第⼆章习题及答案1. 8086/8088CPU 由哪两⼤功能部分所组成?简述它们的主要功能? 解:8086/8088CPU 由EU 和BIU 两⼤功能部分组成。
执⾏单元EU主要完成指令的译码和执⾏。
执⾏单元通过EU控制电路从BIU中取出指令,经过指令译码形成各种定时控制信号,向EU内各功能部件发出相应的控制命令,以完成指令所规定的操作。
总线接⼝单元BIU是8086/8088同外部联系的接⼝。
它负责所有涉及外部总线的操作,包括取指令、读操作数、写操作数、地址转换和总线控制等。
《微机原理及接口技术》复习总结综合版——简答题第一篇:《微机原理及接口技术》复习总结综合版——简答题综合版—简答题欢迎使用KNKJ2012DXZY系统《微机原理及接口技术》学科复习综合版—简答题1、微型计算机由那些基本功能部件组成?微处理器、主存储器、系统总线、辅助存储器、输入/输出(I/O)接口和输入/输出设备2、什么是(计算机)总线?在计算机中,连接CPU与各个功能部件之间的一组公共线路,称为总线3、微型计算机系统的基本组成?微型计算机,系统软件,应用软件,输入输出设备4、简述冯.诺依曼型计算机基本组成。
冯.诺依曼型计算机是由运算器,控制器,存储器,输入设备和输出设备组成的。
其中,运算器是对信息进行加工和运算的部件;控制器是整个计算机的控制中心,所以数值计算和信息的输入,输出都有是在控制器的统一指挥下进行的;存储器是用来存放数据和程序的部件,它由许多存储单元组成,每一个存储单元可以存放一个字节;输入设备是把人们编写好的程序和数据送入到计算机内部;输出设备是把运算结果告知用户。
5、什么是机器数?什么是机器数的真值?数在机器内的表示形式为机器数。
而机器数对应的数值称为机器数的真值。
6、8086与8088这两个微处理器在结构上有何相同点,有何主要区别?相同点:(1)内部均由EU、BIU两大部分组成,结构基本相同。
(2)用户编程使用的寄存器等功能部件均为16位。
(3)内部数据通路为16位。
区别 :(1)对外数据总线8086:16位,8088:8位。
(2)指令队列8086:6级,8088:4级。
7、8086CPU内部由哪两部分组成?各完成什么工作?在8086内部由BIU和EU两大部分组成,BIU主要负责和总线打交道,用于CPU与存储器和I/O接口之间进行数据交换;EU主要是将从指令队列中取得的指令加以执行。
8、简述8086内部分为EU和BIU两大功能的意义。
这两部分分开可以在执行指令的同时,从存储器中将将要执行的指令取到指令队列,使两部分并行工作,提高CPU的速度。
微机原理与接口技术(楼顺天第二版)习题解答第4章汇编语言程序设计4。
1、已知在BUF的起始处保存有N个字符的ASCII码,编写汇编语言程序实现,将这组字符串传送到缓冲区BUFR中,并且使字符串的顺序与原来的顺序相反。
答:BUF D B ”BONJOUR_BELLE"BUFR DB 100 DUP(?)MOV CX, NLEA SI, BUFLEA DI, BUFRADD DI,CXDEC DIL1:MOV AL,[SI]MOV [DI],ALINC SIDEC DILOOP L14。
2、利用移位、传送和相加指令实现AX的内容扩大10倍.答:将扩大后的结果放在DX:AX中,注意到10×AX=8×AX+2×AX。
XOR DX,DXSHL AX,1RCL DX,1MOV BX,AXMOV CX,DXSHL AX,1RCL DX, 1SHL AX, 1RCL DX, 1ADD AX, BXADC DX, CX4。
3、在缓冲区V AR中连续存放着3个16位的无符号数,编写程序实现将其按递增关系排列;如果V AR中保存的为有符号数,则再编写程序实现将其按递减关系排列。
答:V AR DW 1236,-432,3900XOR SI,,SIMOV AX,V AR[SI]CMP AX,V AR[SI+2]JAE L1XCHG AX,V AR[SI+2]L1:CMP AX, V AR[SI+4]JAE L2XCHG AX, V AR[SI+4]L2:MOV V AR[SI],AXMOV AX,V AR[SI+2]CMP AX,V AR[SI+4]JAE L3XCHG AX,V AR[SI+4]L3:MOV V AR[SI+2], AX4。
4、编写程序段实现将AL和BL中的每一位依次交叉,得到的16位字保存在DX中,例如(AL)=01100101B,(BL)=11011010B,则得到的(DX)=10110110 10011001B。
4.过程调用指令过程调用指令也称为子程序调用指令。
程序设计时常常把一些功能相对完整或相对独立的程序段编写成独立的程序模块,称为子程序,子程序的应用使程序结构清晰明了。
主程序可用调用指令调用子程序,子程序执行结束后自动返回主程序,主程序继续执行。
(1)调用指令根据子程序所在的位置,调用指令分为段内调用和段间调用。
段内调用只修改IP的值,段间调用CS和IP的值都被修改。
CALL指令在执行时第一步首先保存断点,以便子程序返回主程序时从断点处继续执行;第二步取出子程序的入口地址赋给IP或CS:IP,转去执行子程序。
指令格式:CALL OPRD功能:调用OPRD指明的子程序。
说明:OPRD可以是子程序的名字或指令标号,可以是16位的寄存器,还可以是两个或4个存储单元的内容。
例如:CALL NEAR DELAYDELAY是子程序名,NEAR是属性说明符,说明DELAY子程序与这条CALL指令在同一个代码段中,NEAR可以省略。
指令执行时首先将当前IP的内容压栈,然后IP←IP+16位位移量,程序就转移到子程序执行。
16位位移量指的是CALL指令的下一条指令与DELAY之间的差值。
这种CALL指令最常见,也称为段内直接调用。
CALL AX子程序的入口地址由AX提供,即将AX的内容赋给IP,其他动作与上面相同。
CALL WORD PTR [BX]子程序的入口地址由[BX]指明的两个内存单元提供,其他动作与上面同。
这两条指令也称为段内间接调用。
CALL FAR MEMMEM是子程序名,FAR是属性说明符,说明MEM子程序与这条CALL指令不在同一个代码段中,FAR不能省略。
指令执行时首先将当前CS和IP的内容压栈,然后将MEM入口地址的段基址取出来赋给CS,将偏移地址取出来赋给IP,程序就转移到子程序执行。
这种CALL指令较常见,也称为段间直接调用。
例如:CALL 2000H:0100H ;指令直接给出子程序的段基址和偏移地址。
第一章1-1选择1.计算机中最常用的字符信息编码是( A )A ASCIIB BCD码C 余3码D 循环码2.要MCS-51系统中,若晶振频率屡8MHz,一个机器周期等于(A ) μsA 1.5B 3C 1D 0.53.MCS-51的时钟最高频率是( A ).A 12MHzB 6 MHzC 8 MHzD 10 MHz4.以下不是构成的控制器部件(D ):A 程序计数器、B指令寄存器、C指令译码器、D存储器5.以下不是构成单片机的部件(D )A 微处理器(CPU)、B存储器C接口适配器(I\O接口电路) D 打印机6.下列不是单片机总线是(D )A 地址总线B 控制总线C 数据总线D 输出总线7.-49D的二进制补码为.( B )A 11101111B 11101101C 0001000D 111011008.十进制29的二进制表示为原码(C )A 11100010B 10101111C 00011101D 000011119. 十进制0.625转换成二进制数是( A )A 0.101B 0.111C 0.110D 0.10010 选出不是计算机中常作的码制是( D )A 原码B 反码C补码 D ASCII1-2填空1.计算机中常作的码制有原码、反码和补码2.十进制29的二进制表示为000111013.十进制数-29的8位补码表示为.111000114.单片微型机CPU、存储器和I\O接口三部分组成.5.若不使用MCS-51片内存器引脚EA必须接地.6.输入输出设备是计算机与外部世界交换信息的载体.7.十进制数-47用8位二进制补码表示为.110100018.-49D的二进制补码为.111011019.计算机中最常用的字符信息编码是ASCII10.计算机中的数称为机器数,它的实际值叫真值。
1-3判断1.我们所说的计算机实质上是计算机的硬件系统与软件系统的总称。
(√)2.MCS-51上电复位时,SBUF=00H。
第三章3-1选择题1、MOVX A,@DPTR指令中源操作数的寻址方式是(B)(A)寄存器寻址(B)寄存器间接寻址(C)直接寻址(D)立即寻址2.ORG 0003HLJMP 2000HORG 000BHLJMP 3000H 当CPU响应外部中断0后,PC的值是(B)(A)0003H (B)2000H (C)000BH (D)3000H3.执行PUSH ACC指令,MCS-51完成的操作是(A)(A)SP+1 SP (ACC)(SP)(B)(ACC)(SP)SP-1 SP(B)(C)SP-1 SP (ACC)(SP) (D)(ACC)(SP)SP+1 SP4、LCALL指令操作码地址是2000H,执行完相子程序返回指令后,PC=(D)(C)2000H (B)2001H (C)2002H (D)2003H5、51执行完MOV A,#08H后,PSW的一位被置位(D)(A)(A)C (B)F0 (C)OV (D)P6、下面条指令将MCS-51的工作寄存器置成3区(B)(A)MOV PSW,#13H (B)MOV PSW,#18H(B)SETB PSW.4 CLR PSW.3 (d) SETB PSW.3 CLR PSW.47、执行MOVX A,DPTR指令时,MCS-51产生的控制信号是(C)(D)/PSEN (B)ALE (C)/RD (D)/WR8、MOV C,#00H的寻址方式是(A)(A)位寻址(B)直接寻址(C)立即寻址(D)寄存器寻址9、ORG 0000HAJMP 0040HORG 0040HMOV SP,#00H当执行完左边的程序后,PC的值是(C)(A)0040H (B)0041H (C)0042H (D)0043H10、对程序存储器的读操作,只能使用(D)(A)MOV指令(B)PUSH指令(C)MOVX指令(D)MOVC指令3-2判断题。
4.MCS-51的相对转移指令最大负跳距是127B。
微机原理中的过程调用
在微机原理中,过程调用是一种程序设计技术,用于调用和执行子程序或函数。
它可以实现代码重用,并使程序的逻辑更加清晰和模块化。
过程调用通常涉及以下几个步骤:
1. 调用指令:程序中的一条指令用于调用过程。
通常,这个指令包含过程的名称或标识符,并提供任何必要的参数。
2. 保存返回地址:在执行过程调用之前,当前程序的返回地址(即,程序执行过程中即将执行的指令的地址)通常被保存到栈中或专门的寄存器中。
这是为了确保在过程执行完毕后能够返回到适当的位置。
3. 参数传递:过程可能需要一些输入参数来执行其任务。
这些参数通常通过寄存器、堆栈或特定的参数传递机制传递给被调用过程。
4. 执行过程:控制流进入被调用的过程,并开始执行指定的代码。
在过程执行期间,过程可以读取参数的值、执行计算和逻辑操作,并返回结果。
5. 返回:一旦过程的任务完成,控制流将返回到调用程序的下一条指令。
返回通常涉及恢复之前保存的返回地址,并将结果返回给调用者。
过程调用可以嵌套,即一个过程调用另一个过程,这样就可以构建复杂的程序结构。
在调用过程之间,数据和控制流通过寄存器、堆栈或其他机制进行传递。
在微机原理中,过程调用一般使用机器指令来实现,这些指令负责处理参数传递、返回地址的保存和恢复、控制流的转移等操作。
具体的实现会根据所用的处理器体系结构和编程语言而有所不同。
(五)控制转移指令
4. 调用子程序指令
4.1段内直接(相对)调用:子程序在同一代码段中,子程序相对地址(十六位偏移量)放在指令编码中。
用于调用一个
不知确切地址,但知标号的子程序。
格式:CALL SUBR1;SUBR1为子程序入口标号,子程序相对地址放在指令编码中,三字节指令。
操作:①IP入栈:IP H→(SP-1),IP L→(SP-2),SP-2→SP;②IP+D16→IP
4.2段内间接(绝对)调用:子程序在同一代码段中,子程序的入口地址(绝对地址)存放在寄存器或存贮单元中(两字
节或一字),用于调用一个已知确切地址的子程序。
格式:CALL (NEAR PTR) OPRD;OPRD为寄存器或存贮器,存放两字节的子程序入口偏移地址。
操作:①IP入栈:IP H→(SP-1),IP L→(SP-2),SP-2→SP;②〔OPRD〕→IP(传送一个字)
4.3段间直接(绝对)调用:子程序不在同一代码段中,子程序的入口地址(偏移地址及新的段地址)放在指令编码中。
一般用于调用一个不知确切地址,但知标号的子程序。
格式:CALL SUBR2;SUBR2为子程序入口标号,五字节指令。
操作:①CS入栈:CS H→(SP-1),CS L→(SP-2),SP-2→SP;②IP入栈:IP H→(SP-1),IP L→(SP-2),SP-2→SP;
③置新IP:指令第2、3字节→IP;④置新CS:指令第4、5字节→CS。
4.4 段间间接(绝对)调用:子程序不在同一代码段中,子程序的入口地址(偏移地址及新的段地址)在指定的存贮单元
(连续四个字节)中。
一般用于调用一个已知确切入口地址的子程序。
格式:CALL DWORD PTR OPRD;OPRD为存贮器,存放四字节的子程序入口地址。
操作:①CS入栈:CS H→(SP-1),CS L→(SP-2),SP-2→SP;②IP入栈:IP H→(SP-1),IP L→(SP-2),SP-2→SP;
③置新IP:(EA)→IP(传送一个字);④置新CS:(EA+2)→CS(传送一个字)。
5. 返回指令放在子程序末尾,以在完成子程序后返回主程序。
5.1段内返回段内调用(不管是段内直接还是段内间接调用)返回
格式:RET 操作:IP出栈即(SP)→IP,SP+2→SP。
5.2段内带立即数返回
格式:RET EXP;EXP是一个常数,也可为一表达式,将此常数或由表达式计算出的常数看成一个16位的位移量D16,用以出栈后修改堆栈指针。
操作:①IP出栈:(SP)→IP,SP+2→SP;②修改堆栈指针:SP+D16→SP。
5.3段间返回段间调用(不管是段间直接还是段间间接调用)返回
格式:RET 操作:IP出栈即(SP)→IP,SP+2→SP;CS出栈即(SP)→CS,SP+2→SP。
5.4段间带立即数返回
格式:RET EXP;EXP为常数或表达式,将此常数或由表达式计算出的常数看成一个16位的位移量D16,用以出栈后修改堆栈指针。
操作:①IP出栈:(SP)→IP,SP+2→SP;② CS出栈:(SP)→CS,SP+2→SP;③修改堆栈指针:SP+D16→SP。
!CALL指令与RET指令均不影响标志。
6. 中断指令
6.1中断格式:INT N;N#中断指令,两字节指令(CD N),N为0~255D常数,但N≠3。
操作:①PSW入栈:PSW→(SP),SP-2→SP;②清除TF、IF;③CS入栈:CS→(SP),SP-2→SP;
④IP入栈:IP→(SP),SP-2→SP;⑤进入N#中断:0000H段中(N∗4)→IP, (N∗4+2)→CS。
6.2溢出中断格式:INTO;功能相当于4号中断,但为一字节指令(CE)。
操作:如OF=1,则①PSW入栈;②清除TF、IF;③CS入栈;④IP入栈;⑤进入4#中断:(10H)→IP, (12H)→CS。
6.3断点中断指令格式:INT 3;一字节指令(CC),用于在DEBUG中调试程序。
操作:①PSW入栈;②清除TF、IF;③CS入栈;④IP入栈;⑤(000CH)→IP, (000EH)→CS,进入断点中断。
6.4从中断返回格式:IRET;任何中断都以IRET指令结束,以从中断返回主程序。
操作:①IP出栈:(SP)→IP,SP+2→SP;② CS出栈:(SP)→CS,SP+2→SP;③ PSW出栈(SP)→PSW,SP+2→SP。