zoukankan      html  css  js  c++  java
  • 第九章.md

    第九章 转移指令的原理

    offset

    1567217374028

    start : mov ax, offset start


    jmp

    1567217694193

    • 1567217816106
    mov jmp short s				;	机器码	`EB 03`,03表示向后跳转3个字节大小	
    mov ax, 12					;  机器码 3位
    s: mov ax, ax	
    

    cpu不需要目的地址实现对IP的修改

    由上可知:

    1567218560330

    • 1567218667133

    • jmp far ptr 标号

      段间转移(远转移)

      1567218844488

    • 1567218978334

    • jmp在内存中的转移

      1. jmp word ptr 内存单元地址 jmp word ptr ds:[0]

      2. jmp dword ptr 内存单元地址

        1567219244319

        1567219309805


    jcxz指令

    1567219530630

    指令jcxz 标号相当于:

    ((cx) == 0) ? jmp short 标号: continue;


    loop指令

    所有循环指令都为短转移,所对应的机器码为偏移地址,不是目的地址,对ip修改范围-128 ~ +127

    while ((cx) != 0)
    {
        (cx) = (cx) - 1;
        ip = ip + 8位指令;
    }
    

    根据位移距离转移的目的

    为方便程序段在内存中的浮动装配,因为偏移距离可以使程序在任意内存单元都可执行,而固定地址会导致内存限制

  • 相关阅读:
    247. Strobogrammatic Number II 倒过来看也一样的数
    性能测试结果分析
    性能测试文档
    性能测试技术
    性能测试流程
    JMeter(7)插件
    Java同步工具类
    线程池
    死锁
    Lock显示锁
  • 原文地址:https://www.cnblogs.com/nsfoxer/p/14353807.html
Copyright © 2011-2022 走看看