匯編指令長度的判斷


在學匯編時總不知道匯編程序中的指令長度,於是進行對匯編指令長度判斷進行一個總結。如有不正確可以指出。

  規律如下:

      1. 沒有操作數的指令,指令長度為1個字節
      2. 操作數只涉及寄存器的指令指令長度為2個字節                                                                                                               如:mov bx ,ax
      3. 操作數涉及內存地址的指令,指令長度為3個字節                                                                                             如:mov ax,ds:[bx +si+idata]
      4. 操作數涉及立即數指令長度為:寄存器類型+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 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM