相关疑难解决方法(0)

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

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

// Jump to done if rsi >= rax.
cmp rsi, rax
jae done
Run Code Online (Sandbox Code Playgroud)

这对我的大脑有意义:如果rsi"高于或等于"rax,则跳转,匹配指令中参数的顺序cmp.将其与GNU语法进行比较:

// Jump to done if rsi >= rax.
cmp %rax, %rsi
jae done
Run Code Online (Sandbox Code Playgroud)

这每次伤害我的大脑.它没有帮助,当我来到这个新的后一段时间不写汇编代码我去看看的语义cmp ,并jae在Intel手册,发现这一切都在"第一","第二"操作,来表述其与我面前在屏幕上看到的不符.

结束抱怨.我的问题:

  1. 有没有其他方式表达cmpjaeGNU汇编程序,以便操作数的顺序cmp与逻辑比较匹配jae

  2. 假设(1)的答案是否定的,是否有人有一个很好的方式让我看看这个,以便我能记住下次它是如何工作的?还有比"GNU倒退"更好的东西吗?

请注意,我不是要问如何在GNU汇编程序中使用Intel语法; 我知道这是可能的.我正在使用现有的GNU语法代码库,并且正在寻求一些助记符或其他方式来帮助我保持这一点.

x86 assembly gnu gnu-assembler

7
推荐指数
1
解决办法
294
查看次数

设计AT&T汇编语法的最初原因是什么?

在x86或amd64上使用汇编指令时,程序员可以使用"Intel"(即nasm编译器)或"AT&T"(即gas编译器)汇编语法."Intel"语法在Windows上更受欢迎,但"AT&T"在UNIX(类似)系统上更受欢迎.

但是英特尔和AMD手册,以及芯片创建者创建的手册都使用"英特尔"语法.

我想知道,"AT&T"语法设计背后的原始想法是什么?浮动处理器创建者使用的符号有什么好处?

x86 assembly intel att

7
推荐指数
1
解决办法
1255
查看次数

x86-64 操作数的汇编顺序

x86-64汇编中操作数的顺序是什么?:指令目标,源或:指令源,目标

我有三本书和两种不同的方法!

assembly x86-64 att intel-syntax

3
推荐指数
1
解决办法
1207
查看次数

汇编语言语法标准

为什么即使对于相同的操作系统和指令集,汇编语言的语法不同?例如NASM不同的语法MASM的窗口.为什么没有任何标准的语法?

syntax assembly masm nasm

0
推荐指数
1
解决办法
148
查看次数

标签 统计

assembly ×4

att ×2

x86 ×2

gnu ×1

gnu-assembler ×1

intel ×1

intel-syntax ×1

masm ×1

nasm ×1

syntax ×1

x86-64 ×1