Процедура FASM завершается ошибкой несанкционированного доступа

#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, и я получал исключение несанкционированного доступа за попытку попасть туда.