- •Часть 1. Микропроцессорные вычислительные машины.
- •Часть 2. Высокопроизводительные вычислительные системы.
- •Часть 3. Вычислительные сети.
- •1.4. Высокопроизводительные вычислительные системы.
- •.5. Вычислительные сети.
- •2. Курсовая работа
- •2.1. Общие указания по выполнению
- •2.2. Вопросы для изучения
- •2.3. Задание на курсовую работу
- •2.4. Исходные данные
- •2.5. Содержание отчёта
- •Задание на курсовую работу
- •2.6. Справочные материалы
- •2.6.1. Организация микропроцессорной системы
- •2.6.2. Элементная база
- •2.6.3. Описание основных используемых в работе команд
- •2.6.4. Дополнительная информация
- •Список литературы
2.6.3. Описание основных используемых в работе команд
1. ORG – Задание счетчика размещения в памяти
Устанавливает ассемблерный счетчик размещения в соответствии с выражением.
2. DB – Описание байта
[name] DB initialvalue,,,.
Размещает и инициализирует один или более байтов (по 8 бит) памяти. Аргумент «initialvalue» может быть задан одним из следующих способов:
целое число (например, 12);
строка (например, 'message');
константное выражение (например, 2 * 5);
оператор DUP (например, 10 DUP (?));
знак вопроса «?» (например, 0,1,?,2).
Примечания:
Когда имеется аргумент name (он не является обязательным), то ассемблер создает переменную, значение смещения которой равно текущему значению счетчика размещения. Эта переменная будет иметь тип BYTE.
3. MOV – Пересылка (байта или слова)
Признаки не меняются.
Команда: MOV destination, source.
Логика: destination = source.
MOV пересылает по адресу destination байт или слово, находящееся по адресу «source».
4. IN – accumulator, port.
Логика: accumulator = (port).
IN передает байт или слово из заданного порта port в AL или AX. Адрес порта может определяться как непосредственным байтовым значением (в диапазоне 0-255), так и с использованием косвенной адресации по регистру DX.
5. AND – destination, source.
Логика: destination = destination AND source.
AND выполняет логическое умножение побитно над своими операндами и засылает результат по назначению «destination». Оба операнда могут быть словами или байтами.
6. CMP – destination, source.
Логика: Установка признаков в соответствии с результатом.
(destination - source)
CMP сравнивает два числа, вычитая операнд source из операнда destination, и изменяет значения признаков. CMP не изменяет сами операнды. Операндами могут быть байты или слова.
7. OUT – port, accumulator.
Логика: (port) = accumulator.
OUT передает байт или слово из AL или AX в заданный порт.
Адрес порта может определяться как непосредственным байтовым значением (в диапазоне 0-255), так и с использованием косвенной адресации по регистру DX.
8. JE, JZ – Переход если равно
Признаки не меняются.
Команда: JE short-label.
Условие перехода: Jump if ZF = 1.
Команда JE используется после команд CMP и SUB и передает управление по метке short-label, если первый операнд был равен второму. Цель перехода должна лежать в пределах от -128 до 127 байтов от следующей команды.
Примечания:
Если для JZ указать переход «0», то она будет выполняться как JE.
9. JMP – Безусловный переход
Признаки не меняются.
Команда: JMP target.
Условие перехода: переход осуществляется всегда.
Команда JMP всегда передает управление в место, определяемое операндом «target». В отличие от команды CALL, JMP не запоминает значение IP, т.к. появление команды возврата RET не ожидается. Переход внутри сегмента может быть задан как операндом типа память, так и через 16-битный регистр. Переход во внешний сегмент может быть задан только через операнд типа память.
10. XOR – Исключающее ИЛИ
Признаки:
O |
D |
I |
T |
S |
Z |
A |
P |
C |
0 |
|
|
|
* |
* |
* |
* |
0 |
Команда: XOR destination, source.
Логика: destination = destination XOR source.
XOR выполняет операцию исключающего или побитно над своими операндами и засылает результат по назначению «destination».
Оба операнда могут быть словами или байтами.
Команда XOR устанавливает каждый бит результата в «1», если в точности один из соответствующих битов операндов равен «1».
11. CALL – Вызов подпрограммы
Признаки не меняются.
Команда: CALL procedure_name.
Применяется для удобства разбиения программы на подпрограммы.
