汇编时候出现跳转的错误~jump out of range

tongxinren 2007-11-18 09:18:51
一个小程序
大概就百行多
一个代码段
中间有个
je next
但是离next可能远了些
宏展开之后大概距离有200行
报错就是
jump out of range by 32 byte(s)
在宏中间加一句
mov ax,10
错误就变成了
jump out of range by 38 byte(s)
两个宏的话应该是越界无疑

但是改成 je near ptr next
和 je far ptr next
都还是一样报错,请问各位为什么?还有怎么改?
...全文
907 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
tongxinren 2007-11-19
  • 打赏
  • 举报
回复
哦,谢谢了~明白
Joke_Olive 2007-11-18
  • 打赏
  • 举报
回复 1
无条件转移指令JMP才有短、近、远多种寻址方式。
所有的条件转移指令只有短转移一种寻址方式。

看书要细心,程序设计问题不能有大概、好像。
tongxinren 2007-11-18
  • 打赏
  • 举报
回复
书上好像说可以在段内段间加far near跳转的吧?

我试试接力的方法
Joke_Olive 2007-11-18
  • 打赏
  • 举报
回复 1
条件转移只能用8位位移量。因此条件转移不支持加near或far 指针,这样的方法是你自己凭空想出来的吧?

当跳转距离超出 -128 ~ +127字节范围时,可以跳到近处某处的一条JMP指令上,通过JMP接力实现远距离跳转。


21,459

社区成员

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

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