我可以制作结构数组 public 吗?
Can I make array of structure public?
我可以创建结构数组 public,以便我可以在其他 .asm 文件中创建函数访问它并修改它。
.data
NODE STRUCT
key dword ?
value dword ?
ends
THREE 10 DUP (0,0) NODE
并且在另一个 .asm 文件中有一个函数可以访问数组 (THREE[0].KEY) 并修改它。
我试过了,但我遇到了另一个函数的障碍,不知道 NODE 是什么。而且我似乎找不到如何制作 NODE typedef STRUCT。
您可以使用 PUBLIC 指令使符号 THREE 可从其他 .ASM 文件访问。您还需要正确定义三个:
.data
NODE STRUCT
key dword ?
value dword ?
NODE ENDS
PUBLIC THREE
THREE NODE 10 DUP ({0,0})
要访问符号三,您需要使用 EXTERN 指令:
NODE STRUCT
key dword ?
value dword ?
NODE ENDS
EXTERN THREE:NODE
.code
mov THREE[0].KEY, 1
请注意,这需要在每个 .ASM 文件中重复两次 NODE 结构定义。为避免这种情况,您可以将其移至单独的文件并将其包含在两个 .ASM 文件中。例如,您可以将以下内容放入名为 node.inc
的文件中:
NODE STRUCT
key dword ?
value dword ?
NODE ENDS
并将其包含在我上面的第二个示例的修改版本中,如下所示:
INCLUDE node.inc
EXTERN THREE:NODE
.code
mov THREE[0].KEY, 1
我可以创建结构数组 public,以便我可以在其他 .asm 文件中创建函数访问它并修改它。
.data
NODE STRUCT
key dword ?
value dword ?
ends
THREE 10 DUP (0,0) NODE
并且在另一个 .asm 文件中有一个函数可以访问数组 (THREE[0].KEY) 并修改它。
我试过了,但我遇到了另一个函数的障碍,不知道 NODE 是什么。而且我似乎找不到如何制作 NODE typedef STRUCT。
您可以使用 PUBLIC 指令使符号 THREE 可从其他 .ASM 文件访问。您还需要正确定义三个:
.data
NODE STRUCT
key dword ?
value dword ?
NODE ENDS
PUBLIC THREE
THREE NODE 10 DUP ({0,0})
要访问符号三,您需要使用 EXTERN 指令:
NODE STRUCT
key dword ?
value dword ?
NODE ENDS
EXTERN THREE:NODE
.code
mov THREE[0].KEY, 1
请注意,这需要在每个 .ASM 文件中重复两次 NODE 结构定义。为避免这种情况,您可以将其移至单独的文件并将其包含在两个 .ASM 文件中。例如,您可以将以下内容放入名为 node.inc
的文件中:
NODE STRUCT
key dword ?
value dword ?
NODE ENDS
并将其包含在我上面的第二个示例的修改版本中,如下所示:
INCLUDE node.inc
EXTERN THREE:NODE
.code
mov THREE[0].KEY, 1