(本地)标签如何在其自身的片段之外结束(TASM 8086)?

问题描述 投票:0回答:1

[我的教授经常在涉及DS的情况下使用这种编写代码的模式。

ASSUME CS:CODE,DS:DATA

DATA SEGMENT
[...]
DATA ENDS

CODE SEGMENT
START:
[...]
CODE ENDS
END START
END

根据他的概念,我们这样做是为了使汇编器检查数据段。但是,如果没有有效的解释,我无法真正达成共识...

标签如何在段外结束?

为什么汇编器没有它就不能检查DS?

装配中的标签是否不同?

assembly x86-16 tasm
1个回答
0
投票

END START不是start标签的“结尾”。标签本身没有结尾,长度或范围。 (为此使用proc foo / endproc,除非仅是MASM而不是TASM)。

END START是整个asm文件的结尾,并且还将入口点设置为指定的标签。这是用于此目的的指令的怪异名称,但是TASM很旧。


将标签视为零宽度标签,您可以从其他地方引用,仅此而已。

如果您要调用的函数具有代码块,请在其前面粘贴标签,以便可以将call标记到该位置。该功能的机器代码有一定的大小,但标签没有大小。它只是标记块的开始。 (因此,标签始终只有1个地址。)

© www.soinside.com 2019 - 2024. All rights reserved.