这个CPU有5个可操作寄存器, A、B、A2、A1、A0;
A2A1A0是三个8位锁存器组成的24位地址寄存器,只写不读;
假设b的地址是3H, a是一个指针占3个字节,地址分别0H~2H;
处理b = *a的CPU指令操作步骤:
A2A1A0 = 0x000001; //A2A1A0三个寄存器写入地址000001H
A = RAM; //000001H地址的RAM内存数据送A寄存器
A2A1A0 = 0x000000; //A2A1A0三个寄存器写入地址000000H
B = RAM; //000000H地址的RAM内存数据送B寄存器
A2A1A0 = 0x000002; //A2A1A0三个寄存器写入地址000002H
A2 = RAM; //000002H地址的RAM内存数据送A2寄存器
A1 = A; //A寄存器数据送A1寄存器
A0 = B; //B寄存器数据送A0寄存器
A = RAM; //A2A1A0地址寄存器指向的RAM单元数据送A寄存器
A2A1A0 = 0x000003; //A2A1A0三个寄存器写入地址000003H
RAM = A; //A寄存器的数据送入000003H地址的RAM单元
问题现在*a = b 少一个寄存器。。我看看怎么解决我看看怎么解决
,
难道必须要给CPU增加一个C寄存器。。这样子的话。前面卖出的10套要换CPU。。。 你们不要偷笑。
人有失手马有失蹄