. : : Assembly Language : : .
|
首页
|
我提出的问题
|
我参与的问题
|
我的收藏
|
消息中心
|
游客 登录
|
提问
|
未解决
|
已解决
|
精华区
|
搜索
|
《汇编语言》论坛
->
寄存器(CPU工作原理)
主题 : :
学了第二章的部分内容,想到几个有趣的问题
[已解决]
回复[
7
次 ] 点击[
588
次 ]
zyc969
[帖 主]
[ 发表时间:2012-05-03 22:18 ]
荣誉值:0
信誉值:0
注册日期:2012-04-30 21:05
有些问题不在所学的范围之内,但为了满足自己的好奇心,还是提一下吧。
1、CPU是无条件立刻执行CS:IP中的数据吗?也就是说,是否CPU一旦检测到CS:IP中有内存地址,就会立刻无条件读取内存相应数据并处理?如果是,那么如何控制CPU的处理?如果不是,那么CPU开始处理是如何被触发的?
2、CPU的寄存器貌似并不多,为什么CPU需要几亿、十几亿甚至更多的晶体管?是为了增加晶体管的震荡频率?晶体管的作用是什么?有谁研究过CPU的物理结构?
3、如果汇编指令有错误,那CPU会有何反应?是直接无视这条错误,继续执行,还是报错?怎么报错?主板鸣蜂器鸣叫?弹出错误提示?
4、用debug -R查看寄存器当前内容时,发现所有的值一直都不变,运行一些程序,甚至重启,所有的值仍然不变,这是为什么?
zyc969
[第
2
楼]
[ 回复时间:2012-05-06 07:39 ]
荣誉值:0
信誉值:0
注册日期:2012-04-30 21:05
回复:[第1楼]
------------------
嗯,虽然是寥寥数语,但是使我明白了很多。有了你的鼓励,我也更加有信心了。谢谢了!
对于第3问,《汇编语言》第二版 第19页:
mov ax,bl (在8位寄存器和16位寄存器之间传送数据)
mov bh,ax (在16位寄存器和8位寄存器之间传送数据)
…………
等都是错误的指令,错误的原因都是指令的两个操作对象的位数不一致。
这是不是说,以上的指令可以被CPU执行,但是无法达到我们所要的效果,从执行的意义上说是错误的?
此问题已结贴!
Copyright © 2006-2024 ASMEDU.NET All Rights Reserved