首页
社区
课程
招聘
[旧帖] [原创]常用转移指令整理 0.00雪花
2010-11-18 19:07 3359

[旧帖] [原创]常用转移指令整理 0.00雪花

2010-11-18 19:07
3359
转移分类:
1. 段内转移:只修改IP
    a. 短转移:-128~127
    b. 近转移:-32768~32767
2. 段间转移:修改CS和IP

1. offset 标号
   取得标号的偏移地址

2. 段内短转移
   jmp short 标号 (IP)=(IP)+8位位移
   转到标号处执行(并不包含转移的目的地址而是转移的位移)
   
   段内近转移
   jmp near ptr 标号 (IP)=(IP)+16位位移

3. 段间转移(远转移)
   jmp far ptr 标号
   (CS)=标号所在段的段地址;(IP)=标号在段中的偏移地址

4. jmp 16位reg
   (IP)=(16位reg)

5. jmp word ptr 内存单元地址(段内转移)
   (IP)=内存单元开头一个字

   jmp dword ptr 内存单元地址(段间转移)
   (CS)=(内存单元地址+2)
   (IP)=(内存单元地址)

6. jcxz 标号
   if((cx)==0) jmp short 标号

7. loop 标号
   (cx)--;
   if((cx)!=0) jmp short 标号

8. ret
   相当于:pop IP
   retf
   相当于:pop IP
           pop CS

9. call 标号
   相当于:push IP
           jmp near ptr 标号

   call far ptr 标号
   相当于: push CS
            push IP
            jmp far ptr 标号

10. call 16位reg
    相当于:push IP
            jmp 16位reg

11. call word ptr 内存单元地址
    相当于:push IP
            jmp word ptr 内存单元地址

    call dword ptr 内存单元地址
    相当于:push CS
            push IP
            jmp dword ptr 内存单元地址

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
点赞6
打赏
分享
最新回复 (4)
雪    币: 64
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
摆个poss 2010-11-18 19:48
2
0
你在看王爽的8086?
雪    币: 11
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
bluecain 2010-11-18 20:13
3
0
看过了,这里老记不清楚,记下来方便看。
雪    币: 26
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
zhenyangy 2016-5-14 10:01
4
0
有一些值得学习,比如call dword ptr 内存单元地址/call far ptr 标号和retf是对应使用的
雪    币: 1
活跃值: (13)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
aXinSr 2016-5-14 13:46
5
0
学习一下
游客
登录 | 注册 方可回帖
返回