Выходит ошибка Необработанное исключение в "0x0007102f" в "Lab08.exe": 0xC0000005: Нарушение прав доступа при чтении "0x00078000". Как исправить - Assembler

Узнай цену своей работы

Формулировка задачи:

.586
.model flat, stdcall
option casemap :none ; case sensitive
; Раздел подключения библиотек
include \masm32\include\windows.inc
include \masm32\include\kernel32.inc
include \masm32\include\user32.inc
includelib \masm32\lib\kernel32.lib
includelib \masm32\lib\user32.lib
; Сегмент данных
.data
x dd 5
src db "ABC "
dst db 20 dup(" ")
; Сегмент кода
.code
main:
xor EAX, EAX
xor EBX, EBX
xor EDX, EDX
xor EDI, EDI
 
lea ESI, src
mov EDX, x
copy proc
copying:
lea EDI, dst
mov ECX, 4
rep movsb
dec EDX
mov ECX, EDX
loop copying
copy endp
call copy
 
mov AL, " "
mov ECX, 14h
xor EDI, EDI
xor ESI, ESI
lea EDI, dst
 
check:
scasb
je found
loop check
jmp cont
 
found:
inc ESI
loop check
 
cont:
dec ESI
mov EAX, ESI
 
quit:
mov eax, 0
invoke ExitProcess, eax
end main
Ошибка выходит Необработанное исключение в "0x0007102f" в "Lab08.exe": 0xC0000005: Нарушение прав доступа при чтении "0x00078000".

Решение задачи: «Выходит ошибка Необработанное исключение в "0x0007102f" в "Lab08.exe": 0xC0000005: Нарушение прав доступа при чтении "0x00078000". Как исправить»

textual
Листинг программы
xor EAX, EAX <-- обнулили EAX
xor EBX, EBX <-- обнулили EBX
xor EDX, EDX <-- обнулили EDX
xor EDI, EDI <-- обнулили EDI
 
lea ESI, src<-- загрузили адрес src
mov EDX, x<-- EDX = x
copy proc
copying: <-- а вот здесь началось самопроизвольное выполнение процедуры сору
lea EDI, dst
mov ECX, 4 
rep movsb
dec EDX
mov ECX, EDX
loop copying
copy endp
call copy <-- снова выполняем процедуру сору

Оцени полезность:

7   голосов , оценка 4.286 из 5
Похожие ответы