请教一下CPU寻址能力怎么算?

Zimmerk 2011-07-27 03:28:02
8080CPU地址总线宽16
那么它的寻址能力是不是
(2^16)/8/1024 = 64 K
是不是这样?
书上没讲清楚,我买的是王爽的汇编语言,感觉很多地方没有讲清楚就过了,大家认为怎么样?初学汇编有什么书可以介绍的么?
...全文
1727 15 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
athey 2011-09-29
  • 打赏
  • 举报
回复 1
那2^16算出来的单位是什么,,怎么来的,能说一下么?

这个算出来的是寻址能力,也就是能找到多少个存储单元
而一个存储单元就是1Byte
那么他就是可以找到65536Byte
换成KB=65536/1024=64KB

换句话说,一跟地址线都有高电平和低电平两种状态,
那16跟线跟据这种现像能组成多少种不周的组合呢?
Zimmerk 2011-07-28
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 mhbbcrcpj 的回复:]

引用 11 楼 bllqbz 的回复:

那2^16算出来的单位是什么,,怎么来的,能说一下么?

这个16位的二进制数的每一个值对应一个内存单元,每个内存单元是1 byte,所以最后的单位是byte。如果最后的结果很大,还可以换算成KB、MB或GB。
[/Quote]

谢谢,这么说明白一点了
竞择 2011-07-27
  • 打赏
  • 举报
回复 1
cpu总线有三种,地址总线、数据总线、控制总线。

8086CPU地址总线20位,作用是来指定存储器单元,所以地址总线决定了CPU寻址能力。计算方法为2^n(n为总线位数)。以8086cpu为例:寻址能力是2^20B=1M。


数据总线用来传递CPU与内存或其他器件之间的数据。8086有16位数据总线,即一次能传送一字的数据,数据长度超过了一个字要分两次传送。数据总线决定了CPU一次传输数据量。

控制总线决定了CPU对系统中其他器件的控制能力。


王爽的汇编,没的说,我学汇编主要靠他了...
MHBBCRCPJ 2011-07-27
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 bllqbz 的回复:]

那2^16算出来的单位是什么,,怎么来的,能说一下么?
[/Quote]
这个16位的二进制数的每一个值对应一个内存单元,每个内存单元是1 byte,所以最后的单位是byte。如果最后的结果很大,还可以换算成KB、MB或GB。
Zimmerk 2011-07-27
  • 打赏
  • 举报
回复
那2^16算出来的单位是什么,,怎么来的,能说一下么?
cwh5635 2011-07-27
  • 打赏
  • 举报
回复
取決於地址綫的長度。。。。。一根綫傳1位,多少根綫就有2的多少次方拉
canmeng 2011-07-27
  • 打赏
  • 举报
回复
8080是64K。
minitoy 2011-07-27
  • 打赏
  • 举报
回复
楼主的问题在于把地址总线和数据总线混在一起了.
地址总线只标志存储单元个数,不关心存储单元的单元存储容量.
数据总线的宽度决定对存储单元的读取次数,
sfd1234 2011-07-27
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 bllqbz 的回复:]
引用 4 楼 korekara88730 的回复:

不明白你为啥除以 8,
(2^16)/1024不就正好等于64么,所以是 64K

王爽那本已经很基础了,但是最起码要懂得 2进制 ,8进制 16进制换算,以及简单的常用换算


LZ可以记住 2^10 = 1K(1024),2^20 = 1M ,2^30 = 1G,
其他的根据这个做简单的乘法,都很好算的

不是一根线传……
[/Quote]

小伙子,你还有很多需要学习的!
aiyaya730 2011-07-27
  • 打赏
  • 举报
回复
CPU 是16位的,
意思是CPU可以表示 16位二进制数,17位的二进制一次性就表示不了了

16位二进制数,
最小是 0000 0000 0000 0000B ,也就是 0
最大是 1111 1111 1111 1111B ,也就是 2^16-1
也就是16位CPU,可以表示 2^16个(64K个)数字

所以CPU最大可以给 2^16个单元唯一编号(再多就重复了,超出CPU的表示范围了),
所以16位CPU寻址能力是 64K

那本教材上没写么?
随便找一本计算机组成原理之类的教科书,第一章都会有介绍。
Zimmerk 2011-07-27
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 korekara88730 的回复:]

不明白你为啥除以 8,
(2^16)/1024不就正好等于64么,所以是 64K

王爽那本已经很基础了,但是最起码要懂得 2进制 ,8进制 16进制换算,以及简单的常用换算


LZ可以记住 2^10 = 1K(1024),2^20 = 1M ,2^30 = 1G,
其他的根据这个做简单的乘法,都很好算的
[/Quote]
不是一根线传2bit么 0 和 1
不是很明白额,,望解释
aiyaya730 2011-07-27
  • 打赏
  • 举报
回复
不明白你为啥除以 8,
(2^16)/1024不就正好等于64么,所以是 64K

王爽那本已经很基础了,但是最起码要懂得 2进制 ,8进制 16进制换算,以及简单的常用换算


LZ可以记住 2^10 = 1K(1024),2^20 = 1M ,2^30 = 1G,
其他的根据这个做简单的乘法,都很好算的
Zimmerk 2011-07-27
  • 打赏
  • 举报
回复
我就是想知道地址线宽16的CPU的寻址能力怎么算的,我上面的算得对不对
MHBBCRCPJ 2011-07-27
  • 打赏
  • 举报
回复
寻址能力就是固定的二进制位能表示的不同的值的数量。话句话说就是固定的二进制位能“选择”多少个不同的内存单元。而一个二进制位对应一条总线。
王爽的《汇编语言》目前为止应该是最详细的了。不懂就问吧,任何人写书都会有死角的。
大熊猫侯佩 2011-07-27
  • 打赏
  • 举报
回复
32位==2~32byte,16你说呢?

21,497

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧