汇编语言比较指令cmp怎么用_汇编语言cmp指令怎么用

汇编语言比较指令cmp怎么用_汇编语言cmp指令怎么用 刚刚看到了cmp指令,一开始有点晕。后来上网找了些资料,终于看明白了,为了方便初学者,我就简单写下我的思路吧。高手绕过,谢谢!   cmp(compare)指令进行比较两个操作数的大小    例:cmpoprd1,oprd2  为第一个操作减去第二个操作数,但不影响第两个操作数的值,它影响flag的CF,ZF,OF,AF,PF.                     …

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

 刚刚看到了cmp指令,一开始有点晕。后来上网找了些资料,终于看明白了,为了方便初学者,我就简单写下我的思路吧。高手绕过,谢谢!

    cmp(compare)指令进行比较两个操作数的大小

    例:cmp oprd1,oprd2

   为第一个操作减去第二个操作数,但不影响第两个操作数的值,它影响flag的CF,ZF,OF,AF,PF.

 

                             汇编语言比较指令cmp怎么用_汇编语言cmp指令怎么用

 

                汇编语言比较指令cmp怎么用_汇编语言cmp指令怎么用

    我们怎么判断大小呢?

   若执行指令后:ZF=1,则说明两个数相等,因为zero为1说明结果为0.

   当无符号时:

   若CF=1,则说明了有进位或借位,cmp是进行的减操作,故可以看出为借位,所以,此时oprd1<oprd2;

   CF=0,则说明了无借位,但此时要注意ZF是否为0,若为0,则说明结果不为0,故此时oprd1>oprd2.

   当有符号时:

   若SF=0,OF=0 则说明了此时的值为正数,没有溢出,可以直观的看出,oprd1>oprd2;

   若SF=1,OF=0 则说明了此时的值为负数,没有溢出,则为oprd1<oprd2;

   若SF=0,OF=1 则说明了此时的值为正数,有溢出,可以看出oprd1<oprd2;

   若SF=1,OF=1则说明了此时的值为负数,有溢出,可以看出oprd1>oprd2;

   最后两个可以作出这种判断的原因是,溢出的本质问题:

   两数同为正,相加,值为负,则说明溢出

   两数同为负,相加,值为正,则说明溢出

   故有,正正得负则溢出,负负得正则溢出

   很简单的一条指令,初学者看看,我感觉我写的还挺详细的,哈哈……

 

   补充: 两数相减,同号,则不溢出;两数为异号,结果与减数符号相同,则溢出。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/184289.html原文链接:https://javaforall.net

(0)
上一篇 2022年10月9日 上午6:46
下一篇 2022年10月9日 上午7:00


相关推荐

  • Mac gif录制

    Mac gif录制LICEcapMac 版下载安装完之后 打开软件使用简单如图 1 2 调整大小 把要撸的放进去 3 录完点停止

    2026年3月19日
    2
  • svn更换服务器地址_如何登录svn服务器

    svn更换服务器地址_如何登录svn服务器描述本文适用于服务器镜像复制的情况,即svn在原本的服务器上,在服务器控制台上,将原本服务器的镜像导入新的服务器中,因此可能并不适用于所有的情况;操作步骤1.将快到期的服务器镜像进行导出,在新的服务器上进入镜像导入,等待完成即可;2.由于是镜像复制,因此原本的svn配置一致,只需要修改分支绑定的服务器域名即可,如下所示:查看迁移后的svn项目绑定的服务器信息将当前项目目录中的.svn目录进行删除(保险起见,可以先进行备份)#进入项目cd/dir…/larave

    2022年10月2日
    5
  • (无需魔法)国内就可以访问使用ChatGPT、Claude、Grok、Gemini等国外付费AI的方法

    (无需魔法)国内就可以访问使用ChatGPT、Claude、Grok、Gemini等国外付费AI的方法

    2026年3月16日
    22
  • msfconsole模块_msfconsole下载

    msfconsole模块_msfconsole下载Msfconsole提供了一个一体化的集中控制台。通过msfconsole,你可以访问和使用所有的metasploit的插件,payload,利用模块,post模块等等。Msfconsole还有第三方程序的接口,比如nmap,sqlmap等,可以直接在msfconsole里面使用。在启动MSF终端之后,可以首先输入help命令列出MSF终端所支持的命令列表,包括核心命令集和后端数据库命令集。对于其中的大部分命令,你可以输入help[COMMAND],进一步查看该命令的使用帮助信息。一、Msfconso

    2025年9月25日
    7
  • 使用Intellij IDEA新建Web项目

    使用Intellij IDEA新建Web项目在学习 Servlet 的过程中 发现大多数的教程都是使用 MyEclipse 或者 Eclipse 来创建 Web 项目 这让一直使用高逼格的 LZ 很是不爽 于是自己配置了一下使用 IntellijIDEA 新建了 Web 项目 LZ 这里使用的 IntellijIDEA 1 4 版本 我们先来看看这个版本的 IDEA 骚气的启动界面吧 1 启动了 IDEA 后 在开始界面处点击 CreateNewPro 选

    2026年3月27日
    4
  • php curl_init undefined,php运行出现Call to undefined function curl_init()的解决方法

    php curl_init undefined,php运行出现Call to undefined function curl_init()的解决方法在装好PHP后,执行类似$ch=curl_init();这样的语句,出现Calltoundefinedfunctioncurl_init()的错误提示。解决方法如下:1、在php.ini中找到extension=php_curl.dll,去掉前面的,php.ini一般在c:\windows下面。2、在php.ini中找到extension_dir=“ext”,去掉前面的;,改为ex…

    2022年7月13日
    14

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号