. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->寄存器(CPU工作原理)
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  ip修改次数问题:  [待解决] 回复[ 6次 ]   点击[ 411次 ]  
lhk3355
[帖 主]   [ 发表时间:2010-11-20 11:57 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2010-11-17 23:03
代码段 
1000:0 mov ax,8
      3 jmp ax
      5 mov ax,0
      8 mov bx,ax
      a jmp bx
问   运行到 1000a 时IP修改了几次?
     我个人理解   ip 从0到3 再到8 再到 A 又到8  应该是4次 是这样么
lhk3355
[第1楼]   [ 回复时间:2010-11-20 12:05 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2010-11-17 23:03
mov ax,8执行完后——第一次修改IP  3  
      jmp ax 加载后——第二次修改IP  5  
      jmp ax 执行后——第三次修改IP  8  
        
     mov bx,ax执行后——第四次修改IP  A  
     jmp bx 加载后——第五次修改IP  8 
     jmp bx 执行后——第六次修改IP   a  
是这样么?
wrsg
[第2楼]   [ 回复时间:2010-11-21 13:12 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2010-11-21 12:54
1.mov ax,8  //CPU在内存读取该指令后IP值+1(第一次修改),然后在执行
2.jmp ax    //读取该指令后IP值+1(第二次修改),然后执行指令 IP=ax值,(第三次修改)
3.mov bx,ax  //IP第四次修改
4.jmp bx    //读取该指令后IP值+1(第五次修改),然后执行指令 IP=bx值,(第六次修改)
lhk3355
[第3楼]   [ 回复时间:2010-11-22 14:55 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2010-11-17 23:03
谢谢
bzyxtsg
[第4楼]   [ 回复时间:2010-12-27 14:44 ]   [引用]   [回复]   [ top ] 
荣誉值:14
信誉值:6
注册日期:2010-12-20 13:34
wrsg 是正解
bzyxtsg
[第5楼]   [ 回复时间:2010-12-29 11:46 ]   [引用]   [回复]   [ top ] 
荣誉值:14
信誉值:6
注册日期:2010-12-20 13:34
CPU从1000:0处开始执行指令当执行完1000:10处的指令后CPU几次修改IP__3___。    
1指令#  1000:0 mov ax,8    
2指令# 1000:3 jmp ax    
3指令# 1000:5 mov ax,0    
4指令# 1000:8 mov bx,ax    
5指令# 1000:10 jmp bx    
 1、 4    
 2、 5    
 3、 6    
 4、 7    
解析:1000:0    起始地址  ip 0 
      
1000:0  movax,8  读取1指令ip0-3(由0指向3)   指向2指令   
第1次 
      
1000:3   jmp ax    执行1指令,                指向3指令     ip 3-5        
第2次    

执行2指令:ip跳至8[1000:5 mov ax,0 跳过不执行,直接到ip=8处] 指向4指令  ip 5-8 
第3次  
       
      1000:8   mov bx,ax 读取4指令 ip指向0a   指向5指令      
第4次  
      1000:10  jmp bx   执行4指令 读取下一指令 ip指向0c(0a+2)   
第5次 
   执行5指令 ip跳至8   指向4指令   
第6次 
                      


    至此到10处指令执行完毕,然后在地址8和10处不停的跳。跳来跳去,不知道cpu累不累,也许今天太冷,跳跳暖和下。
walykyy
[第6楼]   [ 回复时间:2011-03-01 11:27 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2011-02-21 22:36
mov ax,0 这句不执行吗?凡是这样的例子这句都不执行???疑惑
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved