我也在困惑这个问题,看了6楼同学的链接。找到一个说法:
数据和指令都是存放在内存单元中的,CPU是分辨不出来的,从一个内存单元读出0-1串,CPU仅仅可以分辨出来这个0-1串在CPU指令集中是存在还是不存在。如果存在就执行,否则就会产生非法指令的错误。
其实还是有一些疑问,不是很清晰,但基本上,我认为可能是这样的:
首先是找到20000,读里面的数据B8,这个要先转换成二进制,到底代表什么,我不知道,但可能这个二进制数据不是一条指令,所以,CPU继续往下读,再读20001的23。加起来就是,是怎么加,哪个在前哪个在后,我也不清楚,但可能就是这两个数据相加。得到一个新的二进制数据。CUP再判断,这个二进制数据可不可以执行,如果可以就执行,不可以就再读,只到把读到的所有数据相加后得到的新的二进制数据可以被CPU理解为一条指令为止,然后CPU就执行这条指令。
后面的就好理解了,CPU读了多少个单元,IP就加上多少,再重复上面的步骤。
不知道我理解的对不对 |