(截图来自MOOC平台华中科技大学计算机组成原理课程)
使用寻址方式有很多好处,比如缩短指令字长、方便程序设计、扩展访问空间。其中,不同的寻址方式会具有以上不同的特点。
立即数寻址将操作数直接放在地址码字段,速度快,无需访问内存。
寄存器寻址的速度快,也改善了立即数寻址数据大小受字段位数限制的缺点。
直接寻址是根据地址直接去主存中读取该地址的内容,需要访问一次内存,访存空间受限于地址字段的位数。
间接寻址是先访问主存获得操作数的地址,再通过该地址访问主存获得操作数。
寄存器间接寻址是先访问寄存器,在根据寄存器中的地址去主存中取出操作数,只需要访问一次主存。
相对寻址中操作数的地址是地址字段的值加上程序指令计数器的数值,其中,每次命令执行,PC中的数值就会+2(16位系统),节省了地址位数。
基址寻址中操作数的地址是基址寄存器和地址字段数值的和,对于某一程序,基址值是不变的,所以访问不听数据时,要不断修改地址字段的值。
变成寻址相较于基址寻址而言,其中的变址寄存器的值是可以改变的,所以访问不同的数据时,地址字段的数值可以不变,而去改变寄存器的值即可。
一台计算机需要不同的寻址方式的组合来实现对数据的读取。立即寻址和寄存器寻址速度快,往往是需要的,而间接寻址速度过慢,一般并不使用。而剩下的五种寻址方式要根据需要选择部分或者全部。