结果如下:
1 assume cs:code
2 data segment
3 dd 12345678h
4 data ends
5
6 code segment
7 start: mov ax,data
8 mov ds,ax
9 mov bx,0
10 mov [bx],bx ;这是一个段间转移的jmp操作,利用bx的值作为ip,利用bx+2
11 mov [bx+2],cs ;作为CS的值。
12 jmp dword ptr ds:[0]
13
14 mov ah,4ch
15 int 21h
16
17 code ends
18 end start
【实验】debug跟踪结果
Microsoft(R) Windows DOS
(C)Copyright Microsoft Corp 1990-2001.
D:\ASM>debug j92.exe
-r
AX=0000 BX=0000 CX=0025 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000
DS=14B4 ES=14B4 SS=14C4 CS=14C5 IP=0000 NV UP EI PL NZ NA PO NC
14C5:0000 B8C414 MOV AX,14C4 ;第一条指令地址
-t
AX=14C4 BX=0000 CX=0025 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000
DS=14B4 ES=14B4 SS=14C4 CS=14C5 IP=0003 NV UP EI PL NZ NA PO NC
14C5:0003 8ED8 MOV DS,AX
-t
AX=14C4 BX=0000 CX=0025 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000
DS=14C4 ES=14B4 SS=14C4 CS=14C5 IP=0005 NV UP EI PL NZ NA PO NC
14C5:0005 BB0000 MOV BX,0000
-t
AX=14C4 BX=0000 CX=0025 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000
DS=14C4 ES=14B4 SS=14C4 CS=14C5 IP=0008 NV UP EI PL NZ NA PO NC
14C5:0008 891F MOV [BX],BX DS:0000=5678
-t
AX=14C4 BX=0000 CX=0025 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000
DS=14C4 ES=14B4 SS=14C4 CS=14C5 IP=000A NV UP EI PL NZ NA PO NC
14C5:000A 8C4F02 MOV [BX+02],CS DS:0002=1234
-t
AX=14C4 BX=0000 CX=0025 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000
DS=14C4 ES=14B4 SS=14C4 CS=14C5 IP=000D NV UP EI PL NZ NA PO NC
14C5:000D FF2E0000 JMP FAR [0000] DS:0000=0000
-t
AX=14C4 BX=0000 CX=0025 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000
DS=14C4 ES=14B4 SS=14C4 CS=14C5 IP=0000 NV UP EI PL NZ NA PO NC
14C5:0000 B8C414 MOV AX,14C4 ;jmp后cs:ip指向
- |