清华大学出版社 TSINGHUA UNIVERSITY PRESS 与转移地址有关的寻址方式: 用来确定转移指令及转移指令的转向地址 段内寻址 段内直接寻址 JMP NEAR PTR NEXT 段内间接寻址 JMP TABLE I BX ·段间寻址 段间直接寻址 JMP FAR PTR NEXT 段间间接寻址 JMP DWORD PTRIBX
与转移地址有关的寻址方式: • 段内寻址 段内直接寻址 JMP NEAR PTR NEXT 段内间接寻址 JMP TABLE [ BX ] • 段间寻址 段间直接寻址 JMP FAR PTR NEXT 段间间接寻址 JMP DWORD PTR [ BX ] 用来确定转移指令及转移指令的转向地址
清华大学出版社 TSINGHUA UNIVERSITY PRESS (1)段内直接寻址 转向的有效地址=当前(P)+位移量8bit/16bi JMP SHORT NEXT MOV AX. o MOV BX. O MOV CX. O NEXT: ret 2A2:0005EBo9 JMP 0010 2A2∈0007B80000 MOV AX,0000 2A2:000ABB0000 MOV BX,0000 2A2:000DB90000 MOV CX,0000 2A2:0010CB RETF
(1) 段内直接寻址 转向的有效地址 = 当前(IP) + 位移量(8bit/16bit)
清华大学出版社 TSINGHUA UNIVERSITY PRESS NEXT MOV AX. O MOV BX O MOV CX. O J0 NEXT ret 12A2:0005B80000 MOV AX,0000 2A2:0008BB0000 MOV BX,0000 12A2:000BB90000 MOV CX,0000 2A2:000E70F5 30 0005 2A2:0010CB RETF 例: JMP NEARPTR NEXT近转移-32768~+32767 JMP SHORT NEXT 短转移128~+127
例: JMP NEAR PTR NEXT 近转移 -32768 ~ +32767 JMP SHORT NEXT 短转移 -128 ~ +127
清华大学出版社 TSINGHUA UNIVERSITY PRESS (2)段内间接寻址 转向的有效地址是一个寄存器或存储单元的内容。 (可用除立即数以外的任何一种数据寻址方式得到) vs ] TABLE=20A2H(BX)=1256H (S1)=528EH (DS)=2000H(232F8H)=3280H(264E4H)=2450H IMP BX ;(IP)=1256H JMP TABLE BXI JMP WORD PTR TABLEBX ;(IP)=3280H JMP BXIISI JMP WORD PTR BXIISI ;(IP)=2450H
(2) 段内间接寻址 转向的有效地址是一个寄存器或存储单元的内容。 (可用除立即数以外的任何一种数据寻址方式得到) 例: TABLE = 20A2H (BX) = 1256H (SI) = 528EH (DS) = 2000H (232F8H) = 3280H (264E4H) = 2450H JMP BX ; (IP)=1256H JMP TABLE[BX] JMP WORD PTR TABLE[BX] ; (IP)=3280H JMP [BX][SI] JMP WORD PTR [BX][SI] ; (IP)=2450H
清华大学出版社 TSINGHUA UNIVERSITY PRESS (3)段间直接寻址 用指令中提供的转向段地址和偏移地址取代CS和IP 例 code2 segment code1 segment next. jmp far ptrnext code2 ends code1 ends
code1 segment …… jmp far ptr next …… code1 ends code2 segment …… next: …... …… code2 ends (3) 段间直接寻址 用指令中提供的转向段地址和偏移地址取代CS 和 IP 例: