
- •Программирование эвм
- •Int 21h ;кодом возврата 0 прерывания 21h
- •Работа с битами
- •Порядок выполнения работы
- •Устройства ввода-вывода
- •Ввод исходных данных с клавиатуры и вывод результатов на дисплей
- •Inc di ;смещение в видеопамяти на следующий символ
- •Порядок выполнения работы
- •Контрольные задания
- •Система команд процессора
- •Способы адресации
- •Влияние команд на регистр флагов
- •Расширенные регистры и типы данных процессоров x86
- •Система команд процессоров ia-32 и Intel 64
- •Int 21h ;системного прерывания 21h
- •Использование дальней подпрограммы
- •X dw 0aabBh, 0abbAh, 0baaBh, 0bbaAh ;исходные данные
- •Использование подпрограмм для ввода-вывода
- •Порядок выполнения работы
- •Контрольные задания
- •Дескрипторы
- •Порядок работы процессора в защищенном режиме
- •Использование дальней подпрограммы в защищенном режиме
- •Использование idt. Ввод данных с клавиатуры в защищенном режиме
- •Порядок выполнения работы
Система команд процессора
Программная модель процессора. Характеристики команды
Программной моделью процессора является его система команд. Она включает в себя и программно-доступные регистры, и операции, в которых они могут участвовать.
Команда процессора имеет следующие характеристики:
-
тип (группа);
-
формат (в том числе формат кода операции);
-
тип операндов;
-
способ адресации;
-
влияние на регистр флагов;
-
количество циклов и тактов, требуемых для ее выполнения.
Группы команд процессора
Во всех процессорах, как уже отмечалось, в соответствии с основными типами действий, которые необходимо выполнять в самых различных программах, имеются следующие группы команд:
-
Передачи данных.
-
Передачи управления (перехода, ветвления).
-
Арифметических и логических операций.
-
Машинного управления (управления процессором).
Эту классификацию можно продолжить, разбивая группы на подгруппы и т. д.
Из-за сегментирования памяти переходы между командами программы могут быть в пределах одного сегмента кода и из одного сегмента в другой. Внутрисегментные переходы называются ближними, а межсегментные — дальними.
Типы информации, содержащейся в команде
Существует два основных типа информации, содержащейся в команде:
-
Информация о действии, которое нужно выполнить;
-
Информация, которая требуется для выполнения этого действия.
Первый тип информации называется типом операции. Информация этого типа содержится в коде операции команды.
Второй тип может в себя включать:
-
данные, над которыми будет осуществлено действие (операция) — входные операнды;
-
информацию о местонахождении входных операндов;
-
информацию о местонахождении выходных операндов (результатов), то есть куда их требуется поместить.
Информация второго типа может содержаться в коде операции или дополнительных байтах команды.
Формат команды
Формат команды — это ее структура, форма представления вышеуказанной информации в команде, способ ее распределения по байтам и битам, способ толкования процессором байтов, битов и групп битов.
Подчеркнем, что речь здесь идет о представлении команды на языке процессора — машинном языке.
Частью свойства формата команды является ее размер (длина). Он задается в байтах, зависит от способа адресации, типов операндов и других факторов. Максимальная длина команды i8086 составляет шесть байтов.
Общий формат команды i8086 таков:
6 бит |
1 |
1 |
2 бита |
3 бита |
3 бита |
1 или 2 байта |
1 или 2 байта |
COP |
D |
W |
MOD |
REG |
R/M |
DISP8/16 |
DATA8/16 |
Здесь:
-
COP — код операции.
-
D — Direction, направление.
-
W — Word, слово.
-
MOD — способ (режим) адресации.
-
REG — регистр.
-
R/M — регистр или память.
-
DISP8/16 — смещение операнда 8 или 16 бит.
-
DATA8/16 — непосредственный операнд 8 или 16 бит.
Типы операндов команды
Тип операнда определяют следующие свойства:
-
Размер.
-
Кодировка.
-
Беззнаковый или знаковый.
-
Целый или дробный.
-
Скалярный или векторный.
Скалярный операнд представляет собой число, векторный — последовательность (массив) чисел. По этому признаку команды делятся на скалярные и векторные. Векторная команда выполняется быстрее по сравнению с последовательностью аналогичных скалярных команд за счет того, что декодируется один раз. К векторным командам относятся многие команды устройства MMX, которое реализует технологию SIMD (Single Instruction Multiple Data).