2013-04-06 3 views
-1

Программные загрузчики простой ОС, такие как DOS, считывают программный код с дискеты или жесткого диска и перемещают его байт-код в ОЗУ.Как работает загрузчик прогам от простой ОС?

Вопрос 1: В каком месте находится код байта? В кучу, стек или другую область ОЗУ?

Давайте посмотрим на этот код вторичного индекса: mov eax, 5. «5» - это значение, которое также перемещается в ОЗУ.

Вопрос 2: Как можно переместить значение в eax? Для этого существует код mov-opcode?

ответ

1

Вопрос 1: Где находится код байта точно? В кучу, стек или другую область ОЗУ?

Точное местоположение обычно зависит от:

  • ОС
  • объем установленной памяти
  • программа
  • история выделения памяти

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

DOS просто находит свободный блок памяти, где программа может поместиться и загружать его там, потенциально нарезая блок на две части. AFAIR, есть способ предпочесть более низкие или более высокие адреса, но это в значительной степени. Резидентные программы и драйверы, очевидно, повлияют на местоположение.

Вопрос 2: Как можно переносить значение в eax? Для этого существует код mov-opcode?

Это, должно быть, отдельный вопрос. Да, есть инструкция для mov eax, 5 на процессорах i80386 +.

Смежные вопросы