- 主题:大厂汇编+GNU AS 通用汇编语言是真相,Intel的二元论就是胡说
MS用的叫Intel汇编,Linux用的叫AT&T汇编
Intel的指令手册就是这么写的
【 在 darkk (darkk体国经野 义尚光大) 的大作中提到: 】
: 似乎有两个汇编语言……一个是各种大厂商维护的,并且跟国内的汇编语言教科书即dos x86基本兼容的汇编,搜索引擎出来的结果也是这个汇编,这个汇编除了windows平台相关,似乎看不到什么人还在用来开发新东西了……
: 还有一个汇编是在 gnu binunits as 那里定义的汇编,这个汇编其实是裁剪了很多不同的处理器的汇编,变成了某种 common assembly 那种东西,似乎可以看成许多种处理器的汇编语言的并集的一个子集定义,但又有gnu加进去的东西。。他们有一个统一的手册可以在官网查到的。
: 基本上可以认为那种"不同的处理器的汇编语言是不同的"已经是不对的了,对了一部分,但不全对。。在实践中,gnu as已经定义出了一种"通用的汇编"。。似乎可以认为linux就是用这种汇编写的。。(还有其他的东西)
: ...................
--
FROM 27.91.71.*
最早的时候,汇编器和指令手册是硬件的附属品,硬件厂商用什么,什么就成了事实标准
【 在 eggcar (eggcar) 的大作中提到: 】
: 本来就是跟着编译器走的,这有啥好奇怪的
: 还以为x86跟arm riscv mips统一了呢
--
FROM 27.91.71.*
现在流行统一的写法主要是因为开源了,软件维护者不愿意支持几百种汇编语法,闭源软件的话就无所谓,反正汇编器是人家写好了的
【 在 eggcar (eggcar) 的大作中提到: 】
: 你也说了是最早的时候了
: 现在谁还会再为自家cpu搞一套专门的汇编语法出来?不都是要靠编译器的大树
: 然鹅指令又不通用,光语法通用,也就是方便了编译器维护,降低了一丢丢使用门槛,asm代码又不能移植
: ...................
--
FROM 27.91.71.*
Intel的汇编实际上是一种更古老的,省存储器的风格,6502汇编甚至阿波罗11号源代码也是类似的风格。早期计算机资源很贵,源代码多一个符号,老板就要少N个美元
【 在 hgoldfish (老鱼) 的大作中提到: 】
: 语法是差不多的。但是每种机器的指令是不一样的。
: 很明显,X86 和 ARM 的寄存器名字都不一样。内存访问方式也不一样。你为 x86 写的汇编,没法编译到 arm 里面跑。
--
FROM 27.91.71.*
如果直接嵌入汇编,那么支持几十种体系结构的C代码就没法看了
【 在 hgoldfish (老鱼) 的大作中提到: 】
: 说到这个。奇怪这些编译器不如直接用 gcc 支持的汇编算了。gcc 也可以编译 .S 文件,不一定要内联啊。
--
FROM 27.91.71.*