zoukankan      html  css  js  c++  java
  • call && jmp 指令

    对于jmp指令:

    (1)jmp short 标号
    相当于(ip)=(ip)+8位位移 跳转范围是【-128,127】
    (2)jmp near ptr 标号
    相当于(ip)=(ip)+16位位移 跳转范围是【-32768,32767】
    (3)jmp far ptr 标号
     相当于(CS)=标号所在段地址,(ip)=标号所在偏移地址


    前两个是段内转移,依据位移进行转移,其中第一个是短转移,第二个是近转移;第三个是段间转移,直接修改CS和IP来实现转移。

    还有转移地址在内存中的jmp指令,jmp word ptr 内存单元地址(段内转移),jmp dword ptr 内存单元地址(段间转移)。

    对于call && ret指令:


    (1)call 标号 
    相当于  push ip,然后(ip)=(ip)+16位位移
    (2)call far ptr 标号
    相当于  push cs,push ip,(cs)=标号所在段的段地址,(ip)=标号在段中的偏移地址
    (3)call 16位寄存器
    相当于 push ip  然后 jmp 16位reg
    (4)call word ptr 内存单元地址
    相当于 push ip   jmp  word  ptr  内存单元地址
    如:call word ptr ds:[0]
    (5)call dword ptr 内存单元地址
    相当于 push cs  push ip   jmp dword ptr 内存单元地址

    call常和ret 配合使用,ret的功能相当于pop ip,如果是段间转移,则用retf返回,相当于pop ip  pop cs

  • 相关阅读:
    树形dp入门
    D. Kilani and the Game(多源BFS)
    C. Ayoub and Lost Array
    poj3254(状压dp)
    CodeForces
    链式前项星(模板)
    “东信杯”广西大学第一届程序设计竞赛(同步赛)H
    最小生成树kruskal模板
    hdu-4763(kmp+拓展kmp)
    poj-3080(kmp+暴力枚举)
  • 原文地址:https://www.cnblogs.com/milantgh/p/3871195.html
Copyright © 2011-2022 走看看