段内跳转
给出偏移地址 jmp [near|short] 偏移地址
偏移地址: 要跳转的地址距离jmp语句的相对位置
near:
跳转距离远 index > 128 index < -127
index是一个16位偏移量
short:
跳转距离近 -127 < index < 128
index是一个8位偏移量
段间跳转
直接给出段地址和偏移地址 计算方式: (段地址<<4)+偏移地址 = 跳转的目标地址
对Hello World的改进
start:
mov ax, 0xb800
mov ds, ax
mov byte[0x00], 'H'
mov byte[0x01], 0x06
mov byte[0x02], 'e'
mov byte[0x03], 0x06
mov byte[0x04], 'l'
mov byte[0x05], 0x06
mov byte[0x06], 'l'
mov byte[0x07], 0x06
mov byte[0x08], 'o'
mov byte[0x09], 0x06
mov byte[0x0a], ' '
mov byte[0x0b], 0x06
mov byte[0x0c], 'W'
mov byte[0x0d], 0x06
mov byte[0x0e], 'o'
mov byte[0x0f], 0x06
mov byte[0x10], 'r'
mov byte[0x11], 0x06
mov byte[0x12], 'l'
mov byte[0x13], 0x06
mov byte[0x14], 'd'
mov byte[0x15], 0x06
loop:
; jmp short loop
jmp near loop
current:
times 510-(current-start) db 0
db 0x55, 0xaa