Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Asm для начинающих > Ошибка "Нарушение прав доступа при записи"


Автор: Aratrok 16.4.2014, 21:03
Всем доброго времени суток. Я только начинаю работать с Ассемблером, так что в нем "полный новичек". Есть задание вычислить факториал числа.

В данной части кода, описывающей умножение двух операндов, возникает ошибка "Нарушение прав доступа при записи". Никак не могу понять почему.

Код

push ebp
mov ebp, esp
sub esp, 8

V equ <dword ptr[ebp-4]>
Y equ <dword ptr[ebp-8]>

mov esi, [ebp+16]
mov edi, [ebp+12] 

mov V, 2

mov Y, 0
mov ebx, 0
mov ecx, 10
clc
Cycle1:

mov eax, dword ptr[esi+4*ebx]
mul V
mov dword ptr[edi+4*ebx], eax
mov eax, Y
adc dword ptr[edi+4*ebx], eax

inc ebx

mov dword ptr[edi+4*ebx], edx
mov eax, dword ptr[esi+4*ebx]
mul V
adc dword ptr[edi+4*ebx], eax
mov Y, edx

inc ebx
dec ecx
jnz Cycle1

mov ebx, 0
mov ecx, 10
clc
Cycle2:
mov eax, dword ptr[edi+4*ebx]
mov dword ptr[esi+4*ebx], eax ;<---------------------Ошибка возникает в этой строке
inc ebx
dec ecx
jnz Cycle2


mov esp, ebp
pop ebp
ret 12


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)