汇编指令长度计算方法(学习汇编)
一、沒有操作數(shù)的指令,指令長度為1字節(jié)。如
es:
ds:
cbw
xlat
等。
二、操作數(shù)只涉及寄存器的指令,指令長度為2字節(jié)。如
mov al,[si]
mov ax,[bx+si]
mov ds,ax
等。
三、操作數(shù)涉及內(nèi)存地址的指令,指令長度為3字節(jié)。如
mov al,[bx+1]
mov ax,[bx+si+3]
lea di,[1234]
mov [2345],ax
等。
四、操作數(shù)涉及立即數(shù)的指令,指令長度為:寄存器類型+2。
8位寄存器,寄存器類型=1;16位寄存器,寄存器類型=2。如
mov al,8 ;指令長度為2
mov ax,8 ;指令長度為3
等。
五、跳轉指令,分為2種情況:
1、段內(nèi)跳轉(指令長度為2個字節(jié)或3個字節(jié))
jmp指令本身占1個字節(jié)
段內(nèi)短轉移,8位位移量占一個字節(jié),加上jmp指令一個字節(jié),整條指令占2個字節(jié)
如:jmp short opr
段內(nèi)近轉移,16位位移量占兩個字節(jié),加上jmp指令一個字節(jié),整條指令占3個字節(jié)
如:jmp near ptr opr
2、段間跳轉,指令長度為5個字節(jié)
如:jmp dword ptr table[bx][di]
或jmp far ptr opr
或jmp dword ptr opr
注意:形如“jmp 1234:5678”的匯編指令,是在Debug中使用的匯編指令,匯編編譯器并不認識,如果在源程序中使用,那么在編譯時便會報錯。
總結
以上是生活随笔為你收集整理的汇编指令长度计算方法(学习汇编)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 适合印在T恤上的创意文字28句
- 下一篇: 形容母爱伟大的排比句165个