现在的位置: 首页 > 综合 > 正文

汇编指令长度计算方法

2018年04月06日 ⁄ 综合 ⁄ 共 585字 ⁄ 字号 评论关闭

  1. 指令长度与寻址方式有关系,规律或原则如下: 
  2.  
  3. 一、没有操作数的指令,指令长度为1字节。如 
  4. es: 
  5. ds: 
  6. cbw 
  7. xlat 
  8. 等。 
  9.  
  10. 二、操作数只涉及寄存器的指令,指令长度为2字节。如 
  11. mov al,[si] 
  12. mov ax,[bx+si] 
  13. mov ds,ax 
  14. 等。 
  15.  
  16. 三、操作数涉及内存地址的指令,指令长度为3字节。如 
  17. mov al,[bx+1] 
  18. mov ax,[bx+si+3] 
  19. lea di,[1234] 
  20. mov [2345],ax 
  21. 等。 
  22.  
  23. 四、操作数涉及立即数的指令,指令长度为:寄存器类型+2。 
  24. 8位寄存器,寄存器类型=1;16位寄存器,寄存器类型=2。如 
  25. mov al,8 ;指令长度为2 
  26. mov ax,8 ;指令长度为3 
  27. 等。 
  28.  
  29. 五、跳转指令,分3种情况,指令长度分别为2、3、5字节。 
  30. 1、段内跳转,指令长度=(目标地址-指令当前地址)+1 
  31. jmp指令本身占用1个字节。 
  32. (目标地址-指令当前地址)若能用1个字节表示,则占用1个字节,整体指令长度为2字节;如 
  33. 0113 jmp 0185 ;0185h-0113h=72h,72h可用1个字节表示 
  34. 若需2个字节表示,则占用2个字节,整体指令为3个字节。如 
  35. 0113 jmp 0845 ;0845h-0113h=732h,732h需用2个字节表示 
  36. 2、段间跳转,指令长度为5字节。如 
  37. jmp 1234:5678 

抱歉!评论已关闭.