汇编学习--jmp指令
来源:互联网 发布:studio软件怎么用 编辑:程序博客网 时间:2024/05/17 00:51
jmp reg IP=(reg);
jmp short 标号:IP=IP+8位位移(CPU在执行jmp指令时,并不知道跳转的地址。它只是计算是相对位移)
jmp near ptr 标号:IP = IP+16位位移
jmp far ptr 标号:段间转移 又称远转移
(CS)=标号所在段的段地址;(IP)=标号所在段中的偏移地址
jmp word ptr 内存地址:
(IP)=内存地址开始的第一个字
jmp dword ptr 内存地址
(CS)=(内存单元地址+2)的字
(IP)=(内存单元地址)
jmp指令用法总结:
1.直接用法(只能在Debug下使用的汇编指令):
jmp 段地址:偏移地址
功能:修改CS、IP的内容
例子:jmp 55BA:8
执行后:(CS)=55EAH, (IP)=0008H
2.根据标号进行转移的用法:
(1).转移的目的地址不在指令中,依据位移进行转移(段内转移)
a.jmp short 标号(IP的修改范围为-128至127)
功能:(IP)=(IP)+8位位移
b.jmp near ptr 标号(IP的修改范围为-32768至32767)
功能:(IP)=(IP)+16位位移
注:依据位移进行的转移是段内转移,位移=标号处的地址-jmp指令后的第一个字节的地址。
(2).转移的目的地址在指令中(段间转移)
jmp far ptr 标号
功能:用标号的段地址和偏移地址修改CS和IP
(CS)=标号所在段的段地址;(IP)=标号所在段的偏移地址
例子:略
3.转移地址在寄存器中的用法:
jmp 某一合法寄存器
功能:用寄存器中的值修改IP
例子:jmp ax
执行后:(IP)=(ax)
注意:合法寄存器是指通用寄存器。一个有趣的现象:jmp ip在debug下调试也是
错误的。字面上理解:(IP)=(IP),但CPU并不支持
4.转移地址在内存中的用法:
(1).jmp word ptr 内存单元地址(段内转移)
功能:从内存单元地址出开始存放着一个字,是转移的目的偏移地址
例子:mov ax,0123H
mov [bx],ax
jmp word ptr [bx]
执行后:(IP)=0123H
(2).jmp dword ptr 内存单元地址(段间转移)
功能:从内存单元地址处开始存放着两个字,高地址处的字是转移的目的段地址,低地址处是转移的目的偏移地址
例子:mov ax,0123H
mov [bx],ax
mov word ptr [bx+2],0
jmp dword ptr [bx]
执行后:(CS)=0, (IP)=0123H
- 汇编学习--jmp指令
- 汇编jmp指令
- 汇编jmp指令用法
- 汇编Jmp指令总结
- 汇编 jmp指令
- 一步步学习汇编(10)之jmp指令原理分析
- 汇编指令jmp的理解
- 汇编转移指令jmp原理
- 汇编指令jmp call ret 变形
- 汇编指令CALL与JMP的区别
- 汇编学习笔记3——jmp命令与DEBUG进阶指令
- 汇编学习笔记---标号offset---jmp
- jmp指令
- JMP指令
- jmp指令
- jmp 指令
- jmp指令
- JMP指令
- 继承
- 如何禁止搜索引擎收录网页
- TCP连接:SYN ACK RST UTG PSH FIN
- 关于vim,ctags的一个小技巧
- js通用函数
- 汇编学习--jmp指令
- QRegExp正则表达式
- mysql 分页
- UniDAC
- Windows和Linux下进程、线程理解
- JRTPLIB的几个重要类说明
- asp获取网页源码模拟登陆提交等类
- FrameBuffer 原理、实现与应用
- 转:Qt的正则表达式和QRegExp