16位的寄存器为什么最大地址空间为64KB?

16位的意思不是指地址从0000H~FFFFH吗?那应该有65535B即63KB存储空间啊,为什么说是64KB...同样,书上说8051型单片机有4KB的内部程序存储器,但又说编址从0000H~0FFFH,那应该也只有3KB啊,为什么说有4KB呢?小白求解释

那个位是2进制的,16位,就是2的16次方,就是65536,刚好是64kb。
温馨提示:内容为网友见解,仅供参考
第1个回答  2018-05-03
65535+1(0你忘记加上了)=64*1024
所以是64kb

一个16位寄存器大小16bit,也就是2Byte为何最大能储存64KB?
寻址范围是2^16个内存单元,每个内存单元是1Byte,所以是2^16Byte,等于64KB。

为什么8086\/8088的寻址能力为64KB?
8086\/8088为16位CPU,其内部的ALU、相关的地址寄存器(如SP、IP以及BX、BP、SI、DI)等都是16位的,因而对存储器地址的处理也只能是16位操作,即8086\/8088的直接寻址能力在64KB范围内。而实际上8086\/8088有20条地址线,它的最大寻址空间为1MB。这就产生了一个矛盾,即如何用16位的地址寄存器去表示...

汇编基础 关于逻辑段
在16位CPU中,寄存器是16位,也就是其取值只能是0000至FFFF,只用一个寄存器寻址的话就只能寻址到0000至FFFF,也就是64KB范围,所以一个段最大只能是64KB。为了寻址64KB以上,需要再用一个寄存器,而在16位CPU中有专门的段寄存器可用,而段寄存器也是16位的,如果照线性寻址的话,两个16位寄存器合起来...

...中为什么说一段寄存器(字长为16位)最大容量为64KB
那个位是2进制的,16位,就是2的16次方,就是65536,刚好是64kb。

为什么16位CPU的寻址寄存器的编码范围是00000H - 0FFFFH
16位最大的数是FFFFH(每位16进制数相当于4位二进制)=64K(65535),16位CPU一般采用的是16位寄存器,最大只能表示到64K,所以寻址寄存器最大的寻址空间是64K,至于8086系列CPU能访问1M(FFFFFH)空间,是因为它采用 段:偏移量 来寻址,需要用到段寄存器和另外一个寄存器才能表示(段寄存器X10H+偏移量)。

寻址范围0000H~FFFFH,为什么是大小64KB?
一种比较简单的方法是,8421法,四位二进制的每一位分别表示十进制中的8421,例如二进制1111,转换成十进制是8+4+2+1=15,正好对应的就是十六进制的F。每一位十六进制数转换成四位二进制数,所以寻址范围为2^16=(2^6)*(2^10)=64*1024,也就是64KB。

为什么段的大小不能超过64K
就只有偏移决定了可寻址的范围,所以一个段的大小被限定在了16bit地址空间里,即2^16=64K 总结一句话:最根本的说,一个段的长度由CPU的寻址方式和寄存器的长度决定。总线为20位 但是段寄存器为16位的 逻辑地址的形式为,段地址:偏移地址 16位的偏移地址最大可表示64K ...

地址总线16位的单片机,最大能配置多大的存储空间,大于64K的话...
具体必须要看Datasheet. 举例来说NEC的16位单片机78K0R系列的最大可访问储存器空间达到1Mb,00000H~FFFFFH.FreeScale的16位单片机S12系列虽然只有64K寻址空间,但它仍然能管理多达1Mb Flash,为什么,因为它将它寻址空间中的一部分16K作为1个Page,再通过PPAGE寄存器指定page 来管理多达16k*page的Flash空间....

16位字长的机器可以访问的最大存储空间为多少?怎么来的?
因此, 它只能进行16 位地址运算, 表示 16 位地址, 寻找操作数的范围最多也只能是 64KB。 为了能表示 20 位物理地址, 8086 的设计人员提出了将主存分段使用的方案: 将 1MB 的存储器按 64KB 分段, 设置 4 个段寄存器 CS、DS、SS、ES, 保存当前可使用段的段首址。 如果使各段的段首址都...

为什么89C51单片机的片外存储器最多只能扩展到64KB?
51单片机的指针寄存器是16位即默认寻址地址是16位可以产生2^16=65536个Byte=64KB。

相似回答