如何计算指定指令的取指字节数与内存数据传输(读/写)字节数?
指令取指与内存数据传输字节数计算
前提条件
- 操作码(opcode)固定为1字节
- 内存地址字段固定为2字节
- 数据操作数固定为4字节
- 指令长度为整数字节,未采用任何减少内存流量的优化策略
1. Load b 指令
取指字节数
Load指令需要指定待读取的内存地址,指令结构为 操作码(1字节) + 内存地址(2字节),总长度为 1+2=3 字节,因此取指字节数为 3字节。
内存数据传输字节数
Load指令的核心是从内存读取数据到寄存器,数据操作数为4字节,因此需要从内存读取4字节数据,内存读操作的传输字节数为 4字节。
2. Add c 指令
假设该指令为寄存器-内存型加法(即一个操作数在寄存器,另一个操作数c在内存,运算结果存回寄存器):
取指字节数
指令需要包含操作码和c的内存地址,结构为 操作码(1字节) + 内存地址(2字节),总长度3字节,取指字节数为 3字节。
内存数据传输字节数
需要从内存读取c对应的4字节数据参与运算,内存读操作的传输字节数为 4字节。
3. Store a 指令
取指字节数
Store指令需要指定数据写入的目标内存地址,指令结构为 操作码(1字节) + 内存地址(2字节),总长度3字节,取指字节数为 3字节。
内存数据传输字节数
Store指令的核心是将寄存器中的4字节数据写入内存,因此内存写操作的传输字节数为 4字节。
内容的提问来源于stack exchange,提问作者CloneXI
相关产品推荐
相关产品推荐

