Mai*_*ail 5 arm mips computer-architecture instructions
我刚刚开始学习体系结构,并且在MIPS和ARM体系结构之间有些困惑。
我知道MIPS主要有两种指令格式:I和R(以及J)。我了解了这些表示格式,rs,rt,操作码和相关内容。我还浏览了Patterson的COA书(第IV版),该书重点介绍ARM ISA。该版本中的指令表示形式有所不同。这些差异是由于体系结构的变化引起的吗?与我与MIPS ISA一起使用的书中的ARM汇编代码略有不同。
例如。帕特森四世说
LDR r5,[r3,#32]
STR r1,[r4,#48]
Run Code Online (Sandbox Code Playgroud)
而我读过的另一个MIPS说
lw r5,[r3,#32]
sw r1,[r4,#48]
Run Code Online (Sandbox Code Playgroud)
差异是由于它们遵循的ISA还是同一ISA的两个不同版本?您能否解释一下MIPS和ARM之间的主要区别?
是的,lw 和 sw 是 mips 的加载和存储字。ldr和str用于加载和存储arm的单词。对于 x86,您使用 mov。
Mips 通常具有使用 $0-$31 或更恶心的 $v0 等语法。Arm 和许多其他人使用 r 和数字 r0-rn(有些人试图使用别名来丑化它)。
ARM 和 MIPS 是竞争对手,它们不是同一家公司,也不是相同的架构。MIPS 机器编码属于您提到的几个类别,ARM 有许多类别,无论好坏,这些都在 MIPS 或 ARM 文档中得到了详细记录。
因此,就指令集的发明者决定的指令编码而言,无论他们选择什么原因,好、坏或其他,他们可以做他们想做的事。
就汇编语言语法而言,isa 发明者通常会创建一种语法来配合指令集的文档,并且他们通常会创建或雇用某人来制作汇编程序。但是汇编程序(采用汇编语言并从中生成机器代码的软件)作者最终决定了汇编语言语法,并且他们不必遵守 isa 文档中的语法。并且任何两个单独创建的汇编器没有理由使用相同的语法。随着时间的推移,例如十六进制数字有一个美元符号 $12 或结尾的 h 12h,但现在您经常看到支持的 C 语法或首选 0x12。有时您会看到间接加偏移量为 12(r3) 或 [r3,#12] 或描述完全相同的事物。
| 归档时间: |
|
| 查看次数: |
17903 次 |
| 最近记录: |