汇编这门语言是由谁写的(不是指课本)

汇编到机器码的翻译器叫汇编器 (assembler) 而不叫编译器。因为比编译器简单太多(基本没有优化,基本只是简单的查表翻译)。汇编器不是硬件制定的。硬件不知道汇编语言。但是汇编器确实是做硬件的人编写的。你看 Intel 的 CPU 技术手册里都用汇编语言。理论上可以为同一个硬件设计不同的汇编,但是鉴于汇编和硬件的相似度,这样设计出的两个语言差别也不会很大。所以这项工作就交给硬件设计者了。汇编语言和硬件的关系,有点类似操作系统的 ABI 与 API 的关系。理论上操作系统的 ABI 也是稳定的,可以衍生出很多 API。不过实际上只有操作系统自己的一种。
■网友
汇编基本上是机器语言的助记符,和机器语言存在几乎完全对应的关系,是很容易实现的语言。当初计算机刚造出来的时候,只能识别机器语言,科学家编写程序的时候,直接写0和1写久了也会自然而然的总结出来一些助记符来,例如用abc代表101011101,久而久之,形成了汇编语言。
■网友
指令系统仅仅是CPU 的操作码而已。就象你要操作一块集成电路要写控制字一样,只不过这个的控制自太多,所以就用助记附来表示,其实只要指令系统相同或者兼容,汇编语言就是一样的。如:intel 和 AMD CPU Micro-architecture 是很不相同的,即使Pentium 4 的Netburst 和 Pentium 3的 P6 是有很大不同的但是指令系统是兼容的,也就是用了同样的机器码 都属于IA-32指令体系。而之所以产生Itanium 是因为实际上IA-32的指令系统中的可用的寄存器太少,要经过中间的寄存器重命名,而且这个体系的CPU 属于CISC 和 RISC 的结合,外围的CISC 用到 uops (微操作码) 来操作执行核心。而多数的RISC 计算机是用机器码直接操作的,省了中间过程,性能可以更多的提高所以就产生了EPIC 体系结构。当然,就产生了新的指令系统 Itanium 就使用了大量的寄存器,几乎每种寄存器都是128个 ,但是Itanium有两种操作环境,就是 IA32 和 IA-64(注意:intel 称自己的64位Pentium 是IA-32扩展64位 ,这里的IA-64是指EPIC 的指令系统),也就是它是可以使用IA-32指令系统的,因为它有专门的解码和控制单元为IA-32服务。


    推荐阅读