为何要避免这样的跳转指令?
时间:2010-12-15
来源:互联网
cmp x, 1
je doIt
jne more
doIt:
…
more:
谢谢
je doIt
jne more
doIt:
…
more:
谢谢
作者: lianghua19 发布时间: 2010-12-15
如果不是JE就是JNE je doit
下面直接跟 JMP MORE
下面直接跟 JMP MORE
作者: znxllyuan 发布时间: 2010-12-15
条件转移指令是短转移,也就是这条指令到目标指令间的偏移不能超过8位二进制数(-218~+127)。如果doIt标号后到more标号前的程序段比较长,超过127个字节,则jne more就会越界(无法转移)。
作者: shzhfu 发布时间: 2010-12-15
转移指令,在发生跳转时是需要额外的时序的。所以,一般地将少可能的去跳转,更可能的情况继续。
你这里就更夸张了,两个情况,竟然两度都要它跳转,这不明摆着是浪费吗。最起码可以写成:
cmp x, 1
jne more
doIt:
...
more:
...
如果这样的布局,哪怕是跳转的条件反置了,出现了如 #2楼 朋友所说的超出 short 类范围的问题,一般也可以通过在程序的开始处加上 .386 或更高的 cpu 级指定语句来解决,这样可以使用 near 类的跳转范围而没有了这样的限制。如果是 dos16 类的程序的话,需要在 .386 语句前加上 .model 语句。
你这里就更夸张了,两个情况,竟然两度都要它跳转,这不明摆着是浪费吗。最起码可以写成:
cmp x, 1
jne more
doIt:
...
more:
...
如果这样的布局,哪怕是跳转的条件反置了,出现了如 #2楼 朋友所说的超出 short 类范围的问题,一般也可以通过在程序的开始处加上 .386 或更高的 cpu 级指定语句来解决,这样可以使用 near 类的跳转范围而没有了这样的限制。如果是 dos16 类的程序的话,需要在 .386 语句前加上 .model 语句。
作者: zara 发布时间: 2010-12-15
有没有人能用PIPELINE的理论来解决?
这题考察的好像是管道无效代码
这题考察的好像是管道无效代码
作者: lianghua19 发布时间: 2010-12-15
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28