Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
409
Добавлен:
06.01.2022
Размер:
33.47 Mб
Скачать

Язык ассемблера

Для составления программы в символическом коде используется несколько соглашений, характерных для всех ассембле-ров; однако мнемонические сокращения для различных семейств микропроцессоров могут отличаться друг от друга. При символической записи операнд указывается непосредственно за командой, например LDAA 0200. При отсутствии других знаков число интерпретируется как шестнадцатиричный адрес, причем если указывается 4 разряда, то это соответствует прямой адресации, если 2 разряда-то укороченной. В случае непосредственной адресации можно кроме двухразрядного шестнадцатеричного числа использовать также двоичные, десятичные числа или знаки кода

ASCII. Применяемые при этом обозначения имеют следующий вид:

На рис. 21.11 показан пример записи на языке ассемблера программы, которая была приведена ранее в табл. 21.8. Во втором столбце таблицы программа записана в шестнадцатеричном машинном коде, в четвертом-на языке ассемблера. При этом байты, которые относятся к команде, при необходимости приводятся в той же строке. Заданные таким образом адреса всегда относятся к первому байту.

Рис. 21.11. Язык ассемблера на примере программы загрузки памяти начиная с адреса 0200 на 0, 1, 2.

21.5. Обзор микропроцессоров различного типа

Из множества разнообразных типов микропроцессоров наиболее разработаны два больших семейства. Одно базируется на модели 6800 фирмы Motorola, другое— на модели 8080 фирмы Intel. В табл. 21.10 приведены характеристики семейства микропроцессоров 6800. Они отличаются количеством команд, однако это обусловлено не применением различных способов адресации, а использованием разных рабочих регистров. Следовательно, инструкции LDA А и LDA В рассматриваются как отдельные команды.

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

Микропроцессор 6802 представляет собой следующую модификацию модели 6800 и имеет такой же набор команд. Он отличается тем, что содержит внутренний тактовый генератор и ОЗУ объемом 128 байт. Микропроцессор MD 46802 является КМОП-модификацией микропроцессора 6802 и благодаря этому характеризуется низким потреблением тока. Микропроцессор 6809 снабжен дополнительными рабочими регистрами и поэтому имеет гораздо более эффективный набор команд, чем базовая модель 6800.

Микропроцессор типа 68000 относится к новому поколению микропроцессоров. Он имеет 16-разрядную шину данных и обеспечивает возможность работы в 32-разрядном формате, 24-разрядная адресная шина позволяет адресовать память объемом 224 байт = 16 Мбайт. При этом ЦПЭ по производительности приближается к большой управляющей вычислительной машине. Набор команд представляет собой комбинацию сравнительно малого количества команд с множеством различных способов адресации. При этом обеспечивается наибольшая простота и эффективность программирования.

Характеристики семейства микропроцессоров 8080 приведены в табл. 21.11. Микропроцессор базового типа 8080 А основан на традиционной технологии, и для его работы требуется три напряжения питания. Процессор этого типа не является однокристальным, так как наряду с внешним тактовым генератором для него необходим дополнительный кристалл устройства управления. Следующая модель 8085 А имеет одно напряжение питания, равное 5 В. Тактовый генератор и устройство управления находятся внутри кристалла. Этим он напоминает микропроцессор типа 6802. Однако набор команд для микропроцессора 8085 А имеет несколько существенных недостатков. Во-первых, программа, составленная для этого микропроцессора, не является перемещаемой. Для того чтобы переписать машинную программу в другую область памяти, нужно изменить коды адресов в командах переходов. Во-вторых, возможны ошибки при выполнении команд, реализующих арифметические действия в дополнительном коде, например, таких, как арифметический сдвиг вправо (Arithmetic Shift Right) или переход при переполнении (Branch If Overflow). Программа выполнения арифметических действий, не имеющая этих недостатков, сложнее. Командами, отсутствующими в модели 6800, дополнен микропроцессор типа Z80. Кроме того, в нем рабочие регистры разрядностью от 8 до 16 бит являются переключаемыми.

Микропроцессор типa 8086 имеет 16-разрядную шину данных и 16-разрядную арифметику; в нем предусмотрена аппаратная реализация операций умножения и деления. Микропроцессор типа 8088 имеет такой же набор команд, как и микропроцессор 8086, но содержит 8-разрядную шину данных. В связи с этим в тех случаях, когда не требуется высокой скорости обработки информации, можно комбинировать мощный набор команд микропроцессора чипа 8086 с малыми аппаратурными затратами, характерными для S-разрядных устройств.

Микропроцессор Z8001 по своим параметрам значительно превосходит модель 8086 и сравним с микропроцессором тина 68000. Однако его структура команд сложнее, чем для микропроцессора типа 68000.