Assembly 我可以公开结构数组吗?
我是否可以将结构数组公开,以便使其他.asm文件中的函数能够访问并修改它Assembly 我可以公开结构数组吗?,assembly,masm,masm32,Assembly,Masm,Masm32,我是否可以将结构数组公开,以便使其他.asm文件中的函数能够访问并修改它 .data NODE STRUCT key dword ? value dword ? ends THREE 10 DUP (0,0) NODE 并在另一个.asm文件中创建一个函数,该函数将访问数组(三[0].KEY)并对其进行修改 .data NODE STRUCT key dword ? value dword ? ends THREE 10 DUP (0,0) NODE 我已经尝试过了,但是我遇到了另一
.data
NODE STRUCT
key dword ?
value dword ?
ends
THREE 10 DUP (0,0) NODE
并在另一个.asm文件中创建一个函数,该函数将访问数组(三[0].KEY)并对其进行修改
.data
NODE STRUCT
key dword ?
value dword ?
ends
THREE 10 DUP (0,0) NODE
我已经尝试过了,但是我遇到了另一个函数不知道节点是什么的问题。而且我似乎找不到如何使NODE typedef STRUCT。您可以使用PUBLIC指令使符号3可以从其他.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文件中重复一次。为了避免这种情况,您可以将其移动到单独的文件中,并同时包含.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 ?
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文件中重复一次。为了避免这种情况,您可以将其移动到单独的文件中,并同时包含.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 ?
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文件中重复一次。为了避免这种情况,您可以将其移动到单独的文件中,并同时包含.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 ?
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文件中重复一次。为了避免这种情况,您可以将其移动到单独的文件中,并同时包含.ASM文件。例如,您可以将以下内容放入名为node.inc
的文件中:
NODE STRUCT
key dword ?
value dword ?
NODE ENDS
并包括上面第二个示例的修改版本,如下所示:
INCLUDE node.inc
EXTERN THREE:NODE
.code
mov THREE[0].KEY, 1
特别是
公共
和外部
指令。特别是公共
和外部
指令。特别是公共
和外部
指令。特别是公共
和外部
指令。即使在我的.inc文件中有externdef,我仍然可以得到主asm文件和函数asm文件的链接错误。Main有未解析的函数,函数有未解析的三个值。我试图创建一个从堆栈接收数据的函数,主要是在用call按下按钮后调用它。在函数asm中,我将其定义为GetVal进程。。GetVal endp。是我的错误吗?听起来你是在单独链接文件,而不是在一起链接。可能您需要做的是类似于ml main.asm function.asm
。我认为您是对的。但是在我的资料或网上,我找不到如何像c一样链接文件。你能告诉我如何在masm32中搜索链接文件吗?或者如何构建makeit.bat文件?英语不是我的母语,所以可能这就是我错过它的原因。如果像ml main.asm function.asm
这样的东西不起作用,你应该在命令行或makeit.bat
文件中发布另一个问题,详细说明你正在运行的命令和收到的错误消息。用实际程序集文件的名称替换main.asm
和function.asm
。即使在my.inc文件中有externdef,我仍然会从main和function asm文件中得到链接错误。Main有未解析的函数,函数有未解析的三个值。我试图创建一个从堆栈接收数据的函数,主要是在用call按下按钮后调用它。在函数asm中,我将其定义为GetVal进程。。GetVal endp。是我的错误吗?听起来你是在单独链接文件,而不是在一起链接。可能您需要做的是类似于ml main.asm function.asm
。我认为您是对的。但是在我的资料或网上,我找不到如何像c一样链接文件。你能告诉我如何在masm32中搜索链接文件吗?或者如何构建makeit.bat文件?英语不是我的母语,所以可能这就是我错过它的原因。如果像ml main.asm function.asm
这样的东西不起作用,你应该在命令行或makeit.bat
文件中发布另一个问题,详细说明你正在运行的命令和收到的错误消息。用实际程序集文件的名称替换main.asm
和function.asm
。即使在my.inc文件中有externdef,我仍然会从main和function asm文件中得到链接错误。Main有未解析的函数,函数有未解析的三个值。我试图创建一个从堆栈接收数据的函数,主要是在用call按下按钮后调用它。在函数asm中,我将其定义为GetVal进程。。GetVal endp。是我的错误吗?听起来你是在单独链接文件,而不是在一起链接。可能您需要做的是类似于ml main.asm function.asm
。我认为您是对的。但是在我的资料或网上,我找不到如何像c一样链接文件。你能告诉我如何在masm32中搜索链接文件吗?或者如何构建makeit.bat文件?英语不是我的母语,所以也许这就是为什么我