Помощничек
Главная | Обратная связь


Археология
Архитектура
Астрономия
Аудит
Биология
Ботаника
Бухгалтерский учёт
Войное дело
Генетика
География
Геология
Дизайн
Искусство
История
Кино
Кулинария
Культура
Литература
Математика
Медицина
Металлургия
Мифология
Музыка
Психология
Религия
Спорт
Строительство
Техника
Транспорт
Туризм
Усадьба
Физика
Фотография
Химия
Экология
Электричество
Электроника
Энергетика

Вопрос 13. Системы команд. Классификация процессоров в соответствии с системой команд



Система команд — соглашение о предоставляемых архитектурой средствах программирования, а именно: определённых типах данных, инструкций, системы регистров, методов адресации, моделей памяти, способов обработки прерываний и исключений, методов ввода и вывода.

Базовыми командами являются, как правило, следующие:

- арифметические, например «сложения» и «вычитания»;

- битовые, например «логическое и», «логическое или» и «логическое не»;

- присваивание данных, например «переместить», «загрузить», «выгрузить»;

- ввода-вывода, для обмена данными с внешними устройствами;

- управляющие инструкции, например «переход», «условный переход», «вызов подпрограммы», «возврат из подпрограммы».

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

Если объединить наиболее часто используемую последовательность микроопераций под одной микрокомандой, то надо будет обеспечивать меньше микрокоманд. Такое построение системы команд носит название CISC (Complex Instruction Set Computer), в распоряжении имеется небольшое число составных команд.

С другой стороны, это объединение уменьшает гибкость системы команд. Вариант с наибольшей гибкостью — наличие множества близких к элементарным операциям команд. Это RISC (Reduced Instruction Set Computer), в распоряжении имеются усечённые, простые команды.

Еще большую гибкость системы команд можно получить, используя MISC подход, построенный на уменьшении количества команд до минимального и упрощении вычислительного устройства обработки этих команд.

Вопрос 14. Реальный режим процессора типа ИНТЕЛ 8086. Сегмент, граница параграфа, смещение

В зависимости от режима процессора изменяется схема управления памятью системами и задачами. Процессоры серии ИНТЕЛ могут работать в нескольких режимах. В реальном с модели ИНТЕЛ 8086, в защищенном 8286, в виртуальном – 8486 и старше.

1 пользователь – 1 задачный режим работы (реальный режим)

1 пользователь – много режимом работы (виртуальный режим)

РЕАЛЬНЕ РЕЖИМ РАБОТЫ

Первоначально IBM PC использовался процессор INTEL 8086, который мог выполнять следующие функции:

Использовал 16-разрядные команды, применял 16-разрядные внутренние регистры, мог адресовать 1 МБ памяти, используя для этого 20 разрядов адреса. Всё программное обеспечение было предназначено для этого процессора. Разрабатывалось на основе 16-разрядной системы команд и модели памяти объемом 1 МБ. Пример: MS DOS, Windows. Этот 16-разрядный режим работы был назван риальне режимом.

Недостатки режима: одновременно может выполняться только одна программа (однозадачный режим). Нет никакой встроенной защиты для предотвращения перезаписи ячеек памяти одной программы или ОС другой программой.

Соответственно вот такая организация структуры процессора и памяти привела к ряду особенностей. С помощью 16 разрядного регистра можно записать число 65535. Память объемом 1 МБ. Биты не нумеруются, нумеруются байты.

Соль в том, что по умолчанию сохраняется в регистре DS (регистр данных, то есть es:[ebx] писать на надо)

Чтобы решить эту проблему, память компьютера условно поделена на так называемые сегменты. Сегментом называется область памяти, которая начинается на границе параграфа, то есть с любого адреса, кратного 16 (четыре младших бита равны нулю).

Таким образом, если мы знаем значение сегмента, то легко подсчитать физический адрес в памяти, умножив это значение на 16: если сегмент = 64h, то физический адрес = 64h • 10h = 640h.

Теперь нужно задать смещение (offset) – количество байт от начала заданного сегмента до требуемой ячейки. Итак, абсолютный адрес в памяти вычисляется как сумма номера сегмента, умноженного на 16, и смещения. Сегменты и смещения записываются в командах ассемблера следующим образом:

сегмент:[смещение]

где

• сегмент – это один из сегментных регистров (CS, DS, ES, FS, GS или SS), в который предварительно занесён номер сегмента;

• смещение – это непосредственное значение смещения или регистр общего назначения, в котором хранится значение смещения.

 




Поиск по сайту:

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