我知道有许多版本的汇编编程语言,例如x86,ARM,MIPS,Motorola等......它们运行在各种架构上。但是,这是为什么?装配如何工作?为什么我不能在不同的架构上使用一个版本的程序集。在最简单的层面上,当然我们只是处理电流的流动,为什么会出现这种限制,这些架构如何区别?
此外,假设我想制作一个在自定义架构上运行的操作系统 - 我制作的操作系统。那么我是否必须创建自己的汇编语言?是否还需要汇编语言才能创建操作系统?
答案 0 :(得分:5)
汇编语言在很大程度上只是一种人类可读/可管理的机器代码形式。处理器运行在机器代码,位和字节上。由于各种原因,不同公司制造的不同处理器系列是不同的。就像并非所有汽车都是相同的。处理器不同的一种方式是因为它们在不同的指令集,不同的机器代码,1和0的不同组合上运行。因此,汇编语言从一个到另一个也变化。此外,汇编语言通常由处理器创建者,设计处理器的个人/公司(并非总是如此,但经常)来定义。就像他们制作不同的处理器一样,他们对汇编语言语法和其他选择有不同的习惯和愿望。汇编语言变化的另一个原因。就像并非所有汽车都使用相同尺寸的轮胎一样。
答案 1 :(得分:0)
每个计算机体系结构都“说”自己的语言。汇编或多或少是机器语言与人类语言的一对一映射。因为机器语言不同,所以装配也是如此。