在 GNU 汇编器中处理或记住 cmp 的向后参数的好方法是什么?

2023-12-20

以下是一些采用 Intel 语法的汇编代码:

// Jump to done if rsi >= rax.
cmp rsi, rax
jae done

这对我的大脑来说是有道理的:如果 rsi “高于或等于” rax,你就会跳, 匹配中参数的顺序cmp操作说明。将此与 GNU 语法:

// Jump to done if rsi >= rax.
cmp %rax, %rsi
jae done

每次这都让我很伤脑筋。当我来到这个新鲜的地方时,这并没有帮助 一段时间没有编写汇编代码后,我去查找以下语义cmp and jae查看Intel手册,发现都是用“第一”来表述的 和“第二个”操作数,它与我在屏幕上看到的不匹配 我的面前。

结束抱怨。我的问题:

  1. 还有其他表达方式吗cmp or jae到 GNU 汇编器所以 操作数的顺序cmp匹配所引用的逻辑比较 经过jae?

  2. 假设(1)的答案是否定的,有没有人有好办法让我 看看这个,以便我下次能记住它是如何工作的?有什么更好的吗 比“GNU 倒退”?

请注意,我是not询问如何在 GNU 汇编器中使用 Intel 语法;我知道这是可能的。我正在现有的 GNU 语法代码库中工作,并要求一些助记符或其他方式来帮助我在头脑中记住这一点。


在 GAS 中你可以使用.intel_syntax noprefix以获得您更熟悉的语法,但您不能只是在 AT&T 语法中交换它们。

我想说请记住,在英特尔语法中mov x,y意味着“使 x 等于 y”,而在 AT&T 语法中,它是“将 x 复制到 y”,一旦您掌握了该约定,请将其扩展到您遇到的其他指令。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 GNU 汇编器中处理或记住 cmp 的向后参数的好方法是什么? 的相关文章

随机推荐

  • 向 data.tree 中的每个节点添加数字

    我有以下树 library data tree data acme t1 lt acme gt acme levelName 1 Acme Inc 2 Accounting 3 New Software 4 New Accounting S
  • 如何在 Symfony2 中注入特定的 Doctrine 实体管理器?

    在使用相同数据库的多个项目中 我们制作了一个 Symfony2 Bundle 来映射所有常用功能 现在的问题是我们有第二个数据库 并且我们需要与第一个数据库相同类型的服务 config yml doctrine dbal default c
  • ITelephony.aidl 未在 Eclipse 中编译

    我正在使用的代码这个答案 https stackoverflow com questions 7121508 android taking complete control of phone is it possible how 71215
  • 尝试使用 Maven 从命令行运行 Java7 Hello World 项目

    尝试使用 maven 从命令行运行 Java Hello World 项目 如果我从 eclipse 中运行代码 我的项目运行正常 但如果我尝试执行 maven package 包 则会出现以下错误 这是我的来源 public class
  • 单击新页面时分页不链接到 where 子句

    我有一个 where 子句 显示 id 上一页的输入值的所有类别 分页工作为我提供了正确的页数 而 where 子句为我提供了正确的记录 但是 当我单击页码时 页面上显示的记录不是下一组所需记录 而是所有记录 到每个页面的链接未标识 whe
  • Pyspark应用foreach

    我是 Pyspark 的菜鸟 我假装玩了一下几个函数 以更好地理解如何在更现实的场景中使用它们 有一段时间 我尝试对 RDD 中的每个数字应用特定的函数 我的问题基本上是 当我尝试打印从 RDD 中获取的内容时 结果是 None My co
  • Angular 4:“找不到名称‘require’

    我正在构建一个应用程序角4 and webpack 我的组件之一中有以下内容 ngOnInit require assets js regular expresions js 当我尝试编译时 我得到 错误于 C SRC Sandbox ea
  • Performance.now() 在 requestAnimationFrame 之前调用 - Performance.now() 具有更大的 t

    所以我有一个简单的功能 var start function lastFrame performance now requestAnimationFrame t gt interval t 还有我的间隔函数 只是为了测试目的 我堵塞了每个
  • jQuery 渐变插件?

    有没有什么好的jQuery渐变插件 我找到了一个 但它使用旧的 jQuery 当我使用最新版本时 所以它可能不适用于最新版本 我不知道你是否已经测试过这些插件 JQuery 渐变插件 http www ajaxupdates com jqu
  • 如何在 ASP.NET CORE 中为多个策略创建自定义授权属性

    我想授权一个操作控制器可以通过多个策略访问 e g Authorize Policies ManageAllCalculationPolicy Policies ManageAllPriceListPolicy public async T
  • Angular 基本 href 未显示在 URL 中

    我正在尝试将我的角度应用程序部署到生产环境 该环境在 url 中具有额外的位置步骤 例如www 生产服务器 com name of my app 附加到其后 当我通过 localhost 4200 上的 Angular cli 运行它并通过
  • python 求图交集

    有谁知道如何找到这两个图的交集 下图 energ ac price compvend and energ ac1 price compven1是一组x y values 请注意以下代码 它从数据库获取值 然后绘制两个图表 我只能手动获取路口
  • javascript中的运算符和事件

    update for i in window if i onhashchange console log i window i prints onchangechange undefined 在支持 onhashchange 事件的浏览器上
  • Eclipse GIT:当前分支未配置为拉取

    我正在和一个朋友一起开发一款基于图块的 RPG 他必须离开几个星期 我们决定是时候使用版本控制 git 了 我开始后悔了 几个小时后 我们设法让它工作到以下地步 我在 github 上创建了一个存储库 将他添加为协作者 我将eclipse中
  • ElasticSearch 0.90.2 在请求端口 9300 时出现 StreamCorruptedException

    我刚刚在 Windows XP 上解压了 elasticsearch 0 90 2 zip 并启动了 bin elasticsearch bat 我已将 JAVA HOME 设置为 C Program Files Java jre7 因为第
  • 占位符不适用于 Internet Explorer

    以下格式的文本框占位符不适用于 Internet Explorer 是否有办法在 Internet Explorer 中显示 TextBox 的占位符
  • 如何恢复 pip 升级

    我刚才执行了以下命令 pip install upgrade ipykernel 然而 我得到了 Requirement already satisfied ipykernel in anaconda3 lib python3 8 site
  • Pandas DataFrame 上的条件逻辑

    如何将条件逻辑应用于 Pandas DataFrame 请参阅下面所示的数据框 data desired output 0 1 False 1 2 False 2 3 True 3 4 True 我的原始数据显示在 数据 列中 所需的输出显
  • 如何在 Java 中执行 Windows 命令?

    我正在开发一个项目 它将为您提供 Windows 命令列表 当您选择一个时 它将执行该命令 但是 我不知道该怎么做 我打算在 Visual C 或 C 中完成它 但 C 类太复杂 我不想在 Visual C 中制作表单和垃圾 在控制台应用程
  • 在 GNU 汇编器中处理或记住 cmp 的向后参数的好方法是什么?

    以下是一些采用 Intel 语法的汇编代码 Jump to done if rsi gt rax cmp rsi rax jae done 这对我的大脑来说是有道理的 如果 rsi 高于或等于 rax 你就会跳 匹配中参数的顺序cmp操作说