Здавалка
Главная | Обратная связь

Структура процессора. Регистры процессора.



Микропроцессор аппаратно поддерживает несколько моделей использования оперативной памяти:

- сегментированная модель. В этой модели память для программы делится на непрерывные области памяти (сегменты), а сама программа может обращаться только к данным, которые находятся в этих сегментах.

- страничная модель. Рассматривается как совокупность блоков фиксированного размера 4 Кбайт.

Особенности использования и реализации этих моделей зависят от режима работы микропроцессора.

Сегментированная модель памяти.

Внутри сегмента программа обращается к адресам относительно начала сегмента линейно, т.е. начиная с 0 и заканчивая адресом, равным размеру сегмента. Этот относительный адрес, или смещение, который микропроцессор использует для доступа к данным, называется эффективным.

Под физическим (линейным) адресом понимается адрес памяти, выдаваемый на шину адреса микропроцессора.

Формирование физического адреса в реальном режиме.

Механизм адресации физической памяти имеет следующие характеристики:

- Диапазон изменения физического адреса от 0 до 1 Мбайт;

- Максимальный размер сегмента 64 Кбайт;

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

Язык ассемблера. Структура программы.

Для критичных по размеру системных программ, при написании которых учитывается каждый байт, правильнее использовать не язык высокого уровня, а ассемблер. Применяя язык ассемблера, мы можем учитывать тончайшие системные и архитектурные нюансы. Разберем такую задачу: необходимо визуализировать содержимое некоторого регистра или ввести в него значение.

Для начала надо продумать алгоритм. Ввод информации с клавиатуры и вывод ее на экран осуществляются в символьном виде. Кодирование этой информации производится согласно таблице ASCII. Если работа происходит с числами, необходимо преобразовать символьную информацию к формату, поддерживаемому машинными командами. После такого преобразования нужно выполнить необходимые вычисления и преобразовать результат обратно к символьному виду. Затем следует отобразить информацию на мониторе.

1. Для шестнадцатеричных цифр 0... 9 код ASCII отличается от соответствующего двоичного представления на 00110000 (ЗОН). Поэтому для преобразования кода ASCII есть два пути:

a) выполнить двоичное вычитание: (код ASCII)h - 30h

b) обнулить старшую тетраду байта с символом 16-ричной цифры в коде ASCII.

2. Алгоритм преобразования должен различать прописные и строчные буквенные символы 16-ричных цифр и корректировать значение кода ASCII на величину 37h или 67h.







©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.