彙編:轉移目的地址在記憶體中
阿新 • • 發佈:2019-01-13
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