无法找出要加载的寄存器,且寄存器与其他寄存器有偏移

时间:2018-09-10 17:46:34

标签: offset cpu-architecture cpu-registers isa

我正在创建一个8位CPU。我有基本的指令,例如mov,ld,st,add,sub,mult,jmp。我正在尝试整理说明。首先,我将值的基地址移入寄存器1(R1)。然后,我想用该值加载寄存器2(R2)。因此,我的说明如下:

1 mov R1, 0xFFFF
2 ld R2, [R1+0]

我的操作码定义是:

ld: 0001
mov: 1111

注册码为:

R1: 0001
R2: 0010

所以我的二进制指令如下:

1 mov R1, 0xFFFF = 1111 0001 0xFFFF
2 ld R2, [R1+0] = 0001 00010 

但是在第二个加载方向上,如何确保要使用存储在移至R1的存储位置中的值。这是我第一次使用计算机体系结构做任何事情,所以我有点迷茫。

1 个答案:

答案 0 :(得分:1)

  

如何确保要使用存储在移至R1的存储位置中的值。

通过构建硬件来正确处理写入后读取危险(https://en.wikipedia.org/wiki/Hazard_(computer_architecture)#Data_hazards)。

任何一个