Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Раздел 3 Асемблер для студ..docx
Скачиваний:
6
Добавлен:
14.11.2018
Размер:
69.69 Кб
Скачать

Раздел 3. Язык ассемблер

Тема 3.1 Оперативная память, регистры, представление данных

Для определённой серии МП используется индивидуальный язык составления программ – язык ассемблер.

Язык ассемблер занимает промежуточное положение между машинными кодами и языками высокого уровня. Программировать на этом языке проще. Программа на языке ассемблер более рационально использует возможности конкретной машины (точнее МП), чем программа на языке высокого уровня (который более прост для программиста, чем ассемблер). Основные принципы программирования на машинно-ориентированных языках рассмотрим на примере языка ассемблер для МП КР580ВМ80. Для программирования на языке используется общая методика. Конкретные же технические приемы записи программ связаны с особенностями архитектуры и системы команд целевого МП.

1.Программная модель микропроцессорной системы на основе мп кр580вм80

Программная модель МПС в соответствии с рисунком 1

МП Порты Память

B

C

05H

0000

07FF

Управляющая программа

(монитор)

ПЗУ

D

E

06H

H

L

07H

Демонстрационные программы

А

FL

0800

0AFF

Область адресов для записи

исследуемых программ

ОЗУ

SP

PC

0B00

0BB0

Для записи данных исследуемых программ

Cтек

S

Z

0

AC

0

P

1

C

FL

Рисунок 1

С точки зрения программиста МП КР580ВМ80 имеет следующие программно-доступные регистры.

А – 8-битовый регистр аккумулятор. Является главным регистром МП. Любая операция, выполняемая в АЛУ, предполагает размещение одного из операндов, подлежащих обработке, в аккумуляторе. Результат операции в АЛУ тоже обычно хранится в А.

B, C, D, E, H, L – 8-битовые регистры общего назначения (РОН). Внутренняя память МП. Предназначены для хранения обрабатываемой информации, а также результатов операции. При обработке 16-разрядных слов из регистров образуют пары BC, DE, HL, причем сдвоенный регистр называется первой буквой – B, D, H. В регистровой паре старшим является первый регистр. Особым свойством обладают регистры H, L, используемые как для хранения данных, так и для хранения 16-разрядных адресов ячеек ОЗУ.

FL – регистр флагов (регистр признаков) 8-битовый регистр, в котором сохраняются пять признаков результата выполнения арифметических и логических операций в МП. Формат FL в соответствии с рисунком

Разряд С ( CY - carry) - перенос, устанавливается в 1, если был перенос из старшего разряда байта при выполнении арифметических операций.

Разряд Р (parity) – четность, устанавливается в 1, если число единиц в разрядах результата четно.

Разряд АС – дополнительный перенос, предназначен для хранения значения переноса из младшей тетрады результата.

Разряд Z (нуль) – устанавливается в 1, если результат операции равен 0.

Разряд S (знак) – устанавливается в 1, если результат отрицательный, и в 0, если результат положительный.

SP –- указатель стека, 16-разрядный регистр, предназначен для хранения адреса ячейки памяти, куда был записан последний введенный в стек байт.

РС – программный счетчик (счетчик команд), 16-разрядный регистр, предназначен для хранения адреса следующей выполняемой команды. Содержимое счетчика команд автоматически увеличивается на 1 сразу же после выборки очередного байта команды.

В начальной области памяти адреса 0000Н – 07FF располагается управляющая программа и демонстрационные программы. Это область ПЗУ.

0800 – 0АFF - область адресов для записи исследуемых программ. (ОЗУ).

0В00 – 0ВВ0 - область адресов для записи данных. (ОЗУ).

0ВВ0 – начальный адрес стека. (ОЗУ).

Стек – специально организованная область ОЗУ, предназначенная для временного хранения данных или адресов. Число, записанное в стек последним, извлекается из него первым. Указатель стека хранит адрес последней ячейки стека, в которой записана информация. При вызове подпрограммы в стеке автоматически сохраняется адрес возврата в основную программу. Как правило, в начале каждой подпрограммы сохраняются в стеке содержимое всех задействованных при ее выполнении регистров, а в конце подпрограммы восстанавливают их из стека.