这是我第一次在这里发布问题,所以如果没有以正确的方式描述,请随时给我一些反馈。对于实际问题:
我想知道是否有一种方法可以将其中一个寄存器中的一个字向右移动 2 个字节,而无需提取或算术移位器(EX with fetch:只需将字写入内存地址 0x0 并获取 0x0 -> << 8将其复制回 OPC 或其他任何东西,然后 OR 到所需的寄存器,获取地址 0x1 并再次 OR 到寄存器,这次不向左移动)。
所以一个包含 0xcccc1111 的寄存器应该变成 0x0000cccc
以下是对 mic-1 微架构的简要说明。
谢谢您的帮助
目的是以更有效的方式将从内存 0x2 开始的单词复制到 LV 中:这应该可以工作,但它同时使用了 fetch 和 write,它可能完全是垃圾:(
MAR=0; rd;
PC=1;
H=PC=PC+1;
PC=PC+H; fetch;
MDR= MDR <<8; rd;
LV=MDR<<8; rd;
PC=PC+1;
H=MBRU << 8; fetch;
LV = LV OR H;
H = MBRU;
LV = LV OR H;