汇编网首页登录博客注册
jvhybg的学习博客
博客首页博客互动【做检测题】论坛求助

我的博客

个人首页 |  我的文章 |  我的相册 |  我的好友 |  最新访客 |  文章收藏 |  论坛提问 |  友情链接 |  给我留言  
图片载入中
学习动态
最新留言
好友圈
文章收藏
友情链接

[2009-08-07 10:43] 控制转移指令学习体会

1.无条件转移指令JMP
  CPU执行指令通常是按顺序一条一条地去执行,但实际上并非如此,CS:IP经常会跳过某些程序代码去执行另一个程序代码.当CS:IP遇到无条件跳转指令JMP时,就会停下当前要做的工作,而是去执行JMP交给的任务.这就如我们在办公室工作时一样,突然老总来到身边,交待我们马上去完成另一项任务,我们要无条件的去执行老总交给我们的任务,马上放下手头的工作,立即行动去执行老总的命令,并及时地完成另一项任务.此时JMP就相当于老总,CS:IP就相当于员工.
   我们理解了无条件转移指令JMP的含义后,看一下它的分类.
    JMP为两类:1.段内转移  2.段间转移
    1.段内转移:是指在同一段的范围内进行转移,此时只改变IP或EIP寄存器的内容.
    段内转移又分为两种:(1)段内直接短转移 (2)段内直接近转移
    (1)段内直接短转移:
     格式:JMP  SHORT  OPR
     执行操作:把(IP)+8位位移量送入(IP)中
               386及后继机型:把(EIP)+8位位移量送入(EIP)中
    如果操作数长度为16位,则还需(EIP)AND 0000FFFFHUDO 送入(EIP)中

    段内直接短转移只修改IP的值,修改范围在(-2*7-2*7-1)即在-128---127(用补码表示)的范围内.

    2.段间转移:是指从当前段转移到另一个段去执行程序,此时要修改CS,IP或EIP寄存器.
评论次数(0)  |  浏览次数(317)  |  类型(默认类型) |  收藏此文  | 
 
 请输入验证码  (提示:点击验证码输入框,以获取验证码