微机接口技术第3章_第1页
微机接口技术第3章_第2页
微机接口技术第3章_第3页
微机接口技术第3章_第4页
微机接口技术第3章_第5页
已阅读5页,还剩87页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第第3章章 80 x86的指令系统的指令系统 3.1 寻址方式寻址方式 3.2 指令系统指令系统3.1 寻址方式寻址方式v数据的寻址方式数据的寻址方式v转移地址的寻址方式转移地址的寻址方式v保护方式下的寻址方式保护方式下的寻址方式3.1 寻址方式寻址方式指令的寻址方式是指:指令中操作数的表示方式。指令中的操作数有两类:一般数据转移地址3.1.1 数据的寻址方式数据的寻址方式立即寻址寄存器寻址直接寻址寄存器间接寻址基址变址寻址寄存器相对寻址相对基址变址寻址带比例因子的变址寻址 这是指广义的80 x86的寻址方式。其中寄存器寻址汇编后的机器码最短,执行速度最快。后6种都是存储器寻址。操作数都是内存

2、单元中的数。要访问存储器操作数,必须先计算操作数的物理地址。一、立即寻址当操作数据就在指令中时,即为“立即寻址”。这种操作数称为立即数,在指令中立即数可用16进制数(以H结尾),2进制数(以B结尾)和10进制数(不需加特殊符号)表示,也可以使用撇号“”括起来的ASCII码表达的字符和字符串。注意,如果16进制数以字母AF打头,则必须在前面加上一个“0”,这是汇编程序的要求。在立即寻址中,立即数为一常量,在8086,80286处理器中,可以是字节(8位数)或字(16位数),而在80386以上的处理器中,立即数还可以是双字(32位数)。8位立即数 MOV AL,43H MOV AL,0100001

3、1B MOV AL,6716位立即数 MOV AX,4142H MOV AX,0100000101000010B MOV AX,16706 32位立即数 MOV EAX,12345678H字符或字符串MOV AL,A二 、 寄存器寻址操作数在寄存器中,即寄存器的内容就是操作数的数据,在汇编语言表示的指令中,以寄存器符号表示之,可用作80X86操作数的寄存器如表3-1所示。表3-1寄存器寻址中的寄存器寄存器操作数字长字节(8位)名字(16位)双字(32位)累加器AH,ALAXEAX基址寄存器BH,BLBXEBX计数寄存器CH,CLCXECX数据寄存器DH,DLDXEDX堆栈指针/SPESP基址指

4、针/BPEBP源变址寄存器/SIESI目的变址寄存器/DIEDI代码段寄存器/CS/数据段寄存器/DS/堆栈段寄存器/SS/E数据段寄存器/ES/F数据段寄存器/FS/G数据段寄存器/GS/注意注意:(1)当指令中的源操作数和目的操作数都是寄存器时,必须采用同样字长的寄存器,否则汇编时会出错;(2)两个操作数不能同时为段寄存器;(3)目的操作数不能是代码段寄存器,例如指令MOV CS,AX,汇编时没有出错,可得机器码为8EC8H,但执行时会发生问题。三、 存储器寻址1. 16位系统中的存储器寻址(8086)由段基址(SBA,Segment Base Address)和有效地址(EA,Effec

5、tive Address)组合而成。 段基址与段基值 段基值是段基址的前16位(2进制),存放在段寄存器中,在16位处理器中为CS、DS、SS、ES。 关键是有效地址的计算。 由BX/BP、SI/DI、DISP8/DISP16中任取1 ,2,3个组合而成。16位系统中的“物理地址”与“逻辑地址”。逻辑地址有“段基值”和“偏移地址”两部分。偏移地址即有效地址。 注意逻辑地址的隐含约定(见第2章)。80286以及32位微处理器在实地址方式下只能访问1MB内存。2. 32位系统中的存储器寻址 32位处理器可访问字节、字和双字,并有2个更大的存储单位-段和页。 可变长度(最大4GB)的段,可以同磁盘交

6、换信息,可由若干程序共享。分段是应用程序员的有效工具。 页的容量为4GB,分页是系统程序员管理一个系统的物理存储器的有用工具。 32位系统的存储器采用分段和分页的工具为系统设计员提供了极大方便。 1)三种存储器地址定义(1)逻辑地址:虚拟地址。 由一个16位的段选择子和32位偏移量组成。 16位选择子中13位为“索引值”,每个索引值,可从段描述子表中找到1个描述子(即找到一个存储段)。每个表长64KB。可存放8K个描述子(即8K个段),二种表(GDT、LDT)各可表示8K个描述子,共16K个描述子。每个任务的虚拟地址可有64TB(246)的逻辑地址。(2)线性地址 32位微处理器芯片内的分段部

7、件将逻辑地址转换为32 位的线性地址空间。(3)物理地址 32位微处理器芯片内的分页部件将线性地址空间转换为物理地址空间-即处理器芯片的引脚上出现的地址。 若不允许分页操作,则分段后的32 位线性地址即为物理地址。2). 32位寻址方式的特点(1)通用寄存器都可用做基址寄存器;(2)通用寄存器除ESP外都可用做变址寄存器;(3)可以1,2,4或8的比例因子对变址值进行换算。3) 9种存储器寻址方式 32位系统提供了9种存储器寻址方式,这9种寻址方式提供了操作数所在的存储单元的有效地址。存储单元的段基地址和有效地址EA(即偏移地址)组成存储单元的“线性地址”(Linear Address),在3

8、2位微处理器中,线性地址经过分页部件(PU,Paging Unit)后生成物理地址。线性地址的形成如图3-2所示。段基地址由某一个段寄存器对应的描述子寄存器确定,而有效地址EA由基址、变址、位移量和比例因子四部分按一定表达式组合而成。EA = 基址寄存器 + 变址寄存器 比例因子 + 位移量式中各组成部分的说明如下:(1)位移量为指令中提供的一个8位或16位值;(2)基址寄存器通用寄存器都可用作基址寄存器,其内容即基址值,通常为编译器所用,指向局部变量区的首地址;(3)变址寄存器除ESP之外的所有通用寄存器都可用作变址寄存器,其内容即为变址值,变址寄存器用于访问数组元素或字符串;(4)比例因子

9、变址寄存器的值可以乘以1、2、4或8(对应于操作数的长度为1、2、4或8个字节)的比例因子,这种寻址方式对于访问数组或结构特别有用。 寻址方式 基址 变址 比例因子 位移量 1 直接寻址 * 2 寄存器寻址 *# *# 3 基址寻址 * * 4 变址寻址 * * 5 比例变址寻址 * * * 6 基址变址寻址 * * 7 基址比例变址寻址 * * * 8 基址变址位移寻址 * * * 9 基址比例变址位移寻址 * * * * 9种存储器寻址方式#表示基址、变址任取一个3.1.2转移地址的寻址方式转移地址的寻址方式 控制转移指令中的操作数是转移的目的地址,称为转移地址。三种寻址方式: 直接寻址

10、寄存器寻址 存储器寻址一、直接寻址 直接给出转移地址以标号(符号地址)表示。 标号的类型属性有NEAR,FAR,SHORT。二、寄存器寻址 给出寄存器名,寄存器的内容即转移的目的地址(仅段内用)。三、存储器寻址 指令中给出内存的有效地址EA,转移去的目的地址在数据段的内存单元中。3.1.3 保护方式下的寻址方式保护方式下的寻址方式一、80386的工作方式 1. 实方式(实地址方式) 系统启动后,自动进入实方式。采用类似8086的体系结构。主要特点:(1)寻址方式、存储器管理、中断处理同8086;(2)操作数默认为16位,允许访问32位寄存器;(3)不使用虚拟存储器,最大地址范围仍为1MB,只采

11、用分段部件,每段最大为64KB;(4)存储器中保留2个固定的区域;初始化程序区FFFFFHFFFF0H,中断向量表0003FFH00000H。(5)80386指令集中绝大多数可以运行。2. 保护方式 “保护”是指在执行多任务操作时,对不同任务使用的虚拟存储器空间进行完全的隔离,保护每个任务顺利执行。 系统启动后先进入实方式,在CR0的PE位=1时,完成系统初始化后,立即转入保护方式。 这种方式提供了多任务环境下的各种复杂功能以及对复杂存储器组织的管理机制。 这是80386最常用的方式,只有在此方式下,80386才能发挥其固有的强大功能。主要特点:(1)采用虚拟地址空间、线性地址空间和物理地址空

12、间来描述存储器;通过描述子、选择子的数据结构来实现对内存的访问;(2)强大的寻址空间。每个任务的最大虚拟地址空间可达64TB(246);(3)使用4级保护功能,可实现程序与程序、用户与用户、用户与OS之间的隔离和保护,为多任务OS提供优化支持;(4)既可进行16位运算,又可进行32位运算,只要在保护方式,就能启动其分页单元,以支持虚拟内存。3. 虚拟8086方式(V86方式) “虚拟8086”是指一个多任务的环境,即模拟多个8086的工作方式,在此方式下,80386被模拟成多个8086处理器并行工作。虚拟8086方式允许80386将内存划分成若干部分,每一个部分由OS分配给不同的应用程序,而应

13、用程序、数据以及内存管理程序等部分则存放在所分配的内存中。因此OS可根据“时间上的平均分配”或“优先权”,分给每个应用程序的执行时间。主要特点:(1)可执行原来采用8086书写的应用程序;(2)段寄存器的用法同实方式;(3)可采用分页方式,将内存以4KB为单位划分,4KB为一“页”,比分段划分要细。从而可以处理较小的应用程序和数据段。 V86下线性地址是20位-1MB空间。但由于线性地址可以通过页表映射到任何32 位物理地址,所以应用程序可在80386现有实际内存的任何地方执行。 在80386多任务系统中,可以使其中一个或几个任务使用V86方式,此时,一个任务所用的全部页面可以定位于某个物理地

14、址空间,另一个任务的页面可以定位于其他区域,即每个V86方式下的任务可以转换到物理存储器的不同位置,这样把存储器虚拟化了。故称为“虚拟8086方式”。 (4)应用程序在最低特权的3段上运行,80386指令系统中的特权指令不能使用。4. 实地址方式与V86方式的主要区别这是两种类似8086的工作方式(1) 实方式的内存管理只采用分段,V86方式既分段又分页;(2) 实方式的最大寻址空间为1MB。V86每个任务可在整个内存空间寻址,即1MB的寻址空间可在整个存储器范围移动。V86的实际寻址空间为4GB。(3) 实方式下微处理器的所有保护机制都 不起作用。不支持多任务。 V86方式既可运行8086程

15、序,又支持多任务操作。 V86方式可针对80386保护方式中多任务操作的一个任务。 实方式总是针对整个80386系统。二、保护方式下的存储管理两大机制:地址转换机制保护机制1.地址转换机制使操作系统可以灵活地把存储区分配给多个任务。虚拟地址(逻辑地址)空间可达64TB(246),用户在程序中所使用的地址都是由“段选择子”和“偏移量”两部分组成的虚拟地址。 程序在系统中运行时,由存储管理机制把虚拟地址转换成物理地址。 80386以上的处理器中集成有存储管理部件MMU(Memory Management Unit),采用分段机制和分页机制以实现两级虚拟-物理地址的转换。2. 保护机制支持两个主要的

16、保护机制(1)通过给每个任务分配不同的虚拟地址空间,使任务之间完全隔离,每个任务有不同的虚拟地址-物理地址的转换映射;(2)任务内的保护机制操作,保护操作系统存储段及特别的处理器寄存器,使其不被应用程序所破坏。两种地址空间:局部地址空间: 由一个任务私有的虚拟地址空间,不被其他任务共享的虚拟地址部分。局部地址空间中的代码和数据是任务私有;需要与系统中的其它任务隔离。全局地址空间: 各个任务公用的一部分虚拟地址空间。操作系统存储在此空间。使操作系统由所有任务共享,并且可以在每个任务对其进行访问时,仍保护了操作系统,使其不被应用程序破坏。 32位处理器支持4级保护的特权级(Privilege Le

17、vel)03级最内层为0级最高。 每个存储段都同一个特权级相联系,只有足够级别的程序才可对相应的段进行访问。 特权级的典型用法见教材。0 - 操作系统核心1 - 操作系统的系统服务程序2 - 操作系统扩展-应用系统程序3 - 应用程序 一个任务的操作系统程序、中断服务程序和其它系统软件,处于不同的特权层而得到保护,因而可与应用程序在同一地址空间内共处而不发生越权操作。三、保护方式下的存储器寻址1.描述子和选择子 在保护方式下实现存储器操作数寻址的数据结构;v 80386的分段机制 段基地址、段限和其它属性v 段描述子 Descriptor 用来描述对应存储段的一些基本特性保护方式下的存储器寻址

18、段选择子 Selectorv 用来到描述子表中选择对应存储段的描述子。v 描述子表 GDT 全局描述子表 LDT 局部描述子表 IDT 中断描述子表 Global Local Descriptor InterruptGDTLDT 8Bytes64KBytesIDT 256Bytes以上。最多256个描述子。(为Intel保留的32个中断描述子)v 描述子表寄存器v GDTR - 48位寄存器 32位 Base 16位 Limitv IDTR- 48位寄存器v LDTR- 16位寄存器v 选择子15 Index TI RPL3 21 02. 寻址过程(1) 准备工作 - 定义描述子表 在实方式用

19、LGDT指令装入GDTR LGDT QWORD PTR n 在保护方式,用LLDT指令装入LDTR LDTR为16位选择子(2) 寻址a) 给出48位虚地址指针 47 32 31 0 Selector Offset Selector值可由MOV指令对DS/SS/ES/FS/GS赋值。 Offset由指令寻址方式指定b) 从段寄存器中取出选择子c) 选择子中TI=0 描述子在GDT中进入e)d)选择子中TI=1,描述子在LDT中v 从LDTR中取出LDT的Selector;v 从Selector中取出Index, 8;v GDT的段基址+8Index,从GDT中取出该LDT的描述子;v 从描述子

20、中取出LDT的段基址即LDT的表基地址;e) 取出段寄存器的选择子中的Index8加到LDT/GDT的表基地址,从LDT/GDT中取出对应的描述子;f)从描述子中取出BASE(段基地址)g) 48位地址指针中Offset +BASE得32位线性地址。注意:a)在步骤e)中Index8要与表内值比较是否超过,并对描述子的AR(Access Right)进行检查,该访问权是否合法。若通过检查,则把该描述子内容装入对应的Cache(段描述子寄存器)中。b) 步骤e)后,用已装入Cache的访问权字节中的TYPE字段所规定的内容,对有关存储段引用请求进行检查;且对地址指针中的Offset进行检查。3.

21、分段机制和分页机制 分段机制使逻辑地址转换为线性地址;分页机制使线性地址转换为物理地址。3.2 指令系统指令系统v 8086指令概述指令概述v 80386以上微处理系统的指令系统以上微处理系统的指令系统3.2 指令系统指令系统3.2.1 8086指令概述指令概述按功 能可分为6大类:数据传送指令算术运算指令位处理指令串操作指令控制转移指令处理器控制指令一 、数据传送指令 (14条)src/s 源,dest/d 目的reg/r 寄存器mem/m 存储器(内存)sreg 段寄存器B 字节 , W 字数据传送指令表数据传送指令表助记符功能通用数据传送指令MOV传送字节或字PUSH字入栈POP字出栈X

22、CHG交换字节或字XLAT字节转换地址目标传送指令LEA装入有效地址LDS将指针变量装入寄存器及DSLES将指针变量装入寄存器及ES标志传送指令LAHF标志寄存器低字节送AHSAHFAH值送标志寄存器低字节PUSHF标志寄存器内容进栈POPF标志寄存器内容出栈I/O指令IN输入字节或字OUT输出字节或字1 . MOV dest,src; B/W,d svS:lmm,reg,memvd:reg,mems与d不能同时为memv对SR(DS/SS/ES)赋值MOVAX,lmmMOVSR,AX对CS不能用MOV赋值2 . PUSH src;W, SP SP-2 (SP+1)(SP) src POP d

23、est; W, dest (SP+1)(SP) SP SP+23 . XCHG dest,src; B/W, dest src src dest4 . XLAT; B, XLAT 变量名/表格首地址 B, AL BX+AL 5 . LEA reg16,mem ;W, reg EAsrc ( load effective address)6 . 传送是复制(COPY) ,除XCHG。XLAT外都不改变src。7 . 除POPF ,SAHF外,不影响FR。二、算术运算指令二、算术运算指令 (20条条)助记符功能加法指令ADD加法ADC带进位的加法INC增量(加1)AAA加法的ASCII修正DAA加

24、法的十进制修正减法指令SUB减法SBB带借位的减法DEC减量(减1)NEG求补(变负)CMP比较AAS减法的ASCII修正DAS减法的十进制修正乘法指令MUL无符号数乘法IMUL整数乘法AAM乘法的ASCII修正除法指令DIV无符号数除法IDIV整数除法AAD除法的ASCII修正CBW字节转换为字CWD字转换为双字1 . 加法指令 ADD dest , src ; B/ W dest+src dest ADC dest , src ; B/ W dest+src+CF dest dest 和 src 可以是带符号数,也可以是无符号数。 INC dest ; B/ W dest dest + 1

25、 INC 指令不影响CF。2 . 减法指令 SUB dest , src ; B/W dest-src dest SBB dest ,src ; B/W dest-src-CF destCMP dest , src ; B/W dest-src DEC dest ; B/W dest 1 destNEG dest ; B/W +1 destdest对NEG的三种理解: l) dest求补(全部位取反加l); 2) dest变负; 3) 零减dest。3 . 修正指令DAA,DAS当BCD码进行加法或减法运算时,在加法指令和减法指令后,必须加上一条DAA指令(加法)或DAS(减法)指令。 DAA

26、和DAS指令对AL进行加6修正。4 . 乘除法指令(乘法) MUL,DIV MUL r/m; (B/W) 当r/m为8位时,指令操作为 AL r/m 送AX 当r/m为16位时,指令操作为AX r/m 送DX_ AX5 . 乘除法指令(除法)DIV r/m; (B/W) 当r/m为8位时,指令操作为:AX/( r/m )B ,结果商送AL,余数送AH; 当r/m为l6位时,指令操作为:DX_AX/(r/m)w,结果商送AX,余数送DX。 6 . 扩展指令CBW; AL转换为AX,且AX=ALCWD; AX转换为DX AX, 且DX_AX=AX都为符号扩展。三、位处理指令三、位处理指令 ( 12

27、条条)助记符功能逻辑运算指令AND逻辑“与”OR逻辑“或”NOT逻辑“非”XOR逻辑“异或”TEST测试移位指令SHL逻辑左移SAL算术左移SHR逻辑右移SAR算术右移循环移位指令ROL循环左移ROR循环右移RCL通过CF循环左移RCR通过CF循环右移1 . 逻辑运算指令AND、OR、XOR、TEST 、NOT前三条指令执行后,同时使CF=0TEST 指令实现”与”操作,但不改变目的操作数,将运算结果的特性反映在标志寄存器中NOT 指令不影响标志位。2 . 移位指令SHL / SAL 、( 逻辑左移 /算术左移 ) ,实现相同操作;功能: 0(补零)CFdestSHR 逻辑右移SAR 算术右移

28、,实现带符号数被2除,朝小取整。(SHshift,Aarithmetic) 0dest CFdest CF3 . 循环移位指令ROL 小循环左移ROR 小循环右移CFdest dest CFRCL 带进位位左移 (大循环左移 )RCR 带进位位右移 (大循环右移 )CFdest dest CF注意:移位和循环移位后移出位都送标志位CF指令格式: SHL /ROR reg /mem , count count = 1 ( 移位次数为1时 ) count = CL ( 移位次数大于1时 )例如:AL逻辑右移4次的指令为: MOV CL , 4 SHR AL , CL四、串操作指令(共四、串操作指令

29、(共8条)条)助记符功能串操作指令MOV(MOVSB,MOVSW) 串传送(字节传送,字传送)CMPS(CMPSB,CMPSW) 串比较(字节比较,字比较)STOS(STOSB,STOSW)存入串(存入字节,存入字)LODS(LODSB,LODSW) 取出串(取出字节,取出字)SCAS(SCASB,SCASW)扫描串(扫描字节,扫描子)重复前缀REP重复操作REPE/REPZ等于/为零重复REPNE/REPNZ不等于/不为零重复1. MOVSB; DS:SIB ES:DIB, SI/DI +/- 1CMPSB; DS:SI BES:DIB, SI/DI+/-1STOSB; AL ES : DI

30、B, DI+/-1LODSB;DS:SIB AL, SI+/-1SCASB; ALES;DIB, DI+/-12 .若MOVSB改为MOVSW,则改为字操作 DS: SIB 和ES: DIB 改为DS: SIW 和ES: DIWCMPSW同MOVSW,STOSW、LODSW和SCASW指令中将原来的AL改为AX而SI/DI +/-1 改为 SI/DI +/-23 .若五条串操作指令中来标明B或W,则指令格式为:MOVS dest , srcCMPS src,dest;src-destSTOS destLODS srcSCAS dest式中dest和src 都为变量名,变量定义时所定义的类型属性

31、决定串操作中的操作类型。 4. 5条重复前缀指令例题:要求把内存区中2000H:5000H开始的100个字节 数传送到3000H:4000H中,用串操作指令实现之。注意,MOVSB指令每执行一次只能传送一个字节,所以必须编写一段循环程序,MOV AX , 2000H MOV DS , AX MOV AX , 3000HMOV ES , AX MOV SI , 5000H MOV DI , 4000HMOV CX ,100LOP:MOVSBDEC CXJNZ LOP若采用重复前缀REP,则最后三条指令可改为: REP MOVSBREP的功能是:重复执行右边的串操作指令CX次另有4条重复前缀指令:

32、REPZ若CX0,且ZF=1,则重复执行右边的串操作指令,每执行一次CX-1 若CX=0,或ZF=0,则结束串操作REPNZ若CX0,且ZF=0,则重复执行右边的串操作指令,每执行一次CX-1 若CX=0,或ZF=1,则结束串操作 REPE与REPZ功能一样,REPNE与REPNZ功能一样。 通常REP前缀用于MOVS/MOVSB/MOVSW和STOS/SORSB/STOSW而REPZ/REPE/ REPNZ/ REPNE 前缓用于CMPS/CMPSB/CMPSW 和SCAS/SCASB/SCASW。五、程序转移指令五、程序转移指令(29条条)助记符功能无条件转移指令CALL调用过程(子过程)

33、RET从过程(子程序)返回JMP无条件转移条件转移指令JA/JNBE高于/不低于等于,转移JAE/JNB高于等于/不低于,转移JB/JNAE低于/不高于等于,转移JBE/JNA低于等于/不高于,转移JC有进位(借位),转移JE/JZ等于/为零,转移JG/JNLE大于/不小于等于,转移JGE/JNL大于等于/不小于,转移JL/JNGE小于/不大于等于,转移JLE/JNG小于等于/不大于,转移JNC无进位(借位),转移条件转移指令JNE/JNZ不等于/不为零,转移JNO不溢出,转移JNP/JPOPF为“0”/奇状态,转移JNSSF为“0”,转移JO溢出,转移JP/JPEPF为“1”/偶状态,转移J

34、SSF为“1”,转移JCXZ寄存器CX = 0,转移重复控制指令LOOP循环LOOPE/LOOPZ等于/为零,循环LOOPNE/LOOPNZ不等于/不为零,循环中断指令INT中断INT3断点中断INTO溢出中断IRET中断返回1 . 无条件跳转( 1 ) JMP 标号 / reg / mem 标号 ( label ) 是代码段中一条指令的符号地址,它可以作为程序转移指令的操作数使用。标号有三属性 段属性(段基值) 偏移量属性(偏移地址) 类型属性(NEAR或FAR)标号的类型属性为FAR,则实现段间转移,指令为5字节长;标号的类型属性为NEAR,则实现段内转移,指令为3字节长;标号的类型属性为

35、NEAR中的SHORT,则实现段内短转移,指令为2字节长。段间跳转时机器指令中的地址为绝对地址,是二个16位地址,偏移地址在前,段基值在后;段内跳转时机器指令中的地址为相对地址,是偏移地址的差值(16位);段内短跳转时机器指令中的地址为相对地址,是偏移地址的差值(8位)。 JMP BX ; NEAR,功能为: IP BX JMP BX BX 必须写明:是WORD PTR BX, 还是 DWORD PTR BX若为WORD PTR BX,则为段内跳转,功能是用BXW送IP;若为DWORD PTR BX,则为段间跳转,功能是用BXDW送CS:IP。 JMP指令的汇编表示 分类范围寻址方式操作数类型

36、操作数使用方式示例段内转移直接标号1字节立即数加入IPJMP SHORT STARTJMP START2字节立即数加入IP间接寄存器操作数送入IPJMP BXJMP JTABLEBX存储器操作数(2字节)送入IP段间转移直接标号(4字节立即数)送入IP/CSJMP START1间接存储器操作数(4字节)送入IP/CSJMP JTABLE1BX( 2 ) CALL 标号 / reg / mem调用指令,用来调用一个子程序(过程),又称为转子指令。CALL指令的格式同JMP指令,区别在于CALL指令必须保存断点(CS:IP),这是由硬件来实现的。( 3 ) RET返回指令,从子程序返回主程序。2 . 条件转移指令vJC / JZ / JS /JO / JP当CF /ZF /SF/ OF /PF =1时跳转;vJNC /JNZ / JNS /JNO

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论