Здесь располагается содержимое class "clearfloat" id "рамка"

Учебный комплекс "Вычислительная техника"

Основные темы
Лабораторно-практические работы
  1. Изучение команд передачи данных и работы со стеком процессора
  2. Изучение команд целочисленной арифметики процессора
  3. Изучение логических и сдвиговых операций процессора
  4. Изучение команд условного и безусловного перехода процессора
  5. Организация циклов в процессоре
  6. Исследование работы реверсивного счетчика
  7. Исследование работы JK триггера
  8. Исследование работы сдвигающего регистра
  9. Исследование работы синхронного T триггера
  10. Исследование работы синхронного D триггера
  11. Исследование работы мультиплексора
  12. Исследование работы демультиплексора
  13. Исследование работы одноразрядного полного сумматора
  14. Исследование работы логических элементов
  15. Исследование работы RS триггера
  16. Исследование работы дешифратора 2-10
  17. Исследование работы шифратора 10-2
  18. Исследование работы шифратора семисегментного индикатора
  19. Исследование работы семисегментного индикатора
  20. Исследование работы совмещенного шифратора-семисегментного индикатора
  21. Создание схемы электрической принципиальной в PCAD
  22. Вывод схемы электрической принципиальной на печать в PCAD
  23. Создание печатной платы в PCAD
  24. Вывод на печать рисунка печатной платы и сборочного чертежа в PCAD
  25. Основы визуального программирования в среде Delphi
Дополнения

Формат и разновидность команд микропроцессора.

    Все выполняемые микропроцессором операции кодированы в виде двоичных чисел. В современных процессорах CISC (персональные компьютеры) число команд (инструкций) достигает несколько сотен. В общем случае команда имеет следующий формат:



Префикс – уточняет или модифицирует действие команды.

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

Режим адресации – определяет используемую форму адреса операнда.

Масштаб-индекс-база – расширяет возможности адресации операндов.

Смещение – значение эффективного адреса операнда.

Операнды – указывают данные, над которыми нужно выполнить действие и место, куда надо поместить результат.

Из рисунка видно, что размер команды может меняться от 1 байта до 16 байт.

Способ указания операндов называется способом адресации. От разнообразия способов адресации зависит скорость исполнения команд и эффективность программы. В современных процессорах ПК используется несколько десятков способов адресации. Самыми основными из них можно выделить следующие варианты адресации:
- непосредственная адресация, операнд указывается непосредственно в команде в виде числа;
- прямая адресация, операнд указывается в команде регистром или адресом ячейки памяти;
- косвенная адресация, на операнд указывает число в регистре, обозначенном в команде;
- неявная адресация, операнд в команде не указывается, но подразумевается командой по умолчанию.

Для удобства программирования используется язык программирования ассемблер (язык низкого уровня). В этом языке командам сопоставляются некие сокращения слов, значащие действие команды. Программа на ассемблере представляет собой текстовый файл команд, оформленный по определенным правилам. Специальная программа транслятор-компилятор переводит текст с ассемблера в машинные коды, и готовить программу для процессора в виде исполняемого файла. Откомпилированные двоично-кодированные программы практически человеком не читаемы. Но используя программы отладчики можно сделать эти файлы читаемыми и просматривать действия этой программы по шагам.

Рассмотрим основные команды микропроцессоров, на примере некоторых базовых команд микропроцессоров ПК (Intel8086) используя язык ассемблер.

Команды пересылки данных:
MOV <приемник>,<источник> - пересылка данных.  Копирование содержимого источника в приемник;
PUSH  <источник>  - запись в стек.   Занесение слова в стек;
POP  <приемник>  - чтение из стека. Чтение слова из стека.

Стек – это область оперативной памяти организованная по принципу «первым вошел - последним вышел». В команде работы со стеком адрес источника или приемника не указывается, он выбирается автоматически и называется верхушкой стековой памяти. Стековые команды характеризуются быстрой записью и считыванием информации в область оперативной памяти.

Арифметические команды:
ADD  <приемник>,<источник> - сложение.   Сложение источника с приемником и запись результата в приемник;
SUB  <приемник>,<источник>  - вычитание.  Вычитает из приемника значение источника и помещает результат в приемник;
CMP <приемник>,<источник> - сравнение. Выполняется сравнение вычитанием источника из приемника. Признаки операции формируются, но значения источника и приемника остаются неизменными.
MUL   <источник> - умножение без знака. Если источник равен одному байту то источник умножается на содержимое регистра AL и результат помещается в AX.  Если же источник равен машинному слову (два байта), то значение источника умножается на содержимое регистра AX и результат помещается в регистровую пару DX:AX;
DIV <источник> - деление без знака. Если источник – байт, то делимое в AX, делитель  в <источник>, целая часть деления в AL, остаток в AH. В случае если источник равен двум байтам, в качестве делителя берется содержимое пары регистров   DX:AX, результат от деления помещается в AX, остаток в DX;
INC <приемник> - инкрементирование. К содержимому приемника прибавляется единица;
DEC <приемник> - декрементирование. Содержимое приемника уменьшается на единицу.

Логические команды:
OR <приемник>,<источник> - логическое сложение. Выполняет поразрядную дизъюнкцию источника и приемника. Результат помещается в приемник;
AND <приемник>,<источник> - логическое умножение. Выполняет поразрядную конъюнкцию источника и приемника. Результат помещается в приемник;
NOT <приемник> - логическое отрицание. Все биты приемника инвертируются.

Команды условной и безусловной передачи управления:
JMP <адрес> - безусловный переход. Выполняет безусловный переход по указанному адресу. Адресом может быть определенная метка в программе или регистр, косвенно указывающий адрес;
J* <метка> - общий формат условной передачи управления. Имеется довольно много условий перехода. Наиболее часто используемые:
JG – переход, если больше;
JNG – переход, если не больше;
JL – переход, если меньше;
JNL – переход если не меньше;
JE – переход если равно;
JZ – переход если ноль.

Команды управления циклами:
LOOP <метка> - повторять до обнуления содержимого счетчика CX. Перед использованием команды LOOP необходимо в СХ занести число повторений. Команда LOOP уменьшает значение регистра CX на единицу и осуществляет переход на метку, если CX не равно нулю.
Команды работы с подпрограммами:
CALL  <адрес> - вызов подпрограммы. Безусловная передача управления подпрограмме. Адресом может быть определенная метка в программе или регистр, косвенно указывающий адрес;
RET – возврат из подпрограммы.

Кроме рассмотренных нами операций, имеются:
-  команды математического сопроцессора;
- команды обращения к внешним устройствам;
- команды работы со строковыми переменными;
- команды обслуживания и вспомогательные команды.

 В 32 разрядных процессорах к базовым командам добавляются 32 разрядные команды, а к 64 разрядным процессорам еще добавляются команды работы с 64 битными данными.
Из-за ограниченности программы, на уровне данной дисциплины остальные команды рассматривать не будем.