问一个超级新手的问题:寄存器和存储器有什么不同?

THE_ROCK 2005-10-09 03:29:38
寄存器和存储器有什么不同?
...全文
83 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
liangbch 2005-10-10
  • 打赏
  • 举报
回复
更正一下:
  "这是因为主流cpu内部有8/16K/32K的 L1 cache和 128K/256K/512K/1M L2 cache"
liangbch 2005-10-10
  • 打赏
  • 举报
回复
对计算机来说,硬盘是外存,ram是内存。访问ram的速度大于硬盘,硬盘的数据不能直接访问,必须读入ram才能工作。
 对CPU说,ram是外存,寄存器是内存,访问寄存器的速度大于ram。虽说cpu可直接访问内存,但是对80x86 cpu,必须要求两个操作数不能都是ram.

 对早期的cpu(8086),访问内存的速度比访问寄存器慢的多,见下表:mov指令的执行时间:

Operands 808x 286 386 486 Bytes
reg,reg 2 2 2 1 2
mem,reg 9+EA 3 2 1 2-4 (W88=13+EA)
reg,mem 8+EA 5 4 1 2-4 (W88=12+EA)
mem,immed 10+EA 3 2 1 3-6 (W88=14+EA)
reg,immed 4 2 2 1 2-3
mem,accum 10 3 2 1 3 (W88=14)
accum,mem 10 5 4 1 3 (W88=14)
segreg,reg16 2 2 2 3 2
segreg,mem16 8+EA 5 5 9 2-4 (W88=12+EA)
reg16,segreg 2 2 2 3 2
mem16,segreg 9+EA 3 2 3 2-4 (W88=13+EA)
 尽管cpu访问ram的速度很慢,但当前主流的cpu在执行一条包含对ram访问的指令时,可在1个clock完成。这是因为主流cpu内部有8/16K/32K的 L1 cache和 128K/256K/512K/1M cache,尽管一个指令包括对ram的访问,但事实上,在90%的情况下,cpu 并不会真正去访问ram中的数据,因ram中数据己经读入L1 chche 或者L2 cache,而cpu访问cache 中的数据比访问ram中数据快得多。
大熊猫侯佩 2005-10-09
  • 打赏
  • 举报
回复
若连这个也搞不清楚的话,建议仔细看 计算机组成与结构
robin_wan 2005-10-09
  • 打赏
  • 举报
回复
寄存器在CPU中
存储器为内存

21,497

社区成员

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

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