引自免费微信小程序:皆我百晓生
首先,让我们理解一些基本概念:
- 机器字长:指计算机执行一次操作可以处理的数据位数,这里是16位(即2字节)。
- 指令字长:指令的长度,也是16位。
- 通用寄存器位数:通用寄存器的存储位数,也是16位。
- 内存容量:存储器的总容量,这里是128KB(即131072字节或65536字)。
基于以上信息,我们可以分析以下两个问题:
问题1:若按字节编址,寄存器直接寻址能否寻到存储器中任一单元? 答:按字节编址意味着每个地址对应一个字节。由于通用寄存器是16位的,可以直接存储一个字节的地址。因此,理论上通过寄存器的直接寻址,我们可以寻访到存储器的任何一个字节。所以,按字节编址时,寄存器直接寻址能寻到存储器中任一单元。
问题2:若按字编址能否寻到存储器中任一单元? 答:按字编址意味着每个地址对应一个字(这里是2字节)。通用寄存器的位数为16位,其值范围从0到65535。由于内存容量为128KB,且按字编址,那么有效的字地址范围是从0到32767(因为128KB等于65536字节除以每字的字节数2)。这意味着寄存器的值可能超出存储器的有效地址范围。因此,按字编址时,我们不能确保通过寄存器的直接寻址寻访到存储器的任何一个字。所以,在某些情况下,可能无法寻到存储器中任一单元。
总结:在机器字长、指令字长、通用寄存器位数均为16位的情况下,按字节编址时寄存器直接寻址可以寻访存储器的任意字节;但按字编址时,由于通用寄存器的地址范围可能超出存储器的有效地址范围,所以不能确保寻访存储器的任意字。