我试图在汇编语言上创建名为" malloc"(内存分配)的宏。
然后这是我的代码如下
当我调试代码时,在第34行" ret 4",我收到错误"来源不可用"。
在Visual Studio的调用堆栈窗口,我看到了该消息
" [下面的框架可能不正确和/或缺失,没有为ntdll.dll加载符号]"太点。
我该如何修复错误?
我不知道错误出现的原因。
TITLE project6 (project6.asm)
INCLUDE Irvine32.inc
malloc MACRO aSize
push aSize
call alloc
ENDM
.data
array_size = 10
hHeap HANDLE ?
str1 BYTE "Heap size is: ",0
GetProcessHeap PROTO
.code
alloc PROC
push EBP
mov EBP,ESP
sub ESP,4 ; create a space for dealing HEAP_HANDLE
INVOKE GetProcessHeap
.IF eax == NULL
call WriteWindowsMsg
jmp quit
.ELSE
mov hHeap, eax
.ENDIF
add esp, 4 ; clean up the stack
pop ebp
ret 4
quit: exit
alloc ENDP
main PROC
malloc array_size
main ENDP
END main
" alloc" procedure从堆中分配大小字节,并返回内存中已分配空间的地址。应通过堆栈传递此过程的参数。
由于