相关疑难解决方法(0)

关于AT&T x86语法设计的问题

  1. 任何人都可以向我解释为什么AT&T语法中的每个常量前面都有一个"$"?
  2. 为什么所有寄存器都有'%'?
  3. 这只是让我做很多蹩脚打字的另一种尝试吗?
  4. 另外,我是唯一一个发现:16(%esp)真的违反直觉[esp+16]吗?
  5. 我知道它编译成同样的东西,但为什么有人想要输入很多'$'和'%'而不需要? - 为什么GNU选择此语法作为默认语法?
  6. 另一件事,为什么at&t语法中的每条指令前面都有一个:l? - 我知道它的操作数大小,但为什么不让汇编程序弄清楚呢?(我是否想要在不是那么大的操作数上做一个movl?)
  7. 最后一件事:为什么mov参数倒置了?

是不是合乎逻辑:

eax = 5
mov eax, 5
Run Code Online (Sandbox Code Playgroud)

at at&t是:

mov 5, eax
5 = a (? wait what ?)
Run Code Online (Sandbox Code Playgroud)

注意:我不是想乱跑.我只是不明白他们所做的设计选择,我试图了解他们为什么做了他们所做的.

x86 assembly att intel-syntax

18
推荐指数
3
解决办法
1894
查看次数

汇编语言标准

是否有定义汇编语言语法语义标准?同样,语言CISO标准,语言C#ECMA标准吗?是否只有一个标准,还是更多标准?

我这么问是因为我注意到的是汇编语言代码,看着不同的WindowsLinux的环境.我希望汇编语言不依赖于OS,它只是具有一些定义标准的语言,并且汇编程序(汇编语言的编译器)被翻译成特定处理器的机器指令.

谢谢你的答案

assembly standards

8
推荐指数
2
解决办法
1956
查看次数

标签 统计

assembly ×2

att ×1

intel-syntax ×1

standards ×1

x86 ×1