3.JMP指令 理无条件转移:程序无条件改变执行顺序 替>JMP指令相当于高级语言的goo语句 技 术 MP label 第 ;程序转向 label标号指定的地址 版 段内相对寻址,段间直接寻址 机 JMP reg32/reg16 械 程序转向寄存器指定的地址 出 寄存器间接寻址 版 社 JMP mem32/ mem16 程序转向存储单元指定的地址 ;存储器间接寻址
微 机 原 理 与 接 口 技 术 · 第 4 版 机 械 工 业 出 版 社 3. JMP指令 ➢无条件转移:程序无条件改变执行顺序 ➢JMP指令相当于高级语言的goto语句 JMP label ;程序转向label标号指定的地址 ;段内相对寻址,段间直接寻址 JMP reg32/reg16 ;程序转向寄存器指定的地址 ;寄存器间接寻址 JMP mem32/mem16 ;程序转向存储单元指定的地址 ;存储器间接寻址
薇JMP指令的4种类型 粤1.段内转移、相对寻址 标号指明目标地址,指令代码包含位移量 來2.段内转移、间接寻址 第·通用寄存器或主存单元包含目标指令偏移地址 3.段间转移、直接寻址 械·标号包含目标指令的段地址和偏移地址 出4.段间转移、间接寻址 社·32位段用3字存储单元包含目标地址 16位段用双字存储单元包含目标地址 MASM会根据存储模式等信息自动识别
微 机 原 理 与 接 口 技 术 · 第 4 版 机 械 工 业 出 版 社 JMP指令的4种类型 1. 段内转移、相对寻址 标号指明目标地址,指令代码包含位移量 2. 段内转移、间接寻址 通用寄存器或主存单元包含目标指令偏移地址 3. 段间转移、直接寻址 标号包含目标指令的段地址和偏移地址 4. 段间转移、间接寻址 32位段用3字存储单元包含目标地址 16位段用双字存储单元包含目标地址 MASM会根据存储模式等信息自动识别
微机原理与接口 〔例4-1〕无条件转移程序-1 数据段 0000000000000000 技nvar dword 术 ;代码段 第00000000EB01 4版 jmp lab11;相对寻址 机 0000000290 械 nop 业00000003E900000001 出 版 lable jmp near ptr lab12;相对近转移 社0000008 90 nop 00000009B800000011R lable: mov eax, offset labl3
微 机 原 理 与 接 口 技 术 · 第 4 版 机 械 工 业 出 版 社 〔例4-1〕无条件转移程序-1 ; 数据段 00000000 00000000 nvar dword ? ; 代码段 00000000 EB 01 jmp labl1 ; 相对寻址 00000002 90 nop 00000003 E9 00000001 labl1: jmp near ptr labl2; 相对近转移 00000008 90 nop 00000009 B8 00000011 R labl2: mov eax,offset labl3
〔例4-1〕无条件转移程序-2 理00000EFFE0 接 Jmp eax 寄存器间接寻址 技000090 术 nop 第0000011B8000002R H lab13: mov eax, offset lab14 机00000016A300000000R 械工业出版社 mov nvar eax 数据的存储器直接寻址 000000BFF250000000R jmp(nvar“;存储器间接寻址 0000002190 mov ebx. offset nvar nop lable jmp near ptr lex ;数据的寄存器间接寻址
微 机 原 理 与 接 口 技 术 · 第 4 版 机 械 工 业 出 版 社 〔例4-1〕无条件转移程序-2 0000000E FF E0 jmp eax ; 寄存器间接寻址 00000010 90 nop 00000011 B8 00000022 R labl3: mov eax,offset labl4 00000016 A3 00000000 R mov nvar,eax 0000001B FF 25 00000000 R jmp nvar ; 存储器间接寻址 00000021 90 nop labl4: mov ebx,offset nvar jmp near ptr [ebx] ;数据的寄存器间接寻址 数据的存储器直接寻址
薇412条件转移指令 理>根据指定的条件确定程序是否发生转移 Jcc label ;条件满足,发生转移;否则,顺序执行下条指令 > LABEL表示目标地址,采用段内相对寻址 32位IA-32处理器:达到32位的全偏移量 16位80x86处理器:-128~+127间的短转移 出·条件转移指令不影响标志,但要利用标志 >cc表示利用标志判断的条件,16种、两类 ●单个标志状态作为条件 ●两数大小关系作为条件
微 机 原 理 与 接 口 技 术 · 第 4 版 机 械 工 业 出 版 社 4.1.2 条件转移指令 ➢根据指定的条件确定程序是否发生转移 Jcc label ;条件满足,发生转移;否则,顺序执行下条指令 ➢LABEL表示目标地址,采用段内相对寻址 32位IA-32处理器:达到32位的全偏移量 16位80x86处理器:-128~+127间的短转移 条件转移指令不影响标志,但要利用标志 ➢cc表示利用标志判断的条件,16种、两类 单个标志状态作为条件 两数大小关系作为条件