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

 更新时间:2020年01月16日 10:33:26   作者:sanlinc  
这篇文章主要介绍了汇编语言指令集之条件转移指令实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

GPT4.0+Midjourney绘画+国内大模型 会员永久免费使用!
如果你想靠AI翻身,你先需要一个靠谱的工具!

条件转移指令较多,容易混淆,在此记录一下便于日后使用

 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=0
JO jump if overflow 溢出则转移 JO OPR OF=1
JNO jump if not overflow 不溢出则转移 JNO OPR OF=0
JP/JPE jump if parity/parity even 奇偶位为1则转移 JP/JPE OPR PF=1
JNP/JNPE jump if not parity/parity even 奇偶位为0则转移 JNP/JNPE OPR PF=0
JB/JNAE/JC jump if below/not above、not equal/carry 低于/不高于或不等于/进位为1则转移 JB/JNAE/JC OPR CF=1
JNB/JAE/JNC jump if not below/ above、equal/not carry 不低于/高于或等于/进位为零则转移 JNB/JAE/JNC OPR CF=0
适用于测试某 一次运算的结果并根据其 不同特征产生程序分支 不同的处理的 情况

 2. 比较两个无符号数,并根据比较的结果转移

指令 英文 含义 格式 测试条件 等价于
JB/JNAE/JC jump if below/not above、not equal/carry 低于/不高于或不等于/进位为1则转移 JB/JNAE/JC OPR CF=1 <
JNB/JAE/JNC jump if not below/ above、equal/not carry 不低于/高于或等于/进位为零则转移 JNB/JAE/JNC OPR CF=0
JBE/JNA jump if below/equal、not above 低于/等于、不高于则转移 JBE/JNA OPR CF并ZF=1
JNBE/JA jump if not below/not equal、above 不低于/不等于、高于则转移 JNBE/JA OPR CF并ZF=0 >

 3. 比较两个带符号数,并根据比较的结果转移

指令 英文 含义 格式 测试条件 等价于
JL/JNGE jump if less、not greater/equal 小于、不大于/不等于则转移 JL/JNGE OPR SF异或CF=1 <
JNL/JGE jump if not less、greater/equal 不小于、大于/等于则转移 JNL/JGE OPR SF异或CF=0
JLE/JNG jump if less/equal、not greater 小于/等于、不大于则转移 JLE/JNG OPR (SF异或CF)并ZF=1
JNLE/JG jump if not less/not equal、 greater 不小于/不等于、大于则转移 JNLE/JG OPR (SF异或CF)并ZF=0 >

 4.测试CX或ECX的值为0则转移指令

1. LCXZ (jump if CX register is zero) CX寄存器的内容为零则转移
  格式:JCXZ OPR
  测试条件:(CX)=0
2. LECXZ (jump if ECX register is zero) ECX寄存器的内容为零则转移
  格式:JECXZ OPR  (386及其后继机型可用)
  测试条件:(ECX)=0

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

蓄力AI

微信公众号搜索 “ 脚本之家 ” ,选择关注

程序猿的那些事、送书等活动等着你

原文链接:https://blog.csdn.net/qq_36215315/article/details/79879391

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权/违法违规/事实不符,请将相关资料发送至 reterry123@163.com 进行投诉反馈,一经查实,立即处理!

相关文章

  • VScode配置8086汇编环境的过程解析

    VScode配置8086汇编环境的过程解析

    这篇文章主要介绍了VScode配置8086汇编环境的过程解析,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-04-04
  • 汇编语言 寄存器内存访问原理解析

    汇编语言 寄存器内存访问原理解析

    这篇文章主要介绍了汇编语言 寄存器内存访问原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-01-01
  • 汇编语言 输入10个数排序并输出的实现

    汇编语言 输入10个数排序并输出的实现

    这篇文章主要介绍了汇编语言 输入10个数排序并输出的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-01-01
  • UEFI开发实战SlimBootloader中调用FSP

    UEFI开发实战SlimBootloader中调用FSP

    这篇文章主要为大家介绍了UEFI开发实战SlimBootloader中调用FSP基础教程,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-06-06
  • 详解汇编语言中中括号[]作用及lea和mov指令的区别

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

    这篇文章主要介绍了汇编语言中中括号[]作用及lea和mov指令的区别,本文分步骤给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-01-01
  • 汇编语言系列之汇编实现字符串操作

    汇编语言系列之汇编实现字符串操作

    本文列出了字符串匹配和字符串输入显示的代码,对汇编语言系列之汇编实现字符串操作相关知识感兴趣的朋友跟随小编一起看看吧
    2021-11-11
  • X86汇编调试环境搭建的过程

    X86汇编调试环境搭建的过程

    本次使用vscode搭建的,需要的插件有X86 and X86_64 Assembly(也可以使用masm插件),还有一个hexdump for VSCode。 安装NASM,并添加到环境变量,下面看下X86汇编调试环境搭建的过程吧
    2021-11-11
  • 汇编:Debug的常用命令

    汇编:Debug的常用命令

    DEBUG是专门为汇编语言设计的一种调试工具,它通过步进,设置断点等方式为汇编语言程序员提供了非常有效的调试手段
    2023-08-08
  • 汇编语言中debug命令使用小结

    汇编语言中debug命令使用小结

    Debug是DOS、Windows都提供的实模式(8086方式)程序的调试工具,本文主要介绍了汇编语言中debug命令使用小结,具有一定的参考价值,感兴趣的可以了解一下
    2024-03-03
  • 汇编 JCC指令表与笔记

    汇编 JCC指令表与笔记

    这篇文章主要介绍了汇编 JCC指令表与笔记,需要的朋友可以参考下
    2020-01-01

最新评论