指令系统中的寻址范围总结

1.首先区分寻址范围与寻址空间

寻址范围:是一个数字范围,无单位;

寻址空间:能够寻址的最大容量;

例题:

设有一个1MB容量的存储器,字长32位,问:按字节编址,字编址的寻址范围以及各自的寻址范围大小? 

     如果按字节编址,则 

                     1MB = 2^20B         2^20B/1B = 2^20 

     地址范围为0~(2^20)-1,也就是说需要二十根地址线才能完成对1MB空间的编码,所以地址寄存器为20位,寻址范围大小为2^20=1M

     如果按字编址,则

                      1MB=2^20B      1字=32bit=4B

(注意:字长是32位,就是指1字=32bit,该信息只有在按字编址时才有用。这里的字长说的是存储字长)

                     2^20B/4B = 2^18   

      地址范围为0~2^18-1,也就是说我们至少要用18根地址线才能完成对1MB空间的编码。因此按字编址的寻址范围是2^18

寻址方法:

寻址范围:

立即寻址:直接放一个数

直接寻址:A的字长

间接寻址:存储字长=?(机器字长)

相对寻址:(PC附近)A的字长

基址寻址:

变址寻址:机器字长=存储字长

注意:

机器字长:CPU一次能处理数据的位数,通常与CPU的寄存器位数有关。
存储字长:存储器中一个存储单元(存储地址)所存储的二进制代码的位数,即存储器中的MDR的位数。
指令字长:计算机指令字的位数。
数据字长:计算机数据存储所占用的位数。

通常早期计算机:存储字长 = 指令字长 = 数据字长。所以访问一次可取一条指令或一个数据

随着计算机应用范围的不断扩大,三者可能各不相同,但它们必须是字节的整数倍。

猜你喜欢

转载自www.cnblogs.com/zq-dmhy/p/11917051.html