Как сбросить ОЗУ?

Тема в разделе "WASM.BEGINNERS", создана пользователем petrstarikov, 15 окт 2011.

  1. petrstarikov

    petrstarikov New Member

    Публикаций:
    0
    Регистрация:
    15 окт 2011
    Сообщения:
    69
    Вы не правы, т.к. неправильно инициализируете ecx, надо mov ecx,0. Вам надо в несуществующий раздел UltraBeginners. И Вы неправильно поняли задачу, надо занулить ОЗУ
    не передачей данных по шине, а именно саму микросхему.
     
  2. acckiitvar

    acckiitvar Member

    Публикаций:
    0
    Регистрация:
    26 сен 2011
    Сообщения:
    71
    Столько команл даже и если влезет в кэш, то заставить их там оказаться невозможно, ты не имеешь возможность управлять им, а что проц туда загружает знает только он. в той же винде есть файл подкачки, потому что необходимый ей код не то что в кеше, он в озу не влезает.
     
  3. acckiitvar

    acckiitvar Member

    Публикаций:
    0
    Регистрация:
    26 сен 2011
    Сообщения:
    71
    Все равно останутся защищенные от записи области, да и этот код в озу останется
     
  4. petrstarikov

    petrstarikov New Member

    Публикаций:
    0
    Регистрация:
    15 окт 2011
    Сообщения:
    69
    mov ah,02.... int 0x13, jmp [bx] влезет в кэш без вариантов
     
  5. qqwe

    qqwe New Member

    Публикаций:
    0
    Регистрация:
    2 янв 2009
    Сообщения:
    2.914
    petrstarikov
    ради интереса почитайте даташиты на микросхемы озу. есть и у них команда зануления микросхемы.
    хотя хотеть, конечно, не запретишь
     
  6. petrstarikov

    petrstarikov New Member

    Публикаций:
    0
    Регистрация:
    15 окт 2011
    Сообщения:
    69
    Изучаю, трудно для понимания, иначе бы не спрашивал.
     
  7. acckiitvar

    acckiitvar Member

    Публикаций:
    0
    Регистрация:
    26 сен 2011
    Сообщения:
    71
    А к какой шине они подключены? даже интересно стало как их программировать, основная инфа о модулях озу находится в spd, он читается через smbus, а вот программирование их это хз. да и какие шансы что ось продолжит работать?
     
  8. acckiitvar

    acckiitvar Member

    Публикаций:
    0
    Регистрация:
    26 сен 2011
    Сообщения:
    71
    Жалкая попытка, что бы прерывания работали, в памяти должна находиться таблица прерываний и расписаны их обработчики, а ты их сотрешь очисткой памяти.
     
  9. petrstarikov

    petrstarikov New Member

    Публикаций:
    0
    Регистрация:
    15 окт 2011
    Сообщения:
    69
    Сбросить ОЗУ можно при запрещенных прерываниях и потом создать таблицу заново.
     
  10. acckiitvar

    acckiitvar Member

    Публикаций:
    0
    Регистрация:
    26 сен 2011
    Сообщения:
    71
    Отлично, а код самих прерываний где возьмешь? как ты создашь эту таблицу?
    Возьми документацию по интеловским процам, том 2, часть 1 и посмотри описание команды int.
     
  11. petrstarikov

    petrstarikov New Member

    Публикаций:
    0
    Регистрация:
    15 окт 2011
    Сообщения:
    69
    Перед сбросом ОЗУ, все содержимое можно сохранить на жесткий диск. Или хотя бы критичные части.
     
  12. petrstarikov

    petrstarikov New Member

    Публикаций:
    0
    Регистрация:
    15 окт 2011
    Сообщения:
    69
    Я не очень понимаю эти документы, объясни в чем суть
     
  13. acckiitvar

    acckiitvar Member

    Публикаций:
    0
    Регистрация:
    26 сен 2011
    Сообщения:
    71
    Команда INT прерывает обработку программы, передает управление в DOS
    или BIOS для определенного действия и затем возвращает управление в
    прерванную программу для продолжения обработки. Наиболее часто прерывание
    используется для выполнения операций ввода или вывода. Для выхода из
    программы на обработку прерывания и для последующего возврата команда INT
    выполняет следующие действия:

    - уменьшает указатель стека на 2 и заносит в вершину стека
    содержимое флагового регистра;
    - очищает флаги TF и IF;
    - уменьшает указатель стека на 2 и заносит содержимое регистра
    CS в стек;
    - уменьшает указатель стека на 2 и заносит в стек значение
    командного указателя;
    - обеспечивает выполнение необходимых действий;
    - восстанавливает из стека значение регистра и возвращает
    управление в прерванную программу на команду, следующую после INT.

    Этот процесс выполняется полностью автоматически. Необходимо лишь
    определить сегмент стека достаточно большим для записи в него значений
    регистров.

    Кстати стек ты тоже сломаешь нафиг очисткой помяти.
     
  14. petrstarikov

    petrstarikov New Member

    Публикаций:
    0
    Регистрация:
    15 окт 2011
    Сообщения:
    69
    Я знаю как работает команда int. Объясните мне как она связано с очисткой ОЗУ.
    И причем здесь стек? Стек после очистки будет пустой. В чем проблема?
     
  15. acckiitvar

    acckiitvar Member

    Публикаций:
    0
    Регистрация:
    26 сен 2011
    Сообщения:
    71
    команда передает управление обработчику, для реально режима он указывается таблицей расположенной в самом начале памяти по адресу 0:0. ЕЕ ты сотрешь это раз. В таблице будет взят адрес обработчика прерывания он там хранится как сегмент:смещение и по нему будет передано управление. ЕГО ты тоже сотрешь.
     
  16. petrstarikov

    petrstarikov New Member

    Публикаций:
    0
    Регистрация:
    15 окт 2011
    Сообщения:
    69
    Я же говорил, содержимое ОЗУ можно скопировать на жесткий диск перед очисткой. И потом его восстановить. Если прерывания будут запрещены в момент сброса ОЗУ и последующего восстановления, то никакх проблем с таблицами прерываний и их обработчиками быть не может.
     
  17. petrstarikov

    petrstarikov New Member

    Публикаций:
    0
    Регистрация:
    15 окт 2011
    Сообщения:
    69
    И здесь Вы не правы. Таблица векторов прерываний указывается содержимым регистра IDTR.
     
  18. acckiitvar

    acckiitvar Member

    Публикаций:
    0
    Регистрация:
    26 сен 2011
    Сообщения:
    71
    Это в защищенном режиме, в реальном режиме она в начале памяти и IDTR является нулем). У тебя такоя каша в голове, систематизируй свои знания
     
  19. petrstarikov

    petrstarikov New Member

    Публикаций:
    0
    Регистрация:
    15 окт 2011
    Сообщения:
    69
    В любом режиме таблица веторов адресуется IDTR, я по этой теме курсовой писал. И в него в реальном режиме можно записать не только 0. У Вас каша в голове, систематизируйте свои знания.
     
  20. Nafanya

    Nafanya Member

    Публикаций:
    0
    Регистрация:
    26 июл 2006
    Сообщения:
    581
    petrstarikov
    То что вы пишете - неправда. Зачем вы вводите людей в заблуждение?

    При кэш-промахах процессор выбирает, декодирует и выполняет команды из ОЗУ.
    Кэш-промах - это нормальная ситуация, которая происходит периодически.

    При первом кэш-промахе система упадёт, т.к. Вы очистили ОЗУ. О чем речь?