汇编语言如何跳转?

justin_0009 2007-08-07 08:24:17
比如我想从一个地址跳转到另一个地址上。


xxxx:xxxx
xxxx:xxxy
xxxx:xxxz

....
xxxx:xxxn


我想从xxxx:xxxz处跳转到xxxx:xxxn
有几种方法,各有什么优点或者缺点?


能不能讨论一下
...全文
1099 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
shell_shell 2007-08-09
  • 打赏
  • 举报
回复
JC∶ 简单条件转移指令助记符——有进位转移。CF=1 则转移(段内直接短转移,产生 8位的位移量,即转移地址的偏移量在—128 到+127之间)。

JCXZ∶指令助记符——条件转移。(CX)=0, 则转移(段内直接短转移?)。

JE∶ 简单条件转移指令助记符——(两数比较)相等转移(同JZ)。前次操作结果为0,ZF=1则转移(段内直接短转移)。

JG∶有符号数条件转移指令助记符——(有符号数比较)大于转移(等价JNLE)。SF和OF同号,且ZF=0 时转移。(段内直接短转移)

JGE∶ 有符号数条件转移指令助记符——(有符号数比较)大于或等于转移(等价于JNL)。 当SF和OF同号,或ZF=1, 则转移(段内直接短转移)。

JL∶ 有符号数条件转移指令助记符——(有符号数比较)小于转移(等价于JNGE)。当SF和OF异号,且ZF=0 时转移(段内直接短转移)。

JLE∶ 指令助记符——(有符号数比较)小于或等于转移(等价于JNG)。当SF和OF异号或ZF=1时转移(段内直接短转移)。

JMP∶ 指令助记符——无条件转移。无条件转移到指令所指示的目标地址,并从该地址开始执行。目标地址可以从指令中直接得到,也可以从指令中给定的寄存器或存储器中得到。
  一、段内直接短转移 JMP SHORT 标号。标号是转移的目的地址,由它确定一个 8位位移量。这个位移量被加到IP寄存器中。位移量是一个带符号数,负数表示向前转移,正数表示向后转移。转移范围是—128至+127。
  二、段内直接近转移 JMP NEAR PTR 标号。 标号是转移的目的地址,由它确定一个16位位移量。这个位移量被加到IP寄存器中。位移量是一个带符号数,负数表示向前转移,正数表示向后转移。转移范围是—32768至+32767。
  三、段内间接转移 ①JMP AX (段内寄存器间接转移);②JMP [BX](段内存储器间接转移)。将指令中给定的寄存器或存储单元中的内容送到IP中。
  四、段间直接转移 JMP FAR PTR 标号。 标号为符号地址。

JNB∶ 无符号数条件转移指令助记符——(无符号数比较)不低于转移(等价JAE)。CF=0,或ZF=1 则转移(段内直接短转移)。

JNBE∶无符号数条件转移指令助记符——(无符号数比较)不低于且不等于转移(等价JA)。CF=0, 且ZF=0 则转移(段内直接短转移)。

JNC∶ 简单条件转移指令助记符——前次操作无进或进位位转移。CF=0 则转移(段内直接短转移)。

JNE∶ 简单条件转移指令助记符——不相等转移(同JNZ)。前次操作结果不等于0,ZF=0 则转移(段内直接短转移)。

JNG∶ 指令助记符——(有符号数比较)不大于转移(等价于JLE)。当SF和OF异号或ZF=1时转移(段内直接短转移)。

JNGE∶指令助记符——(有符号数比较)不大于且不等于转移(等价于JL)。当SF和OF异号,且ZF=0 时转移(段内直接短转移)。

JNL∶ 指令助记符——(有符号数比较)不小于时转移(等价于JGE)。 当SF和OF同号,或ZF=1, 则转移(段内直接短转移)。

JNLE∶指令助记符——(有符号数比较)不小于且不等于转移(等价JG)。SF和OF同号,且ZF=0 时转移。

JNZ∶ 简单条件转移指令助记符——不相等转移(同JNE)。ZF=0 则转移(段内直接短转移)。

JZ∶ 简单条件转移指令助记符——相等转移(同JE)。ZF=1 则转移(段内直接短转移)。

需要那个用那个,看实际情况而定
大熊猫侯佩 2007-08-09
  • 打赏
  • 举报
回复
无条件跳转/条件跳转
weidianmeng1301 2007-08-09
  • 打赏
  • 举报
回复
jmp,je,jne,jz,jnz
其中除了jmp外都是需要判断条件进行跳转的,jmp可以进行cs,ip设置,不需要条件。jmp 偏移地址 或这 jmp 段地址:偏移地址
=================================
王爽汇编语言论坛应该对你的学习有帮助www.asmedu.net
paullbm 2007-08-09
  • 打赏
  • 举报
回复
xxxx:xxxz处的指令写成jmp 标号
xxxx:xxxn处的指令前标一个标号(注意此标号名称与"jmp 标号"中的标号一致)!
puppy52020 2007-08-08
  • 打赏
  • 举报
回复
jmp 标号
gaoqing000 2007-08-08
  • 打赏
  • 举报
回复
jmp 标号

czlyc006 2007-08-07
  • 打赏
  • 举报
回复
jmp无条件跳转
jx/jxx都是有条件跳转,具体可以查阅书本上的跳转表

21,453

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧