- •Глава 1. Предисловие Основные принципы построения вычислительных машин и систем
- •Пример современной многоуровневой вычислительной машины с шестью уровнями
- •Уровни детализации структуры вычислительной машины
- •Принципы построения вычислительной машины
- •Принцип двоичного кодирования
- •Принцип программного управления
- •Принцип однородности памяти
- •Принцип адресности
- •Структура фон-неймановской архитектуры вычислительной машины
- •Типы структур вычислительных машин и систем
- •Структуры вычислительных машин
- •Структуры вычислительных систем
- •Перспективы совершенствования архитектуры вм и вс
- •Технологические и экономические аспекты
- •Тенденции развития больших интегральных схем
- •Перспективные направления исследований в области архитектуры
- •Глава 2. Цифровой логический уровень
- •Представление информации в вычислительных системах
- •Представление числовых данных в вм.
- •Числа в форме с фиксированной точкой.
- •Числа в форме с плавающей точкой
- •Размещение числовых данных в памяти
- •Представление нечисловой информации в вм
- •Символьная информация
- •Видеоинформация
- •Аудиоинформация
- •Система кодирования чисел.
- •Прямой код.
- •Обратный код.
- •Модифицированные коды.
- •Код с исправлением ошибок
- •Коды Хемминга
- •Физическое представление информации в вм.
- •Вентили, интегральные схемы.
- •Основные элементы эвм
- •Триггер.
- •Сумматоры
- •Тактовые генераторы.
- •Микросхемы процессоров и шины
- •Микросхемы процессоров. Цоколевка типичного цп
- •Архитектура и набор команд.
- •Типы процессоров
- •Регистры процессора
- •Типы шин Системные шины. Локальные шины
- •Системные шины
- •Локальные шины
- •Иерархия шин
- •Вычислительная машина с одной шиной
- •Вычислительная машина с двумя видами шин.
- •Вычислительная машина с тремя видами шин
- •Арбитраж шин
- •Принципы работы шины
- •Глава 3 Функциональная организация фон - неймановской вычислительной машины
- •Функциональная схема фон-неймановской вычислительной машины
- •Узлы уу
- •Узлы алу
- •Основная память.
- •Модуль ввода/вывода
- •Цикл команды.
- •Пример выполнения программы.
- •Система прерываний.
- •Глава 4. Память.
- •Организация памяти.
- •Основные принципы.
- •Основные технические характеристики зу.
- •Иерархическая структура памяти.
- •Основная память.
- •Классификация устройств основной памяти.
- •Блочная организация основной памяти
- •Организация микросхем памяти
- •Режимы работы памяти.
- •Основные запоминающие устройства
- •Стековая память
- •Ассоциативная память
- •Полностью ассоциативная кэш-память.
- •Постоянное запоминающее устройство
- •Виртуальная память
- •Понятие виртуальной памяти
- •Страничная организация памяти
- •Сегментно-страничная организация памяти.
- •Внешняя память
- •Магнитные диски
- •Оптическая память
- •Магнитные ленты
- •Глава 5 Язык Ассемблер
- •Структура программы на языке Ассемблер
- •Основные типы операндов
- •Типы операторов
- •Режимы адресации
- •Директивы ассемблера
- •Инструкции пересылки данных и двоичной арифметики
- •Запись программ на языке Ассемблер
- •Пример вычисления арифметического выражения
- •Циклические и разветвляющиеся программы
- •Примеры использования операторов переходов и цикла при работе с массивами чисел
- •Применение логических инструкций
- •Логические инструкции
- •Примеры использования логических команд
- •Пример выполнения работы
- •Обработка символьной информации с помощью функций dos
- •Программные прерывания и системные вызовы
- •Описание функций работы с клавиатурой и дисплеем диспетчера функций ms dos
- •Функции 01н
- •Функции 02н
- •Функция 09н
- •Функция оан
- •Функция 0Bh
- •Пример выполнения работы
- •Глава 6 Типы вычислительных систем и их архитектурные особенности
- •Классификация вычислительных платформ и архитектур
- •Классификация Флинна.
- •Классификация Хокни
- •Классификация Хэндлера
- •Параллелизм и конвейеризация вычислений. Параллелизм на уровне команд
- •Конвейеры
- •6.2.2 Суперскалярная архитектура.
- •Мультипроцессоры с памятью совместного использования.
- •Основные классы вс
- •Машины класса simd
- •Машины класса mimd
- •Основные направления развитие архитектуры вычислительных машин
- •Суперспекулятивная архитектура
- •Трассирующая архитектура
- •Многопотоковый процессор
- •Многоядерная архитектура
- •«Плиточная» архитектура
- •Многоэтажная архитектура
- •Оптическая (фотонная) архитектура
- •Квантовая архитектура
- •Нейроархитектура
Циклические и разветвляющиеся программы
Команда передачи, управления служит для передачи управления инструкции, не следующей непосредственно за данной. Управление может передаваться как внутри текущего сегмента кода (внутрисегментная передача управления), так и за его пределы (межсегментная передача управления). Тип передачи управления может быть задан Ассемблеру предшествующим адресу перехода ключевым словом NEAR (внутрисегментная) или FAR (межсегментная).
Безусловный переход
Инструкция безусловного перехода передаёт управление команде, адрес которой указан в инструкции.
Переход можно осуществлять как в пределах одного сегмента, так и в другой сегмент, адрес перехода указывается либо на регистре, либо записан в памяти. В программах используют имя метки, установленной перед командой, на которую выполняется переход.
Типы переходов:
- переход типа short (короткий) – если адрес перехода находится в пределах от –127 до +128 байт от команды, вызвавшей переход;
- переход типа near (ближний) – если адрес перехода находится в том же сегменте, что и команда, вызвавшей переход;
переход типа far (дальний) – если адрес перехода находится в другом сегменте.
Формат команды безусловного перехода:
jmp [< тип > ptr ] операнд
<тип> - тип перехода short (короткий) – смещение 127 байтов вперёд или 128 байтов назад, near (близкий) – смещение в пределах сегмента (64 Кбайта), far (дальний) – в любой сегмент с любым смещением.
ptr – приставка, которую можно перевести как указанный в.
Если тип не задан, по умолчанию принимается near. В таблице 5.5 приведены типы безусловных переходов.
Таблица 5.5
Типы команд безусловного перехода |
||
Название |
Мнемоника |
Описание |
внутрисегментный прямой короткий переход |
jmp short <операнд> |
IP ← (IP) + 8-битное смещение, определяемое операндом |
внутрисегментный прямой близкий переход |
jmp near ptr <операнд> |
IP ← (IP)+16-битное смещение, определяемое операндом |
внутрисегментный косвенный переход |
jmp <адрес операнда> |
IP ← 16-битный адрес перехода |
Межсегментный прямой далекий переход |
jmp far ptr <операнд> |
IP ← смещение операнда в сегменте CS ← адрес сегмента, содержащего операнд |
Межсегментный косвенный далёкий переход |
jmp far ptr <адрес операнда> |
IP ← операнд CS ← адрес операнда +2 |
Условный переход
Команда условного перехода организует передачу управления при выполнении определённого в команде условия, в противном случае переход осуществляется на команду, следующую за инструкцией условного перехода. Условия определяются текущим состоянием флагов процессора. Каждая из 30 команд условных переходов проверяет определенную комбинацию флагов.
Все условные переходы являются короткими, т.е. адрес перехода должен отстоять не далее, чем на - 128 или +127 байтов от первого байта следующей команды. Формат команды:
J<условия перехода> <операнд>
Это набор команд, выполняющих переход, если удовлетворяется соответствующее условие перехода (сс). При использовании после команды cmp, условия приобретают формулировки, соответствующие отношениям между операндами cmp (таблица 5.6).
Таблица 5.6 Значение аббревиатур в названии команды jcc
Обозначение |
Англ. |
Русский |
Тип операндов |
e |
equal |
Равно |
любые |
n |
not |
Не |
любые |
g |
greater |
Больше |
числа со знаком |
l |
low |
Меньше |
числа со знаком |
a |
above |
Выше (больше) |
числа без знака |
b |
bellow |
Ниже (меньше) |
числа без знака |
Эти команды осуществляют переходы типа short и near
Таблица 5.7 Перечень команд условного перехода для команды cmp
Условие |
Мнемокод |
|
со знаком |
без знака |
|
ОП-1 = ОП_2 |
je equal |
|
ОП-1 < >ОП_2 |
jne not equal |
|
ОП-1 < ОП_2 |
jl low jnge not greater or equal |
jb below jnae not above or equal |
ОП-1 <= ОП_2 |
jle low or equal jng not greater |
jbe below or equal jna not above |
ОП-1 > ОП_2 |
jg greater jnle not low or equal |
ja above jnbe not below or equal |
ОП-1 => ОП_2 |
jge greater or equal jnl not lower |
jae above or equal jnb not below |
Циклы
Инструкция, организующая программный цикл имеет вид:
loop[<условие повторения цикла>] <метка короткого перехода>
Инструкция loop использует содержимое регистра СХ как счетчик повторений цикла. Команда loop уменьшает содержимое регистра СХ на 1 и передает управление по адресу, определяемому меткой перехода, если содержимое СХ ≠ 0, в противном случае выполняется следующая за LOOP инструкция. Подобно условным переходам инструкции этой группы могут осуществлять только короткие передачи управления, т.е. в пределах от -128 до +127.
Добавление к инструкции loop <условие повторения цикла> позволяет ввести дополнительные логические условия на повторение цикла:
loope/loopz – повторять, пока ноль;
loopne/loopnz – повторять, пока не ноль.
Проверка флага ZF осуществляется командой loop. Цикл повторяется, если содержимое СХ ≠ 0 и выполняется соответствующее условие, в противном случае выполняется следующая за loop инструкция.
