汇编语言堆栈框架访问冲突读取位置问题

时间:2021-06-10 15:41:33

标签: assembly x86

这是我在 stackoverflow 中的第一篇文章。我正在尝试创建一个堆栈帧过程,但我不知道为什么在循环中它会显示“访问冲突读取位置 0x0033B000”。希望有人能帮我解决这个问题。

代码如下:

INCLUDE Irvine32.inc

.data
arr1 SDWORD -4, 7, -5, 3, 6, 2
arr2 SDWORD 4, 7, 5
msg1 byte "Average 1: ",0
msg2 byte "Average 2: ",0

.code
main PROC

push LENGTHOF arr1 
push OFFSET arr1 
call computeAve
mov edx,offset msg1
call writestring
call writeint
call crlf

push LENGTHOF arr2 
push OFFSET arr2 
call computeAve
mov edx,offset msg2
call writestring
call writeint
call crlf

main ENDP

computeAve PROC
push ebp
mov ebp,esp
mov esi,[ebp+8]
mov eax,0
mov ecx,[ebp+12]
add eax, [esi]
L1:
    add eax,[esi]
    add esi,4
    Loop L1
mov edx,0
mov ebx,[ebp+12]
idiv ebx
pop ebp
ret 8
computeAve ENDP

End main

0 个答案:

没有答案
相关问题