汇编指令:JO、JNO、JB..的使用方法

汇编指令: JO、JNO、JB、JNB、JE、JNE、JBE、JA、JS、JNS、JP、JNP、JL、JNL、JNG、JG、JCXZ、JECXZ、JMP、JMPE

名称 功能 操作数 操作码 模数 寄存器1 寄存器2
或内存
位移量 立即数 符号 方向 芯片
型号
16位 32位
JO 溢出跳转 $70 10 8086
JNO 不溢出跳转 $71 10 8086
JB 低于跳转 $72 10 8086
JNB 不低于跳转 $73 10 8086
JE 相等跳转 $74 10 8086
JNE 不等跳转 $75 10 8086
JBE 不高于跳转 $76 10 8086
JA 高于跳转 $77 10 8086
JS 负号跳转 $78 10 8086
JNS 非负跳转 $79 10 8086
JP 奇偶跳转 $7A 10 8086
JNP 非奇偶跳转 $7B 10 8086
JL 小于跳转 $7C 10 8086
JNL 不小于跳转 $7D 10 8086
JNG 不大于跳转 $7E 10 8086
JG 大于跳转 $7F 10 8086
JO 溢出跳转 $0F80 10 386 $66
JNO 不溢出跳转 $0F81 10 386 $66
JB 低于跳转 $0F82 10 386 $66
JNB 不低于跳转 $0F83 10 386 $66
JE 相等跳转 $0F84 10 386 $66
JNE 不等跳转 $0F85 10 386 $66
JBE 不高于跳转 $0F86 10 386 $66
JA 高于跳转 $0F87 10 386 $66
JS 负号跳转 $0F88 10 386 $66
JNS 非负跳转 $0F89 10 386 $66
JP 奇偶跳转 $0F8A 10 386 $66
JNP 非奇偶跳转 $0F8B 10 386 $66
JL 小于跳转 $0F8C 10 386 $66
JNL 不小于跳转 $0F8D 10 386 $66
JNG 不大于跳转 $0F8E 10 386 $66
JG 大于跳转 $0F8F 10 386 $66
JO 溢出跳转 $0F80 10 386 $66
JNO 不溢出跳转 $0F81 10 386 $66
JB 低于跳转 $0F82 10 386 $66
JNB 不低于跳转 $0F83 10 386 $66
JE 相等跳转 $0F84 10 386 $66
JNE 不等跳转 $0F85 10 386 $66
JBE 不高于跳转 $0F86 10 386 $66
JA 高于跳转 $0F87 10 386 $66
JS 负号跳转 $0F88 10 386 $66
JNS 非负跳转 $0F89 10 386 $66
JP 奇偶跳转 $0F8A 10 386 $66
JNP 非奇偶跳转 $0F8B 10 386 $66
JL 小于跳转 $0F8C 10 386 $66
JNL 不小于跳转 $0F8D 10 386 $66
JNG 不大于跳转 $0F8E 10 386 $66
JG 大于跳转 $0F8F 10 386 $66
JCXZ 计数一六零跳转 位移8 $E3 10 8086 $67
JECXZ 计数三二零跳转 位移8 $E3 10 386 $67
JMP 跳转 寄16 $FF 11 100 3 8086 $66
JMP 跳转 寄32 $FF 11 100 3 386 $66
JMP 跳转 16[寄16] $FF 00 100 5 8086 $6766
JMP 跳转 32[寄16] $FF 00 100 5 386 $66 $67
JMP 跳转 16[寄32] $FF 00 100 5 386 $67 $66
JMP 跳转 32[寄32] $FF 00 100 5 386 $6766
JMP 跳转 16[寄16+位移8] $FF 01 100 5 9 8086 $6766
JMP 跳转 32[寄16+位移8] $FF 01 100 5 9 386 $66 $67
JMP 跳转 16[寄32+位移8] $FF 01 100 5 9 386 $67 $66
JMP 跳转 32[寄32+位移8] $FF 01 100 5 9 386 $6766
JMP 跳转 16[寄16+位移16] $FF 10 100 5 9 8086 $6766
JMP 跳转 32[寄16+位移16] $FF 10 100 5 9 386 $66 $67
JMP 跳转 16[寄32+位移32] $FF 10 100 5 9 386 $67 $66
JMP 跳转 32[寄32+位移32] $FF 10 100 5 9 386 $6766
JMP 跳转 近16[寄16] $FF 00 100 5 8086 $6766
JMP 跳转 近32[寄16] $FF 00 100 5 386 $66 $67
JMP 跳转 近16[寄32] $FF 00 100 5 386 $67 $66
JMP 跳转 近32[寄32] $FF 00 100 5 386 $6766
JMP 跳转 近16[寄16+位移8] $FF 01 100 5 9 8086 $6766
JMP 跳转 近32[寄16+位移8] $FF 01 100 5 9 386 $66 $67
JMP 跳转 近16[寄32+位移8] $FF 01 100 5 9 386 $67 $66
JMP 跳转 近32[寄32+位移8] $FF 01 100 5 9 386 $6766
JMP 跳转 近16[寄16+位移16] $FF 10 100 5 9 8086 $6766
JMP 跳转 近32[寄16+位移16] $FF 10 100 5 9 386 $66 $67
JMP 跳转 近16[寄32+位移32] $FF 10 100 5 9 386 $67 $66
JMP 跳转 近32[寄32+位移32] $FF 10 100 5 9 386 $6766
JMP 跳转 远16[寄16] $FF 00 101 5 8086 $6766
JMP 跳转 远32[寄16] $FF 00 101 5 386 $66 $67
JMP 跳转 远16[寄32] $FF 00 101 5 386 $67 $66
JMP 跳转 远32[寄32] $FF 00 101 5 386 $6766
JMP 跳转 远16[寄16+位移8] $FF 01 101 5 9 8086 $6766
JMP 跳转 远32[寄16+位移8] $FF 01 101 5 9 386 $66 $67
JMP 跳转 远16[寄32+位移8] $FF 01 101 5 9 386 $67 $66
JMP 跳转 远32[寄32+位移8] $FF 01 101 5 9 386 $6766
JMP 跳转 远16[寄16+位移16] $FF 10 101 5 9 8086 $6766
JMP 跳转 远32[寄16+位移16] $FF 10 101 5 9 386 $66 $67
JMP 跳转 远16[寄32+位移32] $FF 10 101 5 9 386 $67 $66
JMP 跳转 远32[寄32+位移32] $FF 10 101 5 9 386 $6766
JMP 跳转 $EB 10 8086
JMP 跳转 位移16 $E9 10 8086 $66
JMP 跳转 位移32 $E9 10 386 $66
JMP 跳转 $E9 10 8086 $66
JMP 跳转 $E9 10 386 $66
JMP 跳转 远(数段址:)偏移16 $EA 10 8086 $66
JMP 跳转 远(数段址:)偏移32 $EA 10 386 $66
JMP 跳转 数段址:偏移16 $EA 12 8086 $66
JMP 跳转 数段址:偏移32 $EA 12 386 $66
JMPE 跳转扩展 寄16 $0F00 11 110 3 IA64 $66
JMPE 跳转扩展 寄32 $0F00 11 110 3 IA64 $66
JMPE 跳转扩展 16[寄16] $0F00 00 110 5 IA64 $66
JMPE 跳转扩展 32[寄16] $0F00 00 110 5 IA64 $66
JMPE 跳转扩展 16[寄32] $0F00 00 110 5 IA64 $66
JMPE 跳转扩展 32[寄32] $0F00 00 110 5 IA64 $66
JMPE 跳转扩展 16[寄16+位移8] $0F00 01 110 5 9 IA64 $66
JMPE 跳转扩展 32[寄16+位移8] $0F00 01 110 5 9 IA64 $66
JMPE 跳转扩展 16[寄32+位移8] $0F00 01 110 5 9 IA64 $66
JMPE 跳转扩展 32[寄32+位移8] $0F00 01 110 5 9 IA64 $66
JMPE 跳转扩展 16[寄16+位移16] $0F00 10 110 5 9 IA64 $66
JMPE 跳转扩展 32[寄16+位移16] $0F00 10 110 5 9 IA64 $66
JMPE 跳转扩展 16[寄32+位移32] $0F00 10 110 5 9 IA64 $66
JMPE 跳转扩展 32[寄32+位移32] $0F00 10 110 5 9 IA64 $66
JMPE 跳转扩展 位移16 $0FB8 10 IA64 $66
JMPE 跳转扩展 位移32 $0FB8 10 IA64 $66

根据www.olanguage.org提供的汇编资料整理

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • 常用的汇编指令与技巧(收藏)

    1.数据传送指令:mov move r1,r2 /*r1=r2*/ move r1,#4096 /*r1=4096*/ 2.大范围的地址读取指令:ldr ldr r1,=0x123456789 /*r1=0x123456789*/ ldr r1,=label /*获取绝对地址,即label的地址*/ label: -- 3.内存访问指令(当ldr后面没有=号时为内存读取指令) 读取指令:ldr ldr r1 ,[r2,#4] /*将内存地址为r2+4的数据读取到r1中,相当于C语言中的*操作*/

  • 汇编语言AND指令实现对两个操作数进行逻辑(按位)与操作

    AND 指令在两个操作数的对应位之间进行(按位)逻辑与(AND)操作,并将结果存放在目标操作数中: AND destination,source 下列是被允许的操作数组合,但是立即操作数不能超过 32 位: AND reg, reg AND reg, mem AND reg, imm AND mem, reg AND mem, imm 操作数可以是 8 位.16 位.32 位和 64 位,但是两个操作数必须是同样大小.两个操作数的每一对对应位都遵循如下操作原则:如果两个位都是 1,则结果位等于

  • 汇编语言mov指令及基本用法

    在汇编语言中,MOV指令是数据传送指令,也是最基本的编程指令,用于将一个数据从源地址传送到目标地址(寄存器间的数据传送本质上也是一样的).其特点是不破坏源地址单元的内容. 例如: MOV AX,2000H:将16位数据2000H传送到AX寄存器 MOV AL,20H:将8位数据20H传送到AL寄存器 MOV AX,BX:将BX寄存器的16位数据传送到AX寄存器 MOV AL,[2000H]:将2000H单元的内容传送到AL寄存器 需要注意的是: (1)两个存储单元之间不能直接传送数据,即:MOV

  • 详解汇编语言MOV指令

    在汇编语言中,MOV指令是数据传送指令,也是最基本的编程指令,用于将一个数据从源地址传送到目标地址(寄存器间的数据传送本质上也是一样的). 32位指令集 1.一般传送指令 MOV指令: 格式: MOV目的-->除CS.IP以外的寄存器或存储器 源-->寄存器.存储器.立即数 ex : MOV  ECX ,EDX ;   EDX->ECX ECX =00000034H EDX =00000052H 指令执行结果: ECX = 00000052H, EDX不变,标志寄存器也不变. MOVSX

  • 汇编语言无效指令错误概述

    问题:cmpxchg8b 指令比较一个8字节值edx和EAX带有8字节值内存( 目的地操作数). 只有有效目标操作数用于此指令是内存 操作数. 如果目标操作数是一个寄存器处理器应产生一个 无效OpCode例外,执行的指令cmpxchg8b应当停止和 处理器应该执行无效OpCode异常处理程序. 此错误发生是 锁定前缀为使用cmpxchg8b指令与一个(无效)寄存器目的地 操作数. 在这种情况下,处理器可能无法启动执行无效OpCode 异常处理程序,因为总线已锁定. 这将导致系统挂起. 提示:如果

  • 汇编语言伪指令和汇编指令的区别

    [指令语句] 每一条指令语句在源程序汇编时都要产生可供计算机执行的指令代码(即目标代码),所以这种语句又叫可执行语句.每一条指令语句表示计算机具有的一个基本能力,如数据传送,两数相加或相减,移位等,而这种能力是在目标程序(指令代码的有序集合)运行时完成的,是依赖于汁算机内的中央处理器(CPU).存储器.I/O接口等硬件设备来实现的. [伪指令语句] 伪指令语句是用于指示汇编程序如何汇编源程序,所以这种语句又叫命令语句.例如源程序中的伪指令语句告诉汇编程序:该源程序如何分段,有哪些逻辑段在程序段中

  • 汇编语言lea指令使用方法解析

    这篇文章主要介绍了汇编语言lea指令使用方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 lea指令变种(按大小分类): leaw #2个字节 leal #4个字节 leaq #8个字节 lea的用法: leaq a(b, c, d), %rax 首先lea指令是mov指令的变种,据说,lea指令是x86体系结构中,是一条最古老但是从某个方面来讲又是最神奇的指令. 表面上看,它做的事情非常简单,根据括号里的源操作数来计算地址,然后把地址加

  • 16位汇编语言寄存器及指令整理(小结)

    寄存器 通用寄存器 8位寄存器 16位寄存器 32位寄存器 寄存器名称 AH,AL AX EAX 累加寄存器 BH,BL BX EBX 基地址寄存器 CH,CL CX ECX 计数器寄存器 DH,DL DX EDX 数据寄存器 SI ESI 源变址寄存器 DI EDI 源目标寄存器 DH,DL DX EDX 基地址寄存器 DH,DL DX EDX 栈顶寄存器 段寄存器 标号 名称 CS 代码段 DS 数据段 SS 栈段 ES 附加数据段 GS,FS 附加数据段(+80386) 专用寄存器 标号

  • 汇编语言指令集之条件转移指令实现

    条件转移指令较多,容易混淆,在此记录一下便于日后使用 1. 根据单个条件标志的设置情况转移 指令 英文 含义 格式 测试条件 JZ/JE jump if zero/equal 结果为零/相等则转移 JZ/JE OPR ZF=1 JNZ/JNE jump if not zero/equal 结果不为零/不相等则转移 JNZ/JNE OPR ZF=0 JS jump if sign 结果为负则转移 JS OPR SF=1 JNS jump if not sign 结果为正则转移 JNS OPR SF

  • 详解汇编语言中中括号[]作用及lea和mov指令的区别

    汇编中中括号[]作用及lea和mov指令的区别 现在总结一下:其中牵扯到lea指令,mov指令,[] 一.lea指令: 对于寄存器来说:第二个操作数是寄存器必须要加[],不然报错,这里lea就是取[寄存器]的值,如: mov eax,2 lea ebx,[eax];执行后ebx=2 mov ebx,eax;等同于上句 lea ebx,eax;编译器报错: error A2070: invalid instruction operands 对于变量来说加不加[]都是一样的效果,都是取变量的地址,相

  • 汇编 JCC指令表与笔记

    汇编-JCC 之前可以修改EIP寄存器的指令 JMP,CALL,RETN 所有JCC指令的动作->根据标志寄存器修改EIP的值 标志寄存器 EFLAGS CF(bit 0)[Carry flag] C位 若算术产生的结果在最高有效位(most-significant bit)发生进位或者借位则将其置1 反之清零 这个标志通常用来指示无符号证书运算的溢出状态 宽度溢出位.只要容器内放不下就会发生变化 MOV AL,0xFE ADD AL,2 C => 1 MOV AL,0x7F SBU AL,0

随机推荐