jmp short / jmp near
在一般的汇编语言中,如果源代码中的操作数有立即数,那么其对应的机器码中也应有这个立即数,而jmp short 和 jmp near不同,jmp short 和 jmp near在机器码中给出的是一个位移,你要用这个位移去加上IP的值才可以得到一个新的IP。
jmp far ptr
机器码中给出的是一个CS:IP的形式,即直接跳转到给出地址处。
示例:
assume cs:code
code segment
start:
mov ax, 0123H
jmp short s ;机器码为EB03,这里给出的03是位移,即IP=IP+3,新的IP才是偏移地址
mov ax, 0011H
s: add ax, 1
jmp far ptr s0 ;机器码为EA13016A07,这里给出的13016A07是段地址与偏移地址,前四位是低地址存放IP值0113,后四位是高地址存放CS值076A
db 256 dup(0)
mov ax, 2233H
s0: add ax, 1
code ends
end start
以上关于机器码的内容只需了解即可,在实际汇编编写时没有太大影响