Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛАБОРАТОРНАЯ РАБОТ1.docx
Скачиваний:
5
Добавлен:
18.09.2019
Размер:
44 Кб
Скачать
☆

2 Привести примеры одноадресных команд. Привести примеры двухадресных команд.

Ниже приведен формат двухадресной (двухоперандной) команды процессоров.

Основной формат кодирования команд Ассемблера для компьютеров фирмы IBM.

Основной формат кодирования команд ассемблера имеет следующий вид:

[метка] команда [операнд(ы)]

Метка (если имеется), команда и операнд (если имеется) pазделяются по крайней мере одним пробелом или символом табуляции. Максимальная длина строки - 132 символа, однако, большинство предпочитают работать со строками в 80 символов (соответственно ширине экрана). Примеры кодирования: Метка Команда Операнд COUNT DB 1 ;Имя, команда, один операнд MOV AX,0 ;Команда, два операнда Метка в языке ассемблера может содержать следующие символы:

Буквы: от A до Z и от a до z Цифры: от 0 до 9 Спецсимволы: знак вопроса (?) точка (.) (только первый символ) знак "коммерческое эт" (@) подчеркивание (-) доллар ($) Первым символом в метке должна быть буква или спецсимвол. Ассемблер не делает различия между заглавными и строчными буквами. Максимальная длина метки - 31 символ. Примеры меток: COUNT, PAGE25, $E10. Рекомендуется использовать описательные и смысловые метки. Имена регистров, например, AX, DI или AL являются зарезервированными и используются только для указания соответствующих регистров. Например, в команде ADD AX,BX ассемблер "знает", что AX и BX относится к регистрам. Однако, в команде MOV REGSAVE,AX ассемблер воспримет имя REGSAVE только в том случае, если оно будет определено в сегменте данных. В прил.3 приведен cписок всех зарезервированных слов ассемблера.

Команда Мнемоническая команда указывает ассемблеру какое действие должен выполнить данный оператор. В сегменте данных команда (или директива) определяет поле, рабочую oбласть или константу. В сегменте кода команда определяет действие, например, пересылка (MOV) или сложение (ADD).

Операнд Если команда специфицирует выполняемое действие, то операнд определяет а) начальное значение данных или б) элементы, над которыми выполняется действие по команде. В следующем примере байт COUNTER определен в сегменте данных и имеет нулевое значение:

Метка Команда Операнд COUNTER DB 0 ;Определить байт (DB) с нулевым значением Команда может иметь один или два операнда, или вообще быть без операндов. Рассмотрим следующие три примера: Команда Операнд Комментарий Нет операндов RET ;Вернуться Один операнд INC CX ;Увеличить CX Два операнда ADD AX,12 ;Прибавить 12 к AX Метка, команда и операнд не обязательно должны начинаться с какой-либо определенной позиции в строке. Однако, рекомендуется записывать их в колонку для большей yдобочитаемости программы. Для этого, например, редактор DOS EDLIN обеспечивает табуляцию через каждые восемь позиций.

Перечислить типы команд Ассемблера для компьютеров фирмы IBM

Ниже приведен примерный перечень команд Ассемблера для процессоров 80286, 80386.

ADD: Сложение двоичных чисел. При выполнении данной операции прибавляется один байт или одно слово в памяти, регистре или непосредственно к содержимому регистра или прибавляет один байт или слово в регистре или непосредственно к памяти.

AND: Логическое И. Команда выполняет поразрядную конъюнкцию (И) битов двух операндов. Операнды представляют собой одно- или двухбайтовые величины в регистре или памяти. Второй операнд может содержать непосредственные данные. Команда AND проверяет два операнда поразрядно. Если два проверяемых бита равны 1, то в первом операнде устанавливается единичное значение бита, в других случаях нулевое.

CMP: Сравнение. Выполняется сравнение содержимого двух полей данных. Фактически команда CPM вычитает второй операнд из первого, но содержимое полей не изменяет. Операнды должны иметь одинаковую длину: байт или слово. Команда может сравнивать содержимое регистра, памяти или непосредственное значение с содержимым регистра; или содержимое регистра или непосредственное значение с содержимым памяти.

JMP: Безусловный переход. Выполняется переход по указанному адресу при любых условиях. Команда JMP заносит в регистр IP необходимый адрес перехода. Существует пять типов команды JMP для передачи управления внутри сегмента или между сегментами. При межсегментном переходе в регистр CS заносится также новый сегментный адрес.

LOOP: Цикл. Данная команда управляет выполнением группы команд определенное число раз. До начала цикла в регистр CX должно быть загружено число выполняемых циклов. Команда LOOP находится в конце цикла, где она уменьшает значение в регистре CX на единицу. Если значение в регистре CX не равно нулю, то команда передает управление по адресу, указанному в операнде (прибавляет к регистру IP значение операнда); в противном случае управление передается на следующую после LOOP команду (происходит выход из цикла).

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

NEG: Изменение знака числа. Команда меняет двоичное значение из положительного в отрицательное и из отрицательного в положительное. Команда NEG вычисляет двоичное дополнение от указанного операнда: вычитает операнд из нуля и прибавляет единицу. Операндом может быть байт или слово в регистре или памяти.

NOT: Логическое НЕТ. Меняет нулевые биты на единичные и наоборот. Операндом может быть байт или слово в регистре или памяти.

OR: Логическое ИЛИ. Команда выполняет поразрядную дизъюнкцию (ИЛИ) над битами двух операндов. Операндами являются байты или слова в регистрах или памяти, второй операнд может иметь непосредственное значение. Команда OR обрабатывает операнды побитово. Если любой из проверяемых бит равен единице, то бит в операнде 1 становится равным единице, в противном случае бит в операнде 1 не изменяется.

OUT: Вывод байта или слова в порт. Байт или слово из регистра передается в порт вывода. Порт кодируется как фиксированный числовой операнд или как переменная в регистре.

Составные части (поля) команд

Представление команд.

Команда содержит несколько составных частей (полей). Формат команды зависит от структуры машинных слов и обычно содержит:

  1. указание на ту операцию, которая подлежит выполнению (операционная часть);

  2. указание на то, с какими операндами надо работать (адресная часть);

  3. дополнительную организационную информацию (индикаторная часть), причем эта информация часто содержится в адресной части.

Команда представляется в машине двоичным словом. Отдельные части (поля) этого слова задают упомянутую выше информацию. При машинной трактовке все данные также представляются в виде двоичных слов. Поэтому важно знать, как должно интерпретироваться это слово — как команда, как адрес или как элемент данных. Это достигается путем использования признаков.

Привести примеры использования команд Ассемблера