16位二进制数可以表示多少个字节单元的地址?

汇编课老师说是64kB。而我是这样算的:2的16次方个即65536个,所以就是65536个16位,8位一个字节,所以就是65536个两个字节即65536×2个字节即(65536×2)/1024=128kB。这是咋回事呢?帮我分析分析这对你们来说幼稚的问题吧!
还有,8086cpu地址线有20根,每根应该就是一位还是一个字节呢,为什么?老师说20根地址线一共就是1M的空间,即2的20次方字节即1M。按老师说的,是不是一根地址线就代表一字节了?
谢谢啊!20根地址线就有2^20个地址,这我知道,我就不晓得为什么就有2^20字节寻址空间了,为什么是字节这单位为什么不是b这单位呢?一个地址代表着一个字节的内容吗?哦我好像明白了,计算机是以字节为单位存储数据的,我把自己搞晕了!

晕了!估计你老师看到了会哭死过去的!他会怀疑你是不是他的学生!

汇编老师讲在实模式下的寻址方式:这个是由于实模式下寄存器决定的,由于寄存器只可能使用16位,也就是说在地址中可以标注16位二进制数的地址单元,这就是所谓有段地址只能在16位中寻找数据。对物理地址(内存)编址,每一个字节进行一个地址。故最大能表示2的16次方个址,也就是寻址能力只有64K,由于实模式地址的不足,无法运行大于64K的程序,所以这时可以用偏地址作为段内偏移,而对于段址,可以从20bit的CPU地址中得到,所以将段地址左移四位与偏移地址之和就是实际物理地址。这恰好就是CPU的20位宽决定的。

CPU的20bit也只是对内存进行每字节(byte)编一个址,最大可以编20bit址,也就是可以编1M个地址空间。占实际内存为1M个字节(byte)。所以实模式下的程序不能大于1M。

也就是说你理解1M地址空间这句话,应该理解为编了1M个地址,每个地址是一个字节,所用内存空间就是1Mbyte了!理解了这句话,我想你不会乱乘了吧?

当然,这是实模式下,80386以后使用的是保护模式和虚拟模式,这两种的寻址方式是不同的,而且寄存器也变为32位了,寻址能力就大于以前了,80386的理论可寻址是2的32次方个地址,最大可认4Gbyte内存。但受限于主板(最大单条与插条数量)和系统软件的局限,还是不能认到4G的,以80586的XP系统来说,只能认到3。3G!这是后话。
温馨提示:内容为网友见解,仅供参考
第1个回答  2015-06-22
16位二进制数可以表示65536个字节单元的地址,也即64kb地址。

二进制是计算技术中广泛采用的一种数制。二进制数据是用0和1两个数码来表示的数。它的基数为2,进位规则是“逢二进一”,借位规则是“借一当二”。
二进制数是逢2进位的进位制,0、1是基本算符;计算机运算基础采用二进制。
相似回答