为什么16位CPU的寻址寄存器的编码范围是00000H - 0FFFFH
为什么16位CPU的寻址寄存器的编码范围是00000H-0FFFFH,只能寻址64K为什么不是000000H-0FFFFFH这样寻址空间不就更大了吗...
为什么16位CPU的寻址寄存器的编码范围是00000H - 0FFFFH,只能寻址64K 为什么不是000000H - 0FFFFFH 这样寻址空间不就更大了吗
展开
5个回答
展开全部
16位最大的数是FFFFH(每位16进制数相当于4位二进制)=64K(65535),16位CPU一般采用的是16位寄存器,最大只能表示到64K,所以寻址寄存器最大的寻址空间是64K,至于8086系列CPU能访问1M(FFFFFH)空间,是因为它采用 段:偏移量 来寻址,需要用到段寄存器和另外一个寄存器才能表示(段寄存器X10H+偏移量)。
另外,CPU能访问的最大空间事实上是由地址总线宽度决定的,8086系列CPU具有20条地址总线,所以最大能访问1M(FFFFFH)空间,MCS51只有16条地址总线,最大只能访问64K(FFFFH)空间。
另外,CPU能访问的最大空间事实上是由地址总线宽度决定的,8086系列CPU具有20条地址总线,所以最大能访问1M(FFFFFH)空间,MCS51只有16条地址总线,最大只能访问64K(FFFFH)空间。
展开全部
因为它只有16位呀,16条地址线就只能有这么大的寻址空间。0FFFFH已经够16了,再多也没有用了呀。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
十六进制的一位代表二进制的4位,16位的cpu是里面的寄存器的位数,这样它所能表示的最大十六进制数就是0FFFF,
你所说的000000h-0fffffh是相对于段寻址来讲的,用两个地址码可以表示1MB的空间。
比如:
2000:0100就可以表示20100H的物理地址
你所说的000000h-0fffffh是相对于段寻址来讲的,用两个地址码可以表示1MB的空间。
比如:
2000:0100就可以表示20100H的物理地址
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
2的16次方用十六进制表示就是ffffh,但是表示时需要用0表示十六进制。所以是0ffffh。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
16位CPU的寻址寄存器寻址空间的大小为2的16次方=64K=65336=10000h=10000 0000 0000 0000b
范围为0-65535或者0000H-FFFFH或者0000 0000 0000 0000B-1111 1111 1111 1111B。
范围为0-65535或者0000H-FFFFH或者0000 0000 0000 0000B-1111 1111 1111 1111B。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询