. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->寄存器(CPU工作原理)
主题 : :  检测点 2.3 遇到的问题  [待解决] 回复[ 41次 ]   点击[ 1839次 ]  
zy3287
[帖 主] [ 发表时间:2008-07-28 17:07 ] 
荣誉值:0
信誉值:0
注册日期:2008-07-17 17:25
个人认为检测2.3的问题 CPU几次修改IP非常有代表性,,,但是最后IP中的值这个问题问的有点不对了!!!

首先书中并没有介绍sub命令,以至看过答案为0思考了好半天没弄明白..

CPU几次修改IP,最开始个人认为是3次,,而且把图 2.15 - 2.26看了几十次才发现问题所在

结论 当mov ax,bx执行后 读入指令写入指令缓冲器 IP进行第一次修改 执行控制器执行指令 读取sub ax,ax

       sub ax,ax执行后 读入指令写入指令缓冲器 IP进行第二次修改 执行控制器执行指令 读取jmp ax

       jmp ax   执行  没有读入指令 但同时IP进行了第三次修改 

       jmp ax  的执行结果是对IP的第四次修改

前两步都是有运算结果的,而IP修改都是再得出运算结果之前,第三步可以理解为IP第三次修改后的运算结果是第四次修改

不知道我这样说算不算简单明了,希望对新人有所帮助
rebelsky
[第30楼] [ 回复时间:2010-12-01 15:05 ] 
荣誉值:3
信誉值:0
注册日期:2010-09-13 09:09
sub ax,ax  的意思是ax=ax-ax=0
所以最后结果为ax=0
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved