. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->寄存器(CPU工作原理)
主题 : :  2.10 cs和ip  [待解决] 回复[ 8次 ]   点击[ 491次 ]  
yunlong
[帖 主] [ 发表时间:2012-05-17 10:33 ] 
荣誉值:0
信誉值:0
注册日期:2012-05-17 10:25
不会拉图,就是“输入输出控制电路将物理地址20000H送上地址总线”和“从内存20000H单元开始存放的
机器指令B8 23 01通过数据总线被送入CPU”两张图,问题是既然被送上地址总线的是20000H那读取不应该就是在20000H里的“B8“一个值吗?为什么一下出来3个,是什么原因导致出来了3个?为什么不是在20000H里的那个一个值(图片在http://kb.cnblogs.com/a/1422236/的2.14和2.15两张)
eaookii
[第8楼] [ 回复时间:2013-03-16 14:40 ] 
荣誉值:0
信誉值:0
注册日期:2013-03-16 12:52
我也在困惑这个问题,看了6楼同学的链接。找到一个说法:
数据和指令都是存放在内存单元中的,CPU是分辨不出来的,从一个内存单元读出0-1串,CPU仅仅可以分辨出来这个0-1串在CPU指令集中是存在还是不存在。如果存在就执行,否则就会产生非法指令的错误。 

其实还是有一些疑问,不是很清晰,但基本上,我认为可能是这样的:
首先是找到20000,读里面的数据B8,这个要先转换成二进制,到底代表什么,我不知道,但可能这个二进制数据不是一条指令,所以,CPU继续往下读,再读20001的23。加起来就是,是怎么加,哪个在前哪个在后,我也不清楚,但可能就是这两个数据相加。得到一个新的二进制数据。CUP再判断,这个二进制数据可不可以执行,如果可以就执行,不可以就再读,只到把读到的所有数据相加后得到的新的二进制数据可以被CPU理解为一条指令为止,然后CPU就执行这条指令。
后面的就好理解了,CPU读了多少个单元,IP就加上多少,再重复上面的步骤。
不知道我理解的对不对
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved