Assembly MASM:传递到宏时寄存器的使用无效
我是MASM的新手,正在尝试使用宏完成一个练习,但是,每次我尝试向宏传递参数时,都会收到错误Assembly MASM:传递到宏时寄存器的使用无效,assembly,x86,masm,Assembly,X86,Masm,我是MASM的新手,正在尝试使用宏完成一个练习,但是,每次我尝试向宏传递参数时,都会收到错误错误A2032:寄存器的使用无效。据我所知,我正确地使用了宏。这是配置问题吗?下面是我的代码中引起这个问题的部分的要点。宏在单独的过程中调用,参数通过堆栈传递给该过程 mDoThing MACRO temp push edx push ecx mov edx,offset stringToWrite call WriteString mov edx,offset temp mov
错误A2032:寄存器的使用无效。据我所知,我正确地使用了宏。这是配置问题吗?下面是我的代码中引起这个问题的部分的要点。宏在单独的过程中调用,参数通过堆栈传递给该过程
mDoThing MACRO temp
push edx
push ecx
mov edx,offset stringToWrite
call WriteString
mov edx,offset temp
mov ecx,MAXSIZE
call ReadString
pop ecx
pop edx
ENDM
.code
main PROC
push offset arrayToFill
push offset strBuffer
call ReadVal
main ENDP
ReadVal PROC
push ebp
mov ebp,esp
mov edx,[ebp+8] ; strBuffer
mDoThing edx ; trying to use macro here
.... etc
ReadVal ENDP
您将edx
作为temp
参数传递,宏将尝试对其应用offset temp
,这是无效的,因为寄存器没有地址。PS:尽可能避免宏,并考虑使用函数。通过谷歌搜索这些信息,我可以使用很多信息。谢谢。您将edx
作为temp
参数传递,宏将尝试对其应用offset temp
,这是无效的,因为寄存器没有地址。PS:尽可能避免宏,并考虑使用函数。通过谷歌搜索这些信息,我可以使用很多信息。谢谢