首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何避免在汇编中编码时跳转和跳转?

如何避免在汇编中编码时跳转和跳转?
EN

Stack Overflow用户
提问于 2016-01-20 15:10:55
回答 3查看 4.6K关注 0票数 4

我知道在这里和其他地方有很多关于在高级编程语言中避免goto的帖子。然而,从我在MIPS汇编中编写代码的经验来看(诚然很小),在实现控制流时,似乎没有一种明显的方法来避免汇编中的goto和跳转语句。

例如,如何在汇编中实现此代码(相当于C语言):

代码语言:javascript
运行
复制
if (x < 2)
  { ans = 0; }
else
  { ans = 1; }

是否有必要使用goto或jump语句,或者是否有适当的方法来避免它们,以支持更适当的代码实践?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-01-20 15:13:43

在高级编程语言中避免goto的建议只适用于-好吧-高级语言。

汇编语言是一种低级语言,跳转是必不可少的。

票数 16
EN

Stack Overflow用户

发布于 2016-01-20 16:33:36

你不能完全避免使用jump指令,因为你几乎已经直接和处理器对话了。

但是有了更好的实践,你可以应用高级编程,你仍然能够在汇编代码中使用更少的跳转。

一些想法,比如:

在块内跳转,而不是在块之间跳转。

按照传统的for/while/if/case序列,跳转到简单且可读的逻辑。

一块组装只做一件事,副作用最小。

尝试使用宏或函数,不要重复。

票数 3
EN

Stack Overflow用户

发布于 2021-03-02 14:38:26

当每个人都强迫你不要在高级语言中使用goto时,不使用goto (某种程度上)是可以理解的。但要把它带到集合中去..。在汇编编码时不使用jmp是完全不可能的,因为没有像for或while这样隐藏的goto指令。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34893644

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档