assembly A2034错误“必须在段块中”是什么意思?

hgb9j2n6  于 7个月前  发布在  其他
关注(0)|答案(1)|浏览(152)

我正在使用Visual Studio 2022创建一个MASM x86汇编程序。我创建了以下文件:
NewProcs.inc

.NOLIST
;OPTION CASEMAP:NONE        
NewProc PROTO

字符串
NewProcs.asm

INCLUDE NewProcs.inc    
NewProc PROC
; no commands here just for testing purposes
NewProc ENDP


我还设置了项目的属性,以包含.inc和.asm文件所在的文件夹。
我犯了两个错误:

  • A2034必须在段块中:NewProc
  • A1010不匹配的块嵌套:NewProc

我有

.386
.model flat,stdcall
.stack 4096


在我的主程序,所以我试图添加到inc文件,但没有帮助。
我对汇编语言非常陌生,这些错误对我来说都没有意义(尤其是第二个)
有什么想法我需要解决这些问题吗?

qyyhg6bp

qyyhg6bp1#

@Jester建议添加.code,这让我朝着正确的方向前进。完整的解决方案如下:

  • 我首先删除了添加到项目属性中的所有目录,它们不再需要。
  • 我将.inc和.asm文件作为现有文件添加到项目中
  • 我对.inc和.asm文件做了如下修改,主要的修改是添加了.code和STDCALL,因为我把它们作为.model的一部分使用

NewProcs.inc

NewProc PROTO STDCALL

字符串
NewProcs.asm

INCLUDE NewProcs.inc    

.386
.model flat,stdcall
.stack 4096

.code
NewProcs PROC STDCALL

ret
NewProcs ENDP

END

相关问题