安徽理工大学计算机科学与技术系李歌兆《汇编语言》 跨段越问题 凡是使用寄存器为BX、SⅠ、D时,其默认段为DS,使用BP时,默认段 为SS。该规定为系统默认状态。当要否定默认状态,到非约定段寻找操作数 时,必须用跨段前缀指明操作数的段寄存器名。 汇编格式:段寄存器名:操作数地址。 功能:冒号“:”之前的段寄存器名指明操作数所在的段。 【例38】 MOV AX,DS:[BP MOv CX, SS: SI 该例中,DS:,SS:均为跨段前缀,此时默认状态无效,操作数的物 理地址PA由段寄存器内容左移4位加偏移EA形成。上述2条指令的源操作数 物理地址分别为: PAI=(DS)左移4位+BP PA2=(SS)左移4位+|S
安徽理工大学 计算机科学与技术系 李敬兆 《汇编语言》 ❖跨段越问题 凡是使用寄存器为BX、SI、DI时,其默认段为DS,使用BP时,默认段 为SS。该规定为系统默认状态。当要否定默认状态,到非约定段寻找操作数 时,必须用跨段前缀指明操作数的段寄存器名。 汇编格式:段寄存器名:操作数地址。 功能:冒号“ : ”之前的段寄存器名指明操作数所在的段。 【例3.8】 MOV AX,DS:[BP] MOV CX,SS:[SI] 该例中,DS:,SS:均为跨段前缀,此时默认状态无效,操作数的物 理地址PA由段寄存器内容左移4位加偏移EA形成。上述2条指令的源操作数 物理地址分别为: PA1 =(DS)左移4位+[BP] PA2 =(SS)左移4位+[SI]
安徽理工大学计算机科学与技术系李歌兆《汇编语言》 3.12与转移地址有关的寻址方式 用来确定转移指令及转子(ca)指令的转向地址。转移 地址是由各种寻址方式得到的有效地址和段地址相加而成的, 有效地址存入m寄存器中,段地址指定为CS段寄存器内容。 段内寻址 段内直接寻址 JMP NEAR PTR NEXT 段内间接寻址 JMP TABLE[BX 段间寻址 段间直接寻址 JMP FAR PTR NEXT 段间间接寻址 JMP DWORD PTRI BX
安徽理工大学 计算机科学与技术系 李敬兆 《汇编语言》 3.1.2 与转移地址有关的寻址方式 用来确定转移指令及转子(call)指令的转向地址。转移 地址是由各种寻址方式得到的有效地址和段地址相加而成的, 有效地址存入IP寄存器中,段地址指定为CS段寄存器内容。 • 段内寻址 段内直接寻址 JMP NEAR PTR NEXT 段内间接寻址 JMP TABLE [ BX ] • 段间寻址 段间直接寻址 JMP FAR PTR NEXT 段间间接寻址 JMP DWORD PTR [ BX ]
安徽理工大学计算机科学与技术系李歌兆《汇编语言》 (1)段内直接寻址 转向的有效地址=当前(P)+位移量(8bit6it 位移量 EA IP寄存器
安徽理工大学 计算机科学与技术系 李敬兆 《汇编语言》 (1) 段内直接寻址 转向的有效地址= 当前(IP) + 位移量(8bit/16bit) 位移量 IP寄存器 + EA
安徽理工大学计算机科学与技术系李歌兆《汇编语言》 【例38】 (1)JMP SHORT QUEST 其中 QUEST表示转移的符号地址,操作符 SHORT-表示是个 8位带符号数,数的范围是80H~7FH,即-128~+127。它只能 相对于当前IP(转移指令的下一条指令的首地址)所指的位置作 -128~+127范围内跳转,所以称为短跳转。 (2)JMP NEAR PTR PROGA 其中 PROGA表示转移的符号地址,操作符 NEAR PRT表示 是个16位带符号数,数的范围是8000H~7FFFH,即-32768 +32767。它只能相对于当前所指的位置作-32768~+32767范围 内跳转,所以称为近跳转
安徽理工大学 计算机科学与技术系 李敬兆 《汇编语言》 【例3.8】 (1)JMP SHORT QUEST 其中QUEST表示转移的符号地址,操作符SHORT表示是个 8位带符号数,数的范围是80H ~ 7FH,即 -128 ~ +127。它只能 相对于当前IP(转移指令的下一条指令的首地址)所指的位置作 -128 ~ +127范围内跳转,所以称为短跳转。 (2)JMP NEAR PTR PROGA 其中PROGA表示转移的符号地址,操作符NEAR PRT表示 是个16位带符号数,数的范围是8000H ~ 7FFFH,即 -32768 ~ +32767。它只能相对于当前IP所指的位置作-32768 ~ +32767范围 内跳转,所以称为近跳转
安徽理工大学计算机科学与技术系李歌兆《汇编语言》 (2)段内间接寻址 转向的有效地址是一个寄存器或存储单元的内容。可用 除立即数以外的任何一种数据寻址方式得到,所得到的转向 的有效地址取代IP寄存器的内容。 指令 根据数据寻址 转向的有效地址 数据寻址方式 方式计算出 EA值 或 转向的有效地址 存储单元
安徽理工大学 计算机科学与技术系 李敬兆 《汇编语言》 (2) 段内间接寻址 转向的有效地址是一个寄存器或存储单元的内容。可用 除立即数以外的任何一种数据寻址方式得到,所得到的转向 的有效地址取代IP寄存器的内容。 指令 转向的有效地址 数据寻址方式 或 根据数据寻址 方式计算出 EA值 转向的有效地址 存储单元