zoukankan      html  css  js  c++  java
  • 汇编指令长度的判断

    其中IP=IP+所读指令的字节数。

    那么,所读指令的字节数应该怎么判断呢?

    汇编指令长度与寻址方式有关,规律或原则如下:

    一、没有操作数的指令,指令长度为1个字节

    二、操作数只涉及寄存器的的指令,指令长度为2个字节

        如:mov bx,ax

    三、操作数涉及内存地址的指令,指令长度为3个字节

        如:mov ax,ds:[bx+si+idata]

    四、操作数涉及立即数的指令,指令长度为:寄存器类型+1

        8位寄存器,寄存器类型=1,如:mov al,8;指令长度为2个字节

        16位寄存器,寄存器类型=2,如:mov ax,8;指令长度为3个字节

    五、跳转指令,分为2种情况:

    1、段内跳转(指令长度为2个字节或3个字节)

    jmp指令本身占1个字节

    段内短转移,8位位移量占一个字节,加上jmp指令一个字节,整条指令占2个字节

    如:jmp short opr

    段内近转移,16位位移量占两个字节,加上jmp指令一个字节,整条指令占3个字节

    如:jmp near ptr opr

    2、段间跳转,指令长度为5个字节

    如:jmp dword ptr table[bx][di]

      jmp far ptr opr

      jmp dword ptr opr 

    注意:形如“jmp 1234:5678”的汇编指令,是在Debug中使用的汇编指令,汇编编译器并不认识,如果在源程序中使用,那么在编译时便会报错。

    转自:https://blog.csdn.net/qq_36499686/article/details/78302165?locationNum=2&fps=1

  • 相关阅读:
    Thymeleaf+Spring使用自己的工具类
    bootstrap 响应式布局
    bootstrap 流布局
    bootstrap 布局
    bootstrap 新建网页
    quick 定时更新函数
    acm hdoj 1157
    acm hdoj 今年暑假不ac
    quick removeTileMaptile
    quick schedule 的添加和移除
  • 原文地址:https://www.cnblogs.com/2f28/p/9903445.html
Copyright © 2011-2022 走看看