- •Глава 1. Предисловие Основные принципы построения вычислительных машин и систем
- •Пример современной многоуровневой вычислительной машины с шестью уровнями
- •Уровни детализации структуры вычислительной машины
- •Принципы построения вычислительной машины
- •Принцип двоичного кодирования
- •Принцип программного управления
- •Принцип однородности памяти
- •Принцип адресности
- •Структура фон-неймановской архитектуры вычислительной машины
- •Типы структур вычислительных машин и систем
- •Структуры вычислительных машин
- •Структуры вычислительных систем
- •Перспективы совершенствования архитектуры вм и вс
- •Технологические и экономические аспекты
- •Тенденции развития больших интегральных схем
- •Перспективные направления исследований в области архитектуры
- •Глава 2. Цифровой логический уровень
- •Представление информации в вычислительных системах
- •Представление числовых данных в вм.
- •Числа в форме с фиксированной точкой.
- •Числа в форме с плавающей точкой
- •Размещение числовых данных в памяти
- •Представление нечисловой информации в вм
- •Символьная информация
- •Видеоинформация
- •Аудиоинформация
- •Система кодирования чисел.
- •Прямой код.
- •Обратный код.
- •Модифицированные коды.
- •Код с исправлением ошибок
- •Коды Хемминга
- •Физическое представление информации в вм.
- •Вентили, интегральные схемы.
- •Основные элементы эвм
- •Триггер.
- •Сумматоры
- •Тактовые генераторы.
- •Микросхемы процессоров и шины
- •Микросхемы процессоров. Цоколевка типичного цп
- •Архитектура и набор команд.
- •Типы процессоров
- •Регистры процессора
- •Типы шин Системные шины. Локальные шины
- •Системные шины
- •Локальные шины
- •Иерархия шин
- •Вычислительная машина с одной шиной
- •Вычислительная машина с двумя видами шин.
- •Вычислительная машина с тремя видами шин
- •Арбитраж шин
- •Принципы работы шины
- •Глава 3 Функциональная организация фон - неймановской вычислительной машины
- •Функциональная схема фон-неймановской вычислительной машины
- •Узлы уу
- •Узлы алу
- •Основная память.
- •Модуль ввода/вывода
- •Цикл команды.
- •Пример выполнения программы.
- •Система прерываний.
- •Глава 4. Память.
- •Организация памяти.
- •Основные принципы.
- •Основные технические характеристики зу.
- •Иерархическая структура памяти.
- •Основная память.
- •Классификация устройств основной памяти.
- •Блочная организация основной памяти
- •Организация микросхем памяти
- •Режимы работы памяти.
- •Основные запоминающие устройства
- •Стековая память
- •Ассоциативная память
- •Полностью ассоциативная кэш-память.
- •Постоянное запоминающее устройство
- •Виртуальная память
- •Понятие виртуальной памяти
- •Страничная организация памяти
- •Сегментно-страничная организация памяти.
- •Внешняя память
- •Магнитные диски
- •Оптическая память
- •Магнитные ленты
- •Глава 5 Язык Ассемблер
- •Структура программы на языке Ассемблер
- •Основные типы операндов
- •Типы операторов
- •Режимы адресации
- •Директивы ассемблера
- •Инструкции пересылки данных и двоичной арифметики
- •Запись программ на языке Ассемблер
- •Пример вычисления арифметического выражения
- •Циклические и разветвляющиеся программы
- •Примеры использования операторов переходов и цикла при работе с массивами чисел
- •Применение логических инструкций
- •Логические инструкции
- •Примеры использования логических команд
- •Пример выполнения работы
- •Обработка символьной информации с помощью функций dos
- •Программные прерывания и системные вызовы
- •Описание функций работы с клавиатурой и дисплеем диспетчера функций ms dos
- •Функции 01н
- •Функции 02н
- •Функция 09н
- •Функция оан
- •Функция 0Bh
- •Пример выполнения работы
- •Глава 6 Типы вычислительных систем и их архитектурные особенности
- •Классификация вычислительных платформ и архитектур
- •Классификация Флинна.
- •Классификация Хокни
- •Классификация Хэндлера
- •Параллелизм и конвейеризация вычислений. Параллелизм на уровне команд
- •Конвейеры
- •6.2.2 Суперскалярная архитектура.
- •Мультипроцессоры с памятью совместного использования.
- •Основные классы вс
- •Машины класса simd
- •Машины класса mimd
- •Основные направления развитие архитектуры вычислительных машин
- •Суперспекулятивная архитектура
- •Трассирующая архитектура
- •Многопотоковый процессор
- •Многоядерная архитектура
- •«Плиточная» архитектура
- •Многоэтажная архитектура
- •Оптическая (фотонная) архитектура
- •Квантовая архитектура
- •Нейроархитектура
Инструкции пересылки данных и двоичной арифметики
Команды данной группы приведены в таблице 5.4. Код определяет выполняемое командой действие, операнды показывают адреса ячеек, хранящих исходные данные, необходимые для выполнения команды и адрес ячейки результата.
Таблица 5.4 Инструкции пересылки данных и двоичной арифметики
Мнемокод |
Действие |
|
Код |
Операнды |
|
mov |
dst, src. |
пересылка |
add |
dst, src |
сложение |
inc |
dst |
увеличить на единицу |
sub |
dst, src |
вычитание |
dec |
dst |
уменьшение на единицу |
neg |
dst |
изменение знака |
sal |
dst,счетчик |
арифметический сдвиг влево |
sar |
dst,счетчик |
арифметический сдвиг вправо (по мере сдвига вправо освобождающиеся места заполняются значением знакового разряда) |
shl |
dst,счетчик |
логический сдвиг влево |
shr |
dst,счетчик |
логический сдвиг вправо |
xlat |
таблица |
трансляция байтов из таблицы |
lea |
dst, src |
загрузка исполнительного адреса |
mod |
dst, src |
получения остатка от деления |
Процессор i8086 и более поздние версии относятся к двухадресным машинам. Это значит, что его команда может содержать не более двух операндов. Если для выполнения команды необходимо иметь два источника данных, например, сложение, то сохранение результата выполнения команды производиться по адресу одного из источников данных. Чтобы показать, какой из операндов будет хранить результат, его обозначают при описании команды как dst (destination – назначение), операнд, который используется только как адрес исходных данных, обозначается как src (source – источник). В двухоперандных командах операнд dst указывает, перед выполнением команды, адрес исходного данного, а после выполнения – адрес результата.
Запись программ на языке Ассемблер
Ниже приведена типичная структура простой программы на ассемблере.
.model small
.data ;директива начала сегмента данных
d1 dw 34h
d2 db 10100110b
d3 dd 3 dup (?)
.code
start: mov ax,data ; Загрузить адрес
mov ds,ax ; сегмента данных
.
. ; текст программы
quit: mov ax,4c00h ; Код завершения 0
int 21h ; Выход в DOS
end start
Загрузка адреса сегмента данных состоит из двух команд, так как непосредственные данные нельзя заносить прямо в сегментный регистр.
Для завершения программы и выхода в DOS имеется несколько возможностей, рекомендуется использовать две команды, начинающиеся с метки quit.
Пример вычисления арифметического выражения
Вычислить Х = 3А + (В + 5 ) / 2 – С – 1,
где A, В, С, Х- целые знаковые числа, занимающие слово, написать программу, реализующую данную формулу.
Распишем формулу по отдельным операциям:
АХ ← А ; значение A в регистре АХ
АХ ← 2 *( АХ ) ; 2А в АХ
АХ ← ( АХ ) + А ; 3А в АХ
ВХ ← В ; В в ВХ
ВХ ← 5 + ( ВХ ) ; В+5 в ВХ
ВХ ← (ВХ ) / 2 ; ( В+5) / 2 в ВХ
АХ ← (BX ) + ( AX ) ; 3А+( В+5 ) / 2 в АХ
АХ ← ( АХ ) – С ; 3А+( В+5 ) / 2 – С в АХ
АХ ← ( АХ ) -1 ; 3А+( В+5 )/2 – С – 1 в АХ
Х ← ( АХ ) ; 3А+( В+5 )/2 – С – 1 в Х
Ниже приведена типичная структура простой программы на Ассемблере. Текст программы:
.model small
.data ; начало сегмента данных
a dw 10
b dw 20
c dw 5
x dw ? ;неинициализированное данное
.stack 100h ;сегмент стека
. code ;сегмент программы
start: mov ax, @data ; загрузка адреса сегмента данных
mov ds, ax ;регистр сегмента данных можно загружать только
;из регистра
mov ax, a
sal ax, 1 ;A * 2
add ax, a ;3 * A
mov bx, b
add bx, 5 ;B+5
shr bx, 1 ;(B+5)/2
add ax, bx ;3*A+(B+5)/2
sub ax, c ;3*A+(B+5)/2-C
dec ax ;3А+( В+5 )/2 – С – 1
mov x, ax ; запись результата в память
quit: mov ax, 4c00h ; код завершения 0, 4c – имя программы
int 21 ; выход в dos
end start
