Система команд
Каждый процессор имеет свою систему команд, определяемую его архитектурой. Команда представляет собой определенную последовательность двоичных разрядов и содержит код операции и информацию об операндах.
Формат команды – это совокупность сведений, которые для каждой команды процессора задают: ее длину, состав, назначение. Команды могут быть безадресные и адресные.
В системе команд любого процессора можно выделить следующие основные группы команд:
Пересылка данных между RAM и регистрами процессора.
Управление ходом выполнения программы.
Связь с подпрограммами.
Операции над регистровыми структурами (сдвиг данных в регистрах, очистка регистров и т.д.).
Группа команд, управляющих I/O (вводом/выводом).
Специальные системные команды.
Устройство управления процессора в строгой последовательности в рамках тактовых и цикловых временных интервалов осуществляет:
Её интерпретацию с целью анализа формата, служебных признаков и вычисления адреса операнда (операндов).
Установление временной последовательности всех функциональных управляющих сигналов.
Генерацию управляющих импульсов и передачу их на управляющие шины функциональных частей ПК.
Анализ результата операции и изменение своего состояния для определения адреса следующей команды.
Рассмотрим процесс выполнения команд МП на примере структурной схемы (без устройств ввода-вывода).
На данной схеме толстые линии – это магистрали адреса и данных, тонкие стрелки – сигналы от шины управления, пунктирные линии – непосредственное воздействие электрического сигнала на соответствующий компонент. Связи РОН и генератора не показаны.
Предположим также, что управляющие сигналы устройства управления соответствуют таблице 1.
Структурная схема процессора и взаимосвязи с основной памятью
Таблица 1. Управляющие сигналы устройств управления
Назначение линии
Наращивание содержимого программного счетчика
Чтение информации из программного счетчика и выдача ее на МА
Запись информации с МД в регистр команд
Чтение адреса операции из регистра команд и выдача этого адреса на МА
Запись информации с МА в регистр адреса памяти
Чтение содержимого ячейки памяти и выдача его на МД
Запись информации с МД в ячейку памяти
Запись информации с МД в операционный блок
Прибавление 1 к содержимому в операционном блоке
Инвертирование содержимого операционного блока
Суммирование содержимого операционного блока с содержимым аккумулятора
Запись информации из операционного блока в аккумулятор
Чтение информации из аккумулятора и выдача её на МД
Пример выполнения инструкции МП: выполнить команду чтения числа из заданной ячейки памяти, прибавить к нему единицу и сохранить результат в АС.
Таблица 2. Решение примера
Цикл генератора
тактовой частоты,
Выполняемая микрооперация
Активные линии МУ
Общее время выполнения команд
1. Адрес команды из программного счетчика пересылается в регистр адреса памяти
2. Код команды пересылается из ячейки памяти по МД в регистр команд. Наращивание содержимого программного счетчика
3. Пересылка адреса операнда из регистра команд в регистр адреса памяти
4. Пересылка операнда из ячейки памяти в операционный блок
5. Выполнение заданной операции – прибавление 1.
6. Запись результата операции в аккумулятор (АС), наращивание PC
Лабораторная работа 3
Требования к программному моделированию:
При выполнении лабораторной работы необходимо отображать все процессы, протекающие в главных компонентах МПС и на шинах адреса, данных и управления.
Все операции над многоадресными инструкциями выполняются через регистр АС.
В интерфейсе программы необходимо показать начальные и текущие состояния основной памяти, программного счетчика, регистра адреса памяти, регистра команд, АС, операционного блока и активные сигналы шины управления.
Состояние программного счетчика можно представлять в десятичном, двоичном или шестнадцатеричном коде.
Вариант 1. Смоделировать выполнение процессором пошаговых действий при выполнении программы решения выражения:
.
А= 1010102. Адрес числа АС6h.
В= 1910. Адрес числа АС8h.
Состояние программного счетчика на момент выполнения программы FAh.
Сохранить результат в памяти.
Вариант 2. Смоделировать выполнение процессором пошаговых действий при выполнении программы решения выражения:
.
А=1710. Адрес числа АDFАh.
С=1810. Адрес числа ВA5Аh.
Состояние программного счетчика на момент выполнения программы 53610.
Результат поместить по адресу АFFВh.
Вариант 3. Смоделировать выполнение процессором пошаговых действий при выполнении программы решения выражения:
.
А=2010. Адрес числа A8Fh.
В=1710. Адрес числа A90h.
С=11002. Адрес числа А92h.
Поместить результат по адресу АA9h.
Состояние программного счетчика на момент выполнения программы 157810.
Вариант 4. Смоделировать выполнение процессором пошаговых действий при выполнении программы решения выражения:
Выполнить программу решения выражения: 
А=1510. Адрес числа 8AАh.
В=3810. Адрес числа 8АCh.
С=510. Адрес числа 8AEh.
Состояние программного счетчика на момент выполнения программы 354810.
Сохранить результат в AC.
Вариант 5. Смоделировать выполнение процессором пошаговых действий при выполнении программы решения выражения:
.
А=1310. Адрес числа F5AСh.
В=1710. Адрес числа F5AEh.
Состояние программного счетчика на момент выполнения программы 95410.
Сохранить результат в памяти по адресу FA01h.
Вариант 6. Смоделировать выполнение процессором пошаговых действий при выполнении программы решения выражения:
.
А=1010112. Адрес числа B4F5h.
В= 0100112. Адрес числа B4F7h.
Состояние программного счетчика на момент выполнения программы 45310.
Сохранить результат по адресу B2FFh.
Вариант 7. Смоделировать выполнение процессором пошаговых действий при выполнении программы решения выражения:
.
А=2910. Адрес числа EF3h.
В=3410. Адрес числа FF5h.
Состояние программного счетчика на момент выполнения программы 7Fh.
Сохранить результат по адресу FF4h.
Вариант 8. Смоделировать выполнение процессором пошаговых действий при выполнении программы решения выражения: 
В=2210. Адрес числа F25h.
С=3510. Адрес числа F27h.
Состояние программного счетчика на момент выполнения программы 82210.
Сохранить результат по адресу F4Bh.
Вариант 9. Смоделировать выполнение процессором пошаговых действий при выполнении программы решения выражения:

В=10112. Адрес числа 2FAh.
С=1000102. Адрес числа 2FCh.
Состояние программного счетчика на момент выполнения программы 35210.
Сохранить результат по адресу 2FAh.
Вариант 10. Смоделировать выполнение процессором пошаговых действий при выполнении программы решения выражения:
.
А=1110. Адрес числа 8DEh.
В=1610. Адрес числа 901h.
С=1810. Адрес числа 903h.
Состояние программного счетчика на момент выполнения программы 475310.
Сохранить результат в AC.
Вариант 11. Смоделировать выполнение процессором пошаговых действий при выполнении программы решения выражения:
.
А=101012. Адрес числа 7BAh.
В=101102. Адрес числа 7BCh.
Состояние программного счетчика на момент выполнения программы 5FFh.
Сохранить результат по адресу 7BCh.
Вариант 12. Смоделировать выполнение процессором пошаговых действий при выполнении программы решения выражения:

А=0101102. Адрес числа F534h.
С=1000112. Адрес числа F783h.
Состояние программного счетчика на момент выполнения программы 875610.
Лабораторная 2: Архитектура ЭВМ и система команд
Общие положения
Для решения с помощью ЭВМ некоторой задачи должна быть разработана программа. Программа на языке ЭВМ представляет собой последовательность команд. Код каждой команды определяет выполняемую операцию, тип адресации и адрес. Выполнение программы, записанной в памяти ЭВМ, осуществляется последовательно по командам в порядке возрастания адресов команд или в порядке, определяемом командами передачи управления.
Для того чтобы получить результат выполнения программы, пользователь должен:
— ввести программу в память ЭВМ;
— определить, если это необходимо, содержимое ячеек ОЗУ и РОН, содержащих исходные данные, а также регистров IR и BR;
— установить в PC стартовый адрес программы;
— перевести модель в режим Работа.
Каждое из этих действий выполняется посредством интерфейса модели, описанного в главе 8. Ввод программы может осуществляться как в машинных кодах непосредственно в память модели, так и в мнемокодах в окно Текст программы с последующим ассемблированием.
Цель настоящей лабораторной работы — знакомство с интерфейсом модели ЭВМ, методами ввода и отладки программы, действиями основных классов команд и способов адресации. Для этого необходимо ввести в память ЭВМ и выполнить в режиме Шаг некоторую последовательность команд (определенную вариантом задания) и зафиксировать все изменения на уровне программно-доступных объектов ЭВМ, происходящие при выполнении этих команд.
Команды в память учебной ЭВМ вводятся в виде шестиразрядных десятичных чисел (см. форматы команд на рис. 8.3, коды команд и способов адресации в табл. 8.2—8.4).
В настоящей лабораторной работе будем программировать ЭВМ в машинных кодах.
Пример 1
Дана последовательность мнемокодов, которую необходимо преобразовать в машинные коды, занести в ОЗУ ЭВМ, выполнить в режиме Шаг и зафиксировать изменение состояний программно-доступных объектов ЭВМ (табл. 1).
Таблица 1. Команды и коды
| Последовательность | Значения | ||||
| Команды | RD#20 | WR30 | ADD #5 | WR@30 | JNZ 002 |
| Коды | 21 1 020 | 22 0030 | 23 1 005 | 22 2 030 | 120002 |
Введем полученные коды последовательно в ячейки ОЗУ, начиная с адреса 000. Выполняя команды в режиме Шаг, будем фиксировать изменения программно-доступных объектов (в данном случае это Асc, PC и ячейки ОЗУ 020 (М20) и 030 (М30)) в табл. 2.
Таблица 2. Содержимое регистров
Задание 1
1. Ознакомиться с архитектурой ЭВМ.
2. Записать в ОЗУ «программу», состоящую из пяти команд— варианты задания выбрать из табл. 3. Команды разместить в последовательных ячейках памяти.
3. При необходимости установить начальное значение в устройство ввода IR.
4. Определить те программно-доступные объекты ЭВМ, которые будут изменяться при выполнении этих команд.
5. Выполнить в режиме Шаг введенную последовательность команд, фиксируя изменения значений объектов, определенных в п. 4, в таблице (см. форму табл. 2).
6. Если в программе образуется цикл, необходимо просмотреть не более двух повторений каждой команды, входящей в тело цикла.
Таблица 3. Варианты задания 1
| № | IR | Команда 1 | Команда 2 | Команда 3 | Команда 4 | Команда 5 |
| 1 | 000007 | IN | MUL #2 | WR 10 | WR @10 | JNS 001 |
| 2 | X | RD #17 | SUB #9 | WR 16 | WR @16 | JNS 001 |
| 3 | 100029 | IN | ADD #16 | WR 8 | WR @8 | JS 001 |
| 4 | X | RD #2 | MUL #6 | WR 11 | WR @11 | JNZ 00 |
| 5 | 000016 | IN | WR 8 | DIV #4 | WR @8 | JMP 002 |
| 6 | X | RD #4 | WR @11 | RD @11 | ADD #330 | JS 000 |
| 7 | 000000 | IN | WR 9 | RD @9 | SUB #1 | JS 001 |
| 8 | X | RD 4 | SUB #8 | WR 8 | WR @8 | JNZ 001 |
| 9 | 100005 | IN | ADD #12 | WR 10 | WR @10 | JS 004 |
| 10 | X | RD 4 | ADD #15 | WR 13 | WR @13 | JMP 001 |
| 11 | 000315 | IN | SUB #308 | WR 11 | WR @11 | JMP 001 |
| 12 | X | RD #988 | ADD #19 | WR 9 | WR @9 | JNZ 001 |
| 13 | 000017 | IN | WR 11 | ADD 11 | WR @11 | JMP 002 |
| 14 | X | RD #5 | MUL #9 | WR 10 | WR @10 | JNZ 001 |
Содержание отчета
Формулировка варианта задания.
1. Машинные коды команд, соответствующих варианту задания.
2. Результаты выполнения последовательности команд в форме табл. 2.
Контрольные вопросы
1. Из каких основных частей состоит ЭВМ и какие из них представлены в модели?
2. Что такое система команд ЭВМ?
3. Какие классы команд представлены в модели?
4. Какие действия выполняют команды передачи управления?
5. Какие способы адресации использованы в модели ЭВМ? В чем отличие между ними?
6. Какие ограничения накладываются на способ представления данных в модели ЭВМ?
7. Какие режимы работы предусмотрены в модели и в чем отличие между ними?
8. Как записать программу в машинных кодах в память модели ЭВМ?
9. Как просмотреть содержимое регистров процессора и изменить содержимое некоторых регистров?
10. Как просмотреть и, при необходимости, отредактировать содержимое ячейки памяти?
11. Как запустить выполнение программы в режиме приостановки работы после выполнения каждой команды?
12. Какие способы адресации операндов применяются в командах ЭВМ?
13. Какие команды относятся к классу передачи управления?
Система команд
Систе́ма кома́нд (также набо́р команд) — соглашение о предоставляемых архитектурой средствах программирования, а именно: определённых типах данных, инструкций, системы регистров, методов адресации, моделей памяти, способов обработки прерываний и исключений, методов ввода и вывода.
Система команд представляется спецификацией соответствия (микро)команд наборам кодов (микро)операций, выполняемых при вызове команды, определяемых (микро)архитектурой системы. (При этом, на системах с различной (микро)архитектурой может быть реализована одна и та же система команд. Например, Intel Pentium и AMD Athlon имеют почти идентичные версии системы команд x86, но имеют радикально различный внутренний дизайн.)
Базовыми командами являются, как правило, следующие:
-
, например «сложения» и «вычитания»; , например «логическое и», «логическое или» и «логическое не»; , например «переместить», «загрузить», «выгрузить»; , для обмена данными с внешними устройствами;
- управляющие инструкции, например «переход», «условный переход», «вызов подпрограммы», «возврат из подпрограммы».
Оптимальными в различных ситуациях являются разные способы построения системы команд.
- Если объединить наиболее часто используемую последовательность микроопераций под одной микрокомандой, то надо будет обеспечивать меньше микрокоманд. Такое построение системы команд носит название CISC (Complex Instruction Set Computer), в распоряжении имеется небольшое число составных команд.
- С другой стороны, это объединение уменьшает гибкость системы команд. Вариант с наибольшей гибкостью — наличие множества близких к элементарным операциям команд. Это RISC (Reduced Instruction Set Computer), в распоряжении имеются усечённые, простые команды.
- Еще большую гибкость системы команд можно получить используя MISC подход, построенный на уменьшении количества команд до минимального и упрощении вычислительного устройства обработки этих команд.
См. также
| Это заготовка статьи о компьютерах. Вы можете помочь проекту, исправив и дополнив её. Это примечание по возможности следует заменить более точным. |
| Технологии цифровых процессоров | |
|---|---|
| Архитектура | |
