我不确定如何解释ASM执行流程。到目前为止,我所看到的所有文件都有明确的跳转(Intel x86 AT& T语法,即jmp或jl)到ASM文件中的标签。
我的问题:当你到达标签的末尾而没有明确跳转到其他标签时会发生什么。执行会继续进入下一个标签吗?
示例:
foo:
opcodes
...
nextLablel:
moreopcodes
...
执行'foo'标签下的操作码后,汇编程序是否移到'nextLablel'上?
提前致谢!
答案 0 :(得分:3)
标签不存在于实际代码中,所以是的,如果没有分支,代码将自然执行。汇编器将继续使用代码,忽略任何标签。标签就是在jmp,je等之后进行分支的便捷方式。
如果您的代码没有任何分支,您仍然可以拥有任意数量的标签。他们不会做任何事情,这将是一个非常糟糕的做法,但你这说明了他们不会对自然代码流造成任何问题的想法。