assume cs:code, ds:data, ss:stack
; 设置数据段
data segment
db 128 dup (0)
data ends
; 设置栈段
stack segment stack
db 128 dup (0)
stack ends
; 设置代码段
code segment
start: mov ax, stack
mov ss, ax
mov sp, 128
mov ax, data
mov ds, ax
mov ax, 2000H
mov ds:[0], ax
mov ds:[2], 6666H
;jmp word ptr ds:[0] ; IP = ds:[0]的字型数据, 修改ip的值
; dword 表示双字
jmp dword ptr ds:[0] ; ip = ds:[0], cs=ds:[2], 修改cs, ip的值
mov ax, 4C00H
int 21H
code ends
end start
assume cs:code, ds:data, ss:stack
; 设置数据段
data segment
db 128 dup (0)
data ends
; 设置栈段
stack segment stack
db 128 dup (0)
stack ends
; 设置代码段
code segment
start: mov ax, stack
mov ss, ax
mov sp, 128
mov ax, data
mov ds, ax
mov word ptr ds:[0], OFFSET s
mov word ptr ds:[2], OFFSET s1
mov word ptr ds:[4], OFFSET s2
mov bx, 2
; 地址也是一种数据
jmp word ptr ds:[bx] ; IP = ds:[0]的字型数据, 修改ip的值
s: mov ax, 1000H
jmp over
s1: mov ax, 1001H
jmp over
s2: mov ax, 1002H
jmp over
over: mov ax, 4C00H
int 21H
code ends
end start