. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->寄存器(CPU工作原理)
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  学了第二章的部分内容,想到几个有趣的问题  [已解决] 回复[ 7次 ]   点击[ 587次 ]  
zyc969
[帖 主]   [ 发表时间:2012-05-03 22:18 ]   [引用]   [回复]   [ top ] 
荣誉值: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查看寄存器当前内容时,发现所有的值一直都不变,运行一些程序,甚至重启,所有的值仍然不变,这是为什么?
tomato
[第1楼]   [ 回复时间:2012-05-06 00:21 ]   [引用]   [回复]   [ top ] 
荣誉值:405
信誉值:0
注册日期:2008-01-19 14:51
楼主思考得不错,虽然可能不能很好地回答这些问题,但是,这种思考很好。

1.cpu一直在执行,可能有些情况下我们认为是空闲状态,但是,那时候也是在执行指令,只是可能是在执行空循环或者空指令。

2.这个是太硬件的问题,回答不了。

3.汇编指令永远不可能出错,所谓错误,只是在编译器的情况下才会认为是错误,只要运行状态都应该可以执行,只是执行的结果可能没有意义而已。

4.我们的系统中的debug都是虚拟情况下的,在虚拟环境中,初始化的值都是一样的。
zyc969
[第2楼]   [ 回复时间:2012-05-06 07:39 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2012-04-30 21:05
回复:[第1楼]
------------------
嗯,虽然是寥寥数语,但是使我明白了很多。有了你的鼓励,我也更加有信心了。谢谢了!

对于第3问,《汇编语言》第二版 第19页:
mov ax,bl (在8位寄存器和16位寄存器之间传送数据)
mov bh,ax (在16位寄存器和8位寄存器之间传送数据)
…………
等都是错误的指令,错误的原因都是指令的两个操作对象的位数不一致。


这是不是说,以上的指令可以被CPU执行,但是无法达到我们所要的效果,从执行的意义上说是错误的?
tomato
[第3楼]   [ 回复时间:2012-05-06 22:47 ]   [引用]   [回复]   [ top ] 
荣誉值:405
信誉值:0
注册日期:2008-01-19 14:51
回复2楼:像mov ax,bl这样的指令是通不过编译的,当然,不可能进入到执行阶段。
zyc969
[第4楼]   [ 回复时间:2012-05-08 22:25 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2012-04-30 21:05
回复:[第3楼]
------------------
此处的编译是指的汇编源程序编译成汇编指令,还是汇编指令编译成机器语言?
tomato
[第5楼]   [ 回复时间:2012-05-08 23:34 ]   [引用]   [回复]   [ top ] 
荣誉值:405
信誉值:0
注册日期:2008-01-19 14:51
回复4楼,是前者,汇编源程序编译成目标文件。
zyc969
[第6楼]   [ 回复时间:2012-05-09 22:04 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2012-04-30 21:05
回复:[第5楼]
------------------
哦~~明白~~谢谢了!
zyc969
[第7楼]   [ 回复时间:2012-05-12 21:01 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2012-04-30 21:05
此贴由 贴主 于 [ 2012-05-12 21:01 ] 结贴。 结贴原因:问题已解决
得分情况:
此问题已结贴!
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved