原文鏈接:https://blog.csdn.net/liuchuo/article/details/51990669
指令長度=操作碼的長度+操作數地址的長度
1.段內跳轉
JMP指令佔1個字節。
操作數的地址長度 = (目標地址-指令當前地址)//若能用1個字節表示,則佔用1個字節,那麼整體指令長度爲2個字節;若需2個字節表示,則佔用2個字節,此時整體指令爲3個字節。
比如:
0113 jmp 0185 ;0185h-0113h=72h,72h可用1個字節表示,加上JMP的一個字節,一共指令長度爲2個字節;
0113 jmp 0845 ;0845h-0113h=732h,732h需用2個字節表示,加上JMP的一個字節,一共指令長度爲3個字節。
2、段間跳轉
指令長度爲5字節。如jmp 1234:5678,整體指令長度爲5.
直接轉移 IP = 位移量 + 指令長度
間接轉移 IP = 尋址方式求出的EA(有效地址)的值
直接轉移中
短轉移JMP SHORT OPR 8位位移量
位移量需要滿足前後跳轉的需要,所以是一個帶符號數轉移格式只允許在-128~127之間轉移
近轉移JMP NEAR PTR OPR 16/32位位移量
16位在實模式下段長爲64KB,所以16位位移量可以轉移到段內的任一個位置