对24位地址线的主存 总存储单元个数为2^24=16M
一个存储单元为8位(1字节) 所以总存储容量为存储单元个数*每个存储单元的大小=16M*1B=16MB
按字节寻址的范围就是16M,即为存储单元的个数
因为字长为32位,按字寻址的范围是16MB/(32/8)B=4M,即将每个存储单元的大小看作是4个字节所得出的结果
24位地址线也就是mar的位数是24位 代表的是存储单元个数是2^24=16M 是正确的
你把存储单元的个数和每个存储单元的大小这两个概念混淆了 书前后实际上是不矛盾的
按字寻址的意思是按照字长来寻址 题目中32位 可以理解为4字节为1字
按字节寻址默认就是1个字节 所以与存储单元的个数相同
你没有注意的是:书上还说了一句,IBM 32 位存储器 地址线的低两位用作为一个字中四个字节的寻址地址(如果没有这两位的牺牲的话,如何按字节寻址呢?),即:真正用于按字寻址的地址线只有24-2=22根,也即4M;
按字节寻址是指(我的理解):将所有的字节看为一个独立的整体,重新计算它们的个数,即:总容量 / 单位字中字节的位数 <=> 64MB /4B=16M。
plus:
我又请教了一些懂它的人,她的答案是:当按字寻址时,它的字长就不可能是32位;当按字长寻址时,它的地址线就不可能是24条。最直白的做法就是:按字长寻址时,计算它有多少个B,按字寻址时,根据给的地址线条数计算。