#fasm
#fasm
Вопрос:
Я пытаюсь написать процедуру, которая будет считывать входные данные пользователя и присваивать входные значения соответствующим адресам (пытаясь динамически создать массив). Однако после запуска цикла программа завершает работу в части ret. Отладчик указывает на несанкционированный доступ к БД[0000000]. Что я делаю не так?
array_ini:
lp:
push temp
push readnum
call [scanf]
mov eax, [temp]
mov [array ebx*2], eax
add ebx,2
cmp ebx,10
jl lp
push done
call [printf]
ret
Комментарии:
1. ваша проблема, похоже, не в вашем массиве, это что-то в вашей конфигурации. Пожалуйста, убедитесь, что учетная запись, которую вы используете для доступа к БД, имеет надлежащую авторизацию.
2. @Gi1ber7 Я решил проблему. Я не был полностью осведомлен о том факте, что когда мы вызываем функцию, адрес возврата помещается в стек. Поэтому, когда я вызывал scanf, мой стек очищался, а затем в регистр ESI вставлялся 0, и я получал исключение несанкционированного доступа за попытку попасть туда.