zoukankan      html  css  js  c++  java
  • 汇编指令长度计算方法(学习汇编)

    一、没有操作数的指令,指令长度为1字节。如
    es:
    ds:
    cbw
    xlat
    等。

    二、操作数只涉及寄存器的指令,指令长度为2字节。如
    mov al,[si]
    mov ax,[bx+si]
    mov ds,ax
    等。

    三、操作数涉及内存地址的指令,指令长度为3字节。如
    mov al,[bx+1]
    mov ax,[bx+si+3]
    lea di,[1234]
    mov [2345],ax
    等。

    四、操作数涉及立即数的指令,指令长度为:寄存器类型+2。
    8位寄存器,寄存器类型=1;16位寄存器,寄存器类型=2。如
    mov al,8 ;指令长度为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中使用的汇编指令,汇编编译器并不认识,如果在源程序中使用,那么在编译时便会报错。

  • 相关阅读:
    python2.7升python3.2
    SQL-基础学习使用的数据库资料
    SQL-基础学习2--ORDER BY ,DESC,WHERE, BETWEEN,AND ,OR ,IN ,NOT
    SQL-基础学习1--SELECT,LIMIT,DISTINCT,注释
    Python之Django-part 1
    python--文本处理1
    EXTJS4.2——8.Form+gride+linq进行前后端传输
    LINQ的实例
    高级委托使用
    C# 委托
  • 原文地址:https://www.cnblogs.com/ht-beyond/p/3901379.html
Copyright © 2011-2022 走看看