2

我不确定如何解释 ASM 执行流程。到目前为止,我查看过的所有文件都有明确的跳转(Intel x86 AT&T 语法,即 jmp 或 jl)到 ASM 文件中的标签。

我的问题:当您到达标签末尾而没有明确跳转到其他标签时会发生什么。执行是否继续到下一个标签?

例子:

foo:
    opcodes
    ...

nextLablel:
    moreopcodes
    ...        

执行 'foo' 标签下的操作码后,汇编器是否移动到 'nextLabel'?

提前致谢!

4

1 回答 1

4

标签对实际代码是不存在的,所以是的,如果没有分支,代码将自然执行。汇编器将继续处理代码,忽略任何标签。标签只是作为在 jmp、je 等之后分支的便捷方式。

如果您的代码没有任何分支,您仍然可以拥有任意数量的标签。他们不会做任何事情,这将是一个非常糟糕的做法,但是您这说明了他们不会对自然代码流造成任何问题的想法。

于 2011-04-12T07:07:22.810 回答