嵌入式微处理器系统基础:CPU架构与FPGA技术解析
1. 三地址CPU
三地址机器是所有类型中最灵活的。两个操作数和目的操作数可以来自或去往不同的寄存器或内存位置,操作形式如下:
op1 ← op2 op3
大多数现代RISC机器,如ARM、PowerPC、MicroBlaze或Nios II,都倾向于这种编码类型。不过,操作数通常是寄存器操作数,或者最多只有一个操作数可以来自数据内存。其数据流架构如图1.7b所示。
使用三操作数机器进行汇编语言编程是一项直接的任务。以Nios II机器为例,计算 e = a - b + c * d
的代码如下:
Instruction Description
sub r5, r1, r2 ; Subtract r2 register from r1 and store in r5
mul r6, r3, r4 ; Multiply registers r3 and r4 and store in r6
add r5, r5, r6 ; Add r5 and r6 and store in r5
这里假设寄存器r1 - r5分别保存变量a - e的值。这是目前讨论的四种机器中代码最短的,但代价是指令字更长。从硬件实现的角度来看,两操作数和三操作数机器之间没有太大区别,因为寄存器文件无论如何都需要单独的多路复用器和解复用器。