汇编语言(MASM)中的malloc错误

时间:2017-10-27 22:57:46

标签: assembly x86 masm irvine32

我试图在汇编语言上创建名为" 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从堆中分配大小字节,并返回内存中已分配空间的地址。应通过堆栈传递此过程的参数。

由于

0 个答案:

没有答案