【发布时间】:2016-02-12 22:45:33
【问题描述】:
我将一些 MASM 代码移植到 NASM。除了需要本地标签外,该端口相当轻松。需要本地标签是因为 MASM 代码有多个过程,并且一些标签对过程是通用的。例如
;; MASM code
_FOO PROC
...
Exit_Failure:
...
Exit_Success:
...
ret
_FOO ENDP
_BAR PROC
...
Exit_Failure:
...
Exit_Success:
...
ret
_BAR ENDP
在 NASM 下,我必须使用本地标签。例如:
;; NASM code
global _FOO
section .text
_FOO:
...
.Exit_Failure:
...
.Exit_Success:
...
ret
当代码与调试信息组合在一起时,它会产生令人眼花缭乱的标签(对我来说)。代码会产生标签_FOO.Exit_Failure、_FOO.Exit_Success等等。除了碍眼之外,它们还使移植变得复杂,因为我必须在每个标签上添加一个点。
我似乎找不到 NASM 的“命名”代码部分的概念,因此标签可以限定范围。
如何确定程序范围以避免需要本地标签?
【问题讨论】:
标签: nasm