Скачиваний:
23
Добавлен:
11.05.2015
Размер:
998.91 Кб
Скачать

5.10. Начальный запуск эвм

Рассматриваемые ЭВМ производятся разными изготовителями, поэтому процесс начального запуска у них различен, однако в нем можно увидеть ряд обязательных шагов.

Первым при включении питания активизируется его источник, который при наличии всех питающих напряжений выдает на системную плату сигнал готовности (этот сигнал прерывается на время удержания клавиши RESET). По нему процессор 8086 передает управление на адрес 0FFF0h:00F0h (более поздние процессоры используют другие адреса, но всегда в конце доступного адресного пространства). Описанный выше процесс называется «холодным стартом». По этому адресу располагается программа начального запуска системы, которая начинает свою работу тестированием компонент ЭВМ (ОЗУ, различные контроллеры и т.д.). Во время тестирования и настройки компонент системы BIOS выставляет в порт 80h уникальные для каждого этапа константы. Если будет обнаружен сбой до запуска видеосистемы и загрузка прервется, то используя специальную диагностическую плату, можно узнать код последнего успешного этапа.

После успешного тестирования и настройки устройств ЭВМ производится загрузка ОС, для чего сначала опрашиваются флоппи дисководы, затем жесткий диск (или сетевая плата или CD-ROM). Порядок опроса устройств загрузки у поздних моделей может быть изменен. В случаях, когда все попытки загрузки оказываются неудачными, более старые ЭВМ передают управление встроенному интерпретатору языка BASIC, более поздние просто выводят диагностическое сообщение и затем могут либо прервать работу, а могут попытаться загрузить ОС еще раз.

Используемое иногда в литературе понятие «теплый старт» подразумевает программную передачу управления на адрес 0FFF0h:00F0h, но при этом предварительно в определенную ячейку памяти заносится значение 1234h, указывающее на то, что этот старт не первый. В зависимости от BIOS это может сократить количество начальных шагов (например, будет пропущен тест ОЗУ).

5.11. Регистры процессора

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

Здесь мы опустим описание регистров сопроцессора, которые используются не только для операций с вещественными числами (а так же целыми числами, обрабатываемыми сопроцессором), но так же и в операциях MMX и других расширениях.

5.11.1. Регистры общего назначения

При программировании на языке Ассемблер регистры общего назначения являются «рабочими лошадками». Особенность этих регистров состоит в том, что возможна адресация их как одного целого 32-битного слова (только для процессоров от 80386)  EAX, EBX, ECX, EDX, или его младшей 16-битной части (AX, BX, CX, DX), или даже одной из 8-битных частей младшей 16-битной части (AL, AH, BL, BH, CL, CH, DL, DH) разрядного слова.

EAX

AX

AH

AL

d31..d16

d15..d8

d7..d0

ECX

CX

CH

CL

d31..d16

d15..d8

d7..d0

EBX

BX

BH

BL

d31..d16

d15..d8

d7..d0

EDX

DX

DH

DL

d31..d16

d15..d8

d7..d0

Следующие три ассемблерные команды засылают нули в регистры СХ, СН и CL соответственно:

MOV CX, 0

MOV CH, 0

MOV CL, 0

В основном, все четыре регистра универсальны. Однако есть несколько отличий.

  • Регистр EАХ является основным аккумулятором (Accomulator) и применяется для всех операций ввода/вывода, некоторых операций над строками и некоторых арифметических операций. Например, команды умножения, деления и сдвига предполагают использование регистра АХ. Некоторые команды генерируют более эффективный код, если они имеют ссылки на регистр АХ.

  • Регистр EВХ является базовым (Base). Это единственный регистр общего назначения, который может использоваться в качестве «индекса» для расширенной адресации.

  • Регистр EСХ является счетчиком (Counter). Он необходим для управления числом повторений циклов и для операций сдвига влево или вправо.

  • Регистр ЕDX является регистром данных (Data). Он применяется для некоторых операций ввода/вывода и тех операций умножения и деления над большими числами, которые используют регистровую пару DX:AX.

  • Эти же особенности присущи 16- и 8-битным частям этих регистров.

  • Помимо описанных выше регистров, есть еще четыре, менее универсальных, регистра: ESI, EDI, EBP, ESP. Их младшие 16-разрядные части программно доступны и имеют названия SI, DI, BP, SP соответственно. Разумеется, 32-битные регистры доступны лишь на процессорах от 80386. Назначения регистров следующее:

  • регистр ESI (Source Index) — индекс источника. Используется как индекс источника в строковых операциях либо как индексный регистр в других операциях. К этому регистру также применимо большинство других операций;

  • регистр EDI (Destination Index) — индекс приемника. Используется в качестве индекса приемника в строковых операциях, в остальном аналогичен ESI;

  • регистр ESP (Stack Pointer) — указатель стека. Этот регистр может использоваться явно как универсальный регистр, однако его основное назначение – указывать вершину стека, так как все стековые операции адресуются к памяти через ESP;

  • регистр EBP (Base Pointer) — также предназначен для операций со стеком, например, для хранения в стеке переменных. В большинстве команд используется только явно.

Соседние файлы в папке Введение в вычислительную технику.