是新组装的。使用C ++和MASM来打印增量值的副本的工作对我来说很好。我收到此错误:
..\..\..\..\Downloads\MASM\project.asm(24): error A2005: symbol redefinition : Store
1>..\..\..\..\Downloads\MASM\project.asm(32): fatal error A1010: unmatched block nesting : Store
CONSOLE equ -11
KEYBOARD equ -10
extrn Store: PROC
extrn increment: PROC
extrn Show: PROC
extrn ExitProcess: PROC
.data
.data?
c1 byte ? ;pass in usual reg /byte=8-bit char char
s1 word ? ;pass in usual reg /word=16-bit short short
us1 word ? ;pass in usual reg /word=16-bit short unsigned short
i1 dword ? ;pass in usual reg /dword=32-bit int or long int int
ull1 qword ? ;offset 48,56,64 /qword=64-bit long long int unsigned long long int
ll1 qword ? ;offset 48,56,64 /qword=64-bit long long int long long int
uc1 byte ? ;offset 48,56,64 /byte=8-bit char unsigned char
.code
Store PROC
mov rcx, c1 ;store param1
mov rdx, s1 ;store param2
mov r8, us1 ;store param3
mov r9, i1 ;store param4
mov r10, ull1 ;store param5
mov r11, ll1 ;store param6
mov r12, uc1 ;store param7
Store ENDP
Increment PROC
inc c1 ;increment param1
inc s1 ;increment param2
inc us1 ;increment param3
inc i1 ;increment param4
inc ull1 ;increment param5
inc ll1 ;increment param6
inc uc1 ;increment param7
Increment ENDP
Show PROC
Display
Show ENDP
Display:
mov c1, rcx ;
mov s1, rdx ;
mov us1, r8 ;
mov i1, r9 ;
mov ull1, r10 ;
mov ll1, r11 ;
mov uc1, r12 ;
pop rcx ;
pop rdx ;
pop r8 ;
pop r9 ;
pop r10 ;
pop r11 ;
pop r12 ;
如果它就在我的面前,请告诉我-我感觉自己像个傻瓜。编辑:对于所有代码-网站告诉我我的帖子代码太多,因此我认为它只是我代码的一部分。我错了。
[您要将Store
,Increment
和Show
定义为extrn
,因此您以后不能在此处定义它们-已经定义,因为它们来自外部来源!
删除那些extrn
定义。 (由于[[actual来自外部来源,因此仅需保留ExitProcess
。)
“ unmatched”部分可能只是先前错误的结果,并且由于该错误而忽略了Store PROC
行,这将使Store ENDP
不匹配。因此,一旦解决了extrn
问题,该错误也将消失。