如何将 IA32 'cmp' 指令转换为 Y86?

2024-04-14

IA32 to Y86

ATT组装

我有以下 IA32 汇编代码:

Bubble:
.LFB0:
    pushl   %esi
    pushl   %ebx
    movl    16(%esp), %esi
    movl    12(%esp), %edx
    subl    $1, %esi
    andl    %esi, %esi
    jle .L1
.L7:
    xorl    %eax, %eax
.L5:
    movl    4(%edx,%eax,4), %ecx
    movl    (%edx,%eax,4), %ebx
    cmpl    %ebx, %ecx
    jge .L4
    movl    %ebx, 4(%edx,%eax,4)
    movl    %ecx, (%edx,%eax,4)
.L4:  
    addl    $1, %eax
    cmpl    %eax, %esi
    jg  .L5
    subl    $1, %esi
    jne .L7
.L1: 
    popl    %ebx
    popl    %esi
    ret

我正在尝试将其转换为 Y86 汇编代码。我在翻译比较指令时遇到问题:

 cmpl    %ebx, %ecx

Thanks.


Y86好像没有cmp操作说明。然而,它有sub, push and pop.

So cmpl %ebx, %ecx可以转换为如下代码:

pushl %ecx
subl  %ebx, %ecx
popl  %ecx

cmp完全一样sub,区别在于cmp不存储结果,它只更新标志。所以cmp总是可以替换为push, sub, pop(如果堆栈中有足够的空间)。

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

如何将 IA32 'cmp' 指令转换为 Y86? 的相关文章

随机推荐

  • 像素转MM方程?

    有没有可靠的公式可以计算出 MM 的像素大小 或者说这不可能跨设备 我们正在使用一个定制系统 该系统可以向许多具有不同屏幕尺寸的设备提供内容 它可以检测 MM 中的屏幕宽度 但我们希望将其准确地转换为像素大小 以便使用简单的 jquery
  • 在 Rstudio 上浏览 R 代码的高效递归方式?

    我正在使用 RStudio 我开始觉得有必要通过包代码来更深入地理解或破解某些功能 当我尝试使用导航时使用 Ctrl 单击鼠标 http www rstudio com ide docs using navigation对于包内定义的函数
  • 为什么使用散列来为大量文件创建路径名?

    我注意到在许多情况下 应用程序或数据库使用 has 来存储文件 blob 集合来确定路径和文件名 我相信预期的结果是路径永远不会太深 或者文件夹太满 文件夹中的文件 或文件夹 太多 导致访问速度变慢 编辑 示例通常是数字图书馆或存储库 尽管
  • 这是一个有效的 java 包名称吗? [复制]

    这个问题在这里已经有答案了 可能的重复 您在 Java 中的个人 爱好项目中使用什么包命名约定 https stackoverflow com questions 292169 what package naming convention
  • 如何在react-bootstrap中将导航栏居中

    我希望这是一个简单的问题 我看到有些人问了关于引导程序的类似问题 我无法将这些答案之一转化为适合我的解决方案 而且我认为无论如何可能有一个更简单的反应引导答案 代码示例在这里 https codesandbox io s yq5jvl9lz
  • 在单个 SQL 语句中使用 LIKE 和 IN 以及子查询

    我正在编写一个查询 尝试在子查询 CTE 中搜索通配符子字符串 并将此逻辑嵌套在我的 CASE 语句中 例如 SELECT CASE WHEN text IN SELECT Column1 FROM Table THEN I am in C
  • 将颜色对象“舍入”到最接近的颜色常量的最佳方法是什么?

    我将检索像素的确切颜色 并希望将该确切颜色与常量相关联 例如Color blue 有没有一种简单的方法可以 舍入 到最接近的颜色常数 此外 有没有办法定义自己的颜色常量 基本方法是通过简单地将样品与每个样品进行比较来找到与样品最接近的标准颜
  • 递归调用不在尾部位置

    假设我定义了以下函数 final def myFunc T list List T List T list match case h t gt h myFunc t case gt Nil 当我添加 tailrec 注释时 编译器给出以下错
  • /usr/local/bin:/usr/bin: 到 $PATH 的末尾而不是顶部

    我正在尝试使用 MSVC 链接器进行 ICU 代码 但是 启动 Cygwin 会将 usr local bin 和 usr bin 放在路径前面 导致 link exe 始终调用 Cygwin 版本 而不是 MSVC 版本 我该如何解决这个
  • 通过 Jquery Ajax 调用创建 TinyURL

    我已经浏览过类似的问题 但似乎找不到一个解决看似简单的调用的问题 function TweetThis url ajax url http tinyurl com api create php url url cache false suc
  • 构建错误 Ionic Android:构建失败并出现异常

    我尝试为 Android 构建一个离子应用程序 但出现此错误 What went wrong A problem occurred configuring root project android gt Could not resolve
  • 如何在训练/验证/测试中调整 pandas get_dummies?

    我有 3 组数据 训练 验证和测试 当我运行时 training x pd get dummies training x columns a b c 它给了我一定数量的功能 但是当我在验证数据上运行它时 它给了我一个不同的数字和相同的测试数
  • 如何打印数组的所有值? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我有一个数组 print r 不会显示原始文本 如何打印数组中的所有值 例如饼图 有很多方法可以做到 foreach array as
  • 将channel_priority设置为“strict”是否会影响所有Conda环境?

    我使用 R 创建了一个 Conda 环境the 康达锻造公司频道说明 https conda forge org docs user introduction html how can i install packages from con
  • 如何在 IntelliJ Spring Boot 项目中添加环境变量

    我正在尝试在我的 spring boot 中添加环境变量application properties文件 我知道如何正常添加它非 spring boot 项目 但我找不到添加环境变量的字段 这就是我看到的 这是我的 application
  • WP7 中的可滚动文本框(Skype 和 Facebook)

    基本上 我正在开发一个记笔记应用程序 用户可以随意输入 有点像WP7 中的可滚动文本框 https stackoverflow com questions 5576691 scrollable textbox in wp7 我将 TextB
  • 使用函数的输出作为另一个函数的输入 python 编码新手

    any help is greatly appreciated new to this stuff def total bases int1 int2 int3 int4 int int int int gt integer Return
  • 如何切换捆绑版本?

    我以为下面的命令会切换bundler安装 但实际上引发了错误 bundle 1 10 6 v Could not find command 1 10 6 bundle v Bundler version 1 13 6 gem list gr
  • 从 .NET 应用程序执行 shell 命令

    我需要从我的 NET 应用程序执行 shell 命令 这与os execute http lua users org wiki OsLibraryTutorial 该页面下方一点 Lua http en wikipedia org wiki
  • 如何将 IA32 'cmp' 指令转换为 Y86?

    IA32 to Y86 ATT组装 我有以下 IA32 汇编代码 Bubble LFB0 pushl esi pushl ebx movl 16 esp esi movl 12 esp edx subl 1 esi andl esi esi