gpt4 book ai didi

assembly - 这是什么汇编语言/体系结构?

转载 作者:行者123 更新时间:2023-12-01 11:38:31 26 4
gpt4 key购买 nike

我遇到了这两个文档(它们是用意大利语写的,尽管代码注释是英文的):

  1. http://home.deib.polimi.it/brandole/acsocr/L13%20-%20Generic%20Assembly.pdf
  2. http://home.deib.polimi.it/brandole/acsocr/L14%20-%20Assembly%20Programming.pdf

它们描述了我无法识别的汇编指令集和语法。例如,它表示以下 C 代码...

int AddInt( int a, int b ) {
int c;
c = a + b
return c;
}

...等价于这组汇编指令:

AddInt  ADD     SP, #-4
PUSH R0
PUSH R1
PUSH R2
PUSH R3
LOAD R0, 24(SP)
LOAD R1, 20(SP)
ADD R0, R1
STORE 24(SP), R0
POP R3
POP R2
POP R1
POP R0
ADD SP, #4
RET

我熟悉 ARM、x86 和 x86-64 指令集,并且了解 Intel 和 AT&T ASM 语法。但是,论文中描述的内容对我来说看起来很新。以下是我对指令集的看法:

  • SVCB 等指令的出现让我想起了 ARM 架构。
  • 但是有HALTMOVESTORELOAD等指令,这些指令在ARM中是没有的, x86 和 x86-64。或者,至少,他们在这些架构上有其他名称。
  • 文档指出该架构只有几十条指令。这让我觉得它一定是一个非常古老/嵌入式的架构。
  • 文档还指出指令执行“非常简单的操作”(尽管它没有给出“简单”一词的定义)。这也让我觉得它一定是一个非常古老/嵌入式的架构。
  • 文档引用了 MIPS,但由于多种原因,MIPS 看起来有所不同。例如:文档的BLE需要一个操作数,而在MIPS中需要三个; MIPS 没有SVC,它有系统调用
  • 在网上查看时,我发现它看起来像一个旧的摩托罗拉架构,尽管我无法找到与任何摩托罗拉架构的精确对应。

下面是我对语法的看法:

  • 左操作数用作目标,寄存器没有前缀。这让我想起了 Intel 语法。
  • 20(SP) 这样的操作数让我想起了 AT&T 的语法(寄存器符号除外)。
  • 标签后面没有冒号。
  • EQU 这样的元指令没有前缀。它们甚至不作为元指令呈现,而是作为真实指令呈现。
  • 评论以 ! 开头。这使我想到了 SPARC 汇编,但是 SPARC 在很多方面都是不同的(例如,寄存器以 % 为前缀)。

文档没有给架构起任何名字,没有说明寄存器的大小,也没有引用任何编译器或解释器。我有点困惑,我开始认为整个架构和语法都是作者发明的(但是,为什么?)。

那么,您知道它可能是什么架构吗?

最佳答案

这是一个假处理器,没有人像这样构建真正的 32 位处理器。这在教育领域并不少见,教师的优先级与芯片设计师的优先级截然不同。它是一个理想化处理器,不受真实处理器的限制。

这是一个非常正交的设计,是什么让您想到了摩托罗拉处理器。 68000芯片是他们的典型设计。它存活了相当长一段时间,Apple 和许多 Unix 机器供应商是他们最大的客户。同样是狂热的程序员粉丝,正交设计对逻辑思考者有着强烈的吸引力。但是它没有活下来,680x0家族就没了。英特尔是主要的 Dark Vader,一家始终专注于实用设计的公司。让它们尽可能快和兼容,干净并不重要,因为那是 C 编译器编写者的问题。速度在任何时候都胜过漂亮。

使用假处理器进行教学有很长的路要走。不确定他是否是第一个,但 Donald Knuth 创造了两个有影响力的假设计。他的 MIX 设计是第一个,今天很有趣只是为了看看 50 年前的实际约束是什么样子的。回到 6 位字节统治世界而 36 位处理器很普遍的时候。取而代之的是他的 MMIX 设计,一个假的 64 位 RISC 处理器。重要的是在九十年代后期突破界限。不再。兼容性更为重要,处理器实际上不再执行机器代码指令。他们翻译它们,就像 .NET 或 Java 抖动所做的那样。一个内部和未记录的微操作执行引擎,能够同时执行多个微操作,尽可能无序。

对于学生来说,在 101 Assembly 类(class)中接触到的细节方式太多了。他们需要学习基础知识。栈帧(add sp,#-4)、CPU 寄存器(R0、R1 等)、将参数传递给函数、寻址模式 (24(SP)) 的概念。今天仍然非常重要的概念。小步骤对于到达楼梯顶部非常很重要。

关于assembly - 这是什么汇编语言/体系结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24717251/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com