на тему рефераты Информационно-образоательный портал
Рефераты, курсовые, дипломы, научные работы,
на тему рефераты
на тему рефераты
МЕНЮ|
на тему рефераты
поиск
Микропроцессорный комплект серии К580
p align="left">50H 2-й байт

80H 3-й байт

стековая адресация (адрес ячейки памяти, содержащей операнд, находится в указателе стека SP)

PUSH PSW; ((SP)-1) (A), ((SP-2) (F), (SP) (SP)-2

F5H КОП - код операции записи в стек служебного слова.

6. Программирование на языке ассемблера

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

Метка ассоциируется с 16-битовым адресом той ячейки памяти, где будет размещен первый байт отмеченной команды. Использование меток освобождает программиста от необходимости оперировать абсолютными адресами памяти при записи команд передачи управления. Метка должна начинаться с буквы и заканчиваться двоеточием, может содержать до шести символов. Не допускается использовать в качестве меток ключевые слова (мнемоники команд и директив). Символическое обозначение должно быть уникальным (может появиться в поле метки только один раз).

Мнемокод команды может включать до четырех символов и вместе с обозначениями операндов образует группу ключевых слов ассемблера.

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

Поле комментария начинается с точки с запятой и полностью игнорируется ассемблером. В поле комментария фиксируется обычно функция, которую выполняет группа команд в конкретной прикладной программе.

Кроме команд программа может содержать директивы ассемблера:

ORG - начальный адрес массива, END - прекращение трансляции, EQU - эквивалентность (присвоение), DB - определить байт и тд.

Команды микропроцессора серии К580 (i8080)

Команда

N б

N т

Описание команды

Флаги

Группа команд пересылки данных

MOV r1,r2

1

5

Пересылка данных из r2 в r1

MOV М,r

1

7

Пересылка данных из r в память

MOV r,М

1

7

Пересылка данных из памяти в r

XCHG

1

4

Обмен данными между парами регистров HL и DL

MVI r,d8

2

7

Занесение байта данных в регистр

MVI M,d8

2

10

Занесение байта данных в память

LXI rp,d16

3

10

Занесение двух байтов данных в пару регистров ( B,D,H,SP )

LDAX rp

1

7

Занесение в А содержимого ячейки, косвенно адресуемой парой регистров (B или D)

LDA adr16

3

13

Загрузка в А содержимого ячейки с указанным адресом

STAX rp

1

7

Занесение содержимого А в ячейку, косвенно адресуемую парой регистров (B или D)

STA adr16

3

13

Занесение содержимого А в ячейку с указанным адресом

LHLD adr16

3

16

Загрузка в регистры H, L содержимого ячеек с указанным адресом и адресом, на единицу большим

SHLD adr16

3

16

Занесение содержимого регистров H,L в две ячейки памяти

Группа команд обработки данных

ADD r

1

4

Сложение содержимого r и А

Z,S,P,C,AC

ADD M

1

7

Сложение содержимого ячейки памяти и А

Z,S,P,C,AC

ADС r

1

4

Сложение содержимого r и А с учетом переноса С

Z,S,P,C,AC

ADС M

1

7

Сложение содержимого ячейки памяти и А с учетом переноса С

Z,S,P,C,AC

DAA

1

4

Десятичная коррекция А

Z,S,P,C,AC

Команда

N б

N т

Описание команды

Флаги

SUB r

1

4

Вычитание содержимого r из A

Z,S,P,C,AC

SUB M

1

7

Вычитание содержимого ячейки памяти из A

Z,S,P,C,AC

SBB r

1

4

Вычитание содержимого r из A с заемом

Z,S,P,C,AC

SUBB M

1

7

Вычитание содержимого ячейки памяти из A с заемом

Z,S,P,C,AC

ANA r

1

4

Поразрядное «И» над содержимым r и A

Z,S,P,C=0,

AC=0

ANA M

1

7

Поразрядное «И» над содержимым ячейки памяти и A

Z,S,P,C=0,

AC=0

XRA r

1

4

Поразрядное «Исключающее ИЛИ» над содержимым r и A

Z,S,P,C=0,

AC=0

XRA M

1

7

Поразрядное «Исключающее ИЛИ» над содержимым ячейки памяти и A

Z,S,P,C=0,

AC=0

ORA r

1

4

Поразрядное «ИЛИ» над содержимым r и A

Z,S,P,C=0,

AC=0

ORA M

1

7

Поразрядное «ИЛИ» над содержимым ячейки памяти и A

Z,S,P,C=0,

AC=0

CMP r

1

4

Сравнение содержимого r и A

Z,S,P,C,AC

CMP M

1

7

Сравнение содержимого ячейки памяти и A

Z,S,P,C,AC

ADI d8

2

7

Сложение байта и A

Z,S,P,C,AC

ACI d8

2

7

Сложение байта и A с учетом переноса

Z,S,P,C,AC

SUI d8

2

7

Вычитание байта из A

Z,S,P,C,AC

SBI d8

2

7

Вычитание байта из A с учетом переноса

Z,S,P,C,AC

ANI d8

2

7

Поразрядное «И» байта и A

Z,S,P,C=0,

AC=0

XRI d8

2

7

Поразрядное «исключающее ИЛИ» байта и A

Z,S,P,C=0,

AC=0

Команда

N б

N т

Описание команды

Флаги

ORI d8

2

7

Поразрядное «ИЛИ» байта и A

Z,S,P,C=0,

AC=0

CPI d8

2

7

Сравнение содержимого A и байта

Z,S,P,C,AC

DAD rp

1

10

Сложение содержимого пары HL и регистровых пар (B,D,H,SP)

Z,S,P,C,AC

INR r

1

5

Увеличение содержимого r на 1

Z,S,P,AC

INR M

1

10

Увеличение содержимого ячейки памяти на 1

Z,S,P,AC

DCR r

1

5

Уменьшение содержимого r на 1

Z,S,P,AC

DCR M

1

10

Уменьшение содержимого ячейки памяти на 1

Z,S,P,AC

INX rp

1

5

Увеличение содержимого пары регистров на 1

DCX rp

1

5

Уменьшение содержимого пары регистров на 1

RLC

1

4

Циклический сдвиг A влево

C

RRC

1

4

Циклический сдвиг A вправо

C

RAL

1

4

Циклический сдвиг A влево через перенос

C

RAR

1

4

Циклический сдвиг A вправо через перенос

C

CMA

1

4

Поразрядное инвертирование A

STC

1

4

Установка признака переноса

C=1

CMC

1

4

Инвертирование флага переноса

C=C

Группа команд управления ходом выполнения программы

JMP adr16

3

10

Безусловный переход по адресу

JC adr16

3

10

Переход по адресу при наличии переноса

JNC adr16

3

10

Переход по адресу при отсутствии переноса

JZ adr16

3

10

Переход по адресу при нуле

JNZ adr16

3

10

Переход по адресу при отсутствии нуля

JP adr16

3

10

Переход по адресу при плюсе

Команда

N б

N т

Описание команды

Флаги

JM adr16

3

10

Переход по адресу при минусе

JPE adr16

3

10

Переход по адресу при четности

JPO adr16

3

10

Переход по адресу при нечетности

CALL adr16

3

17

Вызов подпрограммы

CC adr16

3

11/17

Вызов подпрограммы при переносе

CNC adr16

3

11/17

Вызов подпрограммы при отсутствии переноса

CZ adr16

3

11/17

Вызов подпрограммы при нуле

CNZ adr16

3

11/17

Вызов подпрограммы при отсутствии нуля

CP adr16

3

11/17

Вызов подпрограммы при плюсе

CM adr16

3

11/17

Вызов подпрограммы при минусе

CPE adr16

3

11/17

Вызов подпрограммы при четности

CPO adr16

3

11/17

Вызов подпрограммы при нечетности

RET

1

10

Возврат

RC

1

5/11

Возврат при переносе

RNC

1

5/11

Возврат при отсутствии переноса

RZ

1

5/11

Возврат при нуле

RNZ

1

5/11

Возврат при отсутствии нуля

RP

1

5/11

Возврат при плюсе

RM

1

5/11

Возврат при минусе

RPE

1

5/11

Возврат при четности

RPO

1

5/11

Возврат при нечетности

RST N

1

11

Повторный запуск с адреса 8N

IN adr8

2

10

Ввод данных из порта в A

OUT adr8

2

10

Вывод данных в порт из A

PUSH rp

1

11

Занесение содержимого пары регистров (B,D,H,PSW) в стек

POP rp

1

10

Выдача данных из стека в пару регистров (B,D,H,PSW)

Z,S,P,C,AC

Команда

N б

N т

Описание команды

Флаги

XTHL

1

18

Обмен данными между вершиной стека и парой HL

SPHL

1

5

Занести в указатель стека содержимое регистровой пары HL

DI

1

4

Запретить прерывание

EI

1

4

Разрешить прерывание

NOP

1

4

Холостая операция

HLT

1

7

Останов

Примечание:

Nб - число байт; Nт - число тактов;

В знаменателе дроби указано число тактов на выполнение операции при выполнении условия, в числителе - при невыполнении.

Рассмотрим примеры записи программ на языке ассемблера ASM80 (разработанного в соответствии с системой команд процессора i8080).

7. Программирование БИС параллельного интерфейса

При программировании БИС в регистр РУС1 командой OUT 83H записывается управляющее слово, которое определяет один из трех режимов работы портов параллельного интерфейса:

режим 0 - программно управляемый ввод/вывод данных в синхронном режиме по трем 8-разрядным каналам РА, РВ и PC. Каждый канал может быть использован только для ввода или вывода информации, а канал PC дополнительно может быть разделен на два 4-разрядных канала;

режим 1 - обмен данными с ВУ по каналам РА и РВ в асинхронном режиме и режиме прерывания программы. Управляющие сигналы при этом передаются по каналу PC;

режим 2 - двунаправленный обмен данными с ВУ по каналу РА в режиме прерывания программы. Каналу РC придается пять линий канала PC для передачи и приема управляющих сигналов. Канал РВ может быть при этом запрограммирован на работу в режимах 0 или 1.

При программировании БИС используются два формата управляющего слова: первый предназначен для задания режимов работы и направления включения каналов, второй - для установки или сброса произвольного разряда канала PC. Признак формата содержится в старшем бите управляющего слова: 1 соответствует формату 1, а 0 -формату 2. В схеме, изображенной на рис.4, порты РА и РВ работают в режиме 0 и для программирования параллельного интерфейса нам понадобятся управляющие слова обоих форматов для режима 0.

Управляющее слово первого формата:

D7

D6

D5

D4

D3

D2

D1

D0

1

0

0

PA

PC4-PC7

0

PB

PC0-PC3

Логическая «1» в соответствующем разряде настраивает обозначенный канал на ввод, логический «0» - на вывод информации. Порт С позволяет производить независимую настройку полупортов на ввод-вывод в режиме 0.

Управляющее слово второго формата:

D7

D6

D5

D4

D3

D2

D1

D0

0

Х

Х

Х

D3

D2

D1

D0

В битах D6-D4 управляющего слова может быть произвольная информация.

8. Программирование таймера и контроллера прерываний

Контроллер прерываний (КП) содержит регистры: запросов RGI, приоритетов RGB, обслуживания ISR и масок прерывания RGM. Запросы поступают на входы IR0-IR7 и устанавливают соответствующие разряды регистра запросов RGI. КП оценивает их приоритет и формирует запрос INT. Микропроцессор принимает INT, и если прерывания разрешены, то подтверждает прием выдачей флага INTA. КП устанавливает разряд ISR с наивысшим приоритетом, сбрасывает запрос в RGI и выдает на шину данных код команды CALL (0CDH). МП выдает еще два сигнала INTA, по которым КП выдает на ШД последовательно сначала младший, а затем старший байт адреса подпрограммы обслуживания прерываний.

Установка КП в исходное состояние и настройка его на определенный режим работы по обслуживанию прерываний программируются двумя типами команд:

командами инициализации ICW1, ICW2;

командами управления режимом OCW1, OCW2, OCW3.

Команды ICW загружаются по команде OUT с учетом разряда АО. ICW1 используется при формировании младшего байта адреса подпрограммы, ICW2 задает старший байт адреса:

КП готов работать в режиме с фиксированными приоритетами запросов: IR0 - наивысший, IR7 - низший. Для задания других режимов в любой момент загружаются команды-приказы OCW (Operate Control Word):

Mi=1 - запрет прерывания по i-му каналу.

Сброс разряда регистра обслуживания ISR и циклический сдвиг приоритета. Записывается в подпрограмме обслуживания прерывания перед RET. Варианты приказа OCW2:

00100000 - сброс бита регистра обслуживания ISR с максимальным приоритетом;

10100000 - сброс бита ISR с максимальным приоритетом и назначение соответствующему входу низшего приоритета;

01100L2L1L0 - сброс бита ISR, определяемого полем L2L1L0;

11000L2L1L0 - назначение входу L2L1L0 низшего приоритета.

Режим опроса, считывания состояния КП

В режиме опроса КП принимает запросы на прерывание от внешних устройств и формирует слово состояния опроса (D2-D0), содержащее номер запроса с наивысшим приоритетом. Обслуживание запроса происходит по требованию программы. Программно слово-состояние считывается (командой IN при А0=0), декодируется и осуществляется переход к соответствующей подпрограмме обслуживания прерываний.

Чтение регистра масок RGM осуществляется (командой IN при А0=1) без OCW3, регистра запроса RGI - после OCW3 с RIS=0. регистра обслуживания ISR - после OCW3 c RIS=1.

Формат F в ICW1 задает адресный интервал между начальными адресами подпрограмм обслуживания прерываний. Например, после выполнения команд

Код операции

Комментарий

EI

Разрешить прерывания

MVI

A,36H

ICW1 - один КП, формат 4, A7A6A5=001

OUT

88H

Адрес регистра управления КП при A0=0

MVI

A,0

ICW2 (A15-A8=00000000)

OUT

89H

Адрес регистра управления КП при A0=1

Начальные адреса подпрограмм обслуживания прерываний будут иметь следующие значения:

Программируемый интервальный таймер. Режимы работы программируемого таймера поясняют временные диаграммы (рис.6), на которых показаны сигналы на выходе OUT счетчика (это может быть СТО, СТ1 или СТ2) в каждом режиме, если при программировании в него загружено число N=4.

CLK

Тактовые импульсы

N = 4

WR

Конец программирования

GATE

Аппаратное разрешение

NT

Режим 0

Программная задержка

Режим 1

Ждущий мультивибратор

NT

Режим 2

Генератор такт. импульсов

NT

Режим 3

Генератор меандра

NT

Режим 4

Программно-управл. строб

NT

Режим 5

Аппаратно-управл. строб

Рисунок 6 - Диаграммы режимов работы программируемого таймера

Режим работы каждого счетчика задается записью в регистр управления таймера управляющего слова следующего формата (рис. 7):

Затем осуществляется загрузка каждого счетчика одним или двумя информационными байтами. Таймеры работают на вычитание. Микропроцессор может прочитать текущее значение числа Ni в любом счетчике таймера либо непосредственно с помощью команды IN, либо предварительно защелкнув его в буферном регистре счетчика путем ввода в регистр управления слова с D5=D4=0.

Страницы: 1, 2



© 2003-2013
Рефераты бесплатно, курсовые, рефераты биология, большая бибилиотека рефератов, дипломы, научные работы, рефераты право, рефераты, рефераты скачать, рефераты литература, курсовые работы, реферат, доклады, рефераты медицина, рефераты на тему, сочинения, реферат бесплатно, рефераты авиация, рефераты психология, рефераты математика, рефераты кулинария, рефераты логистика, рефераты анатомия, рефераты маркетинг, рефераты релиния, рефераты социология, рефераты менеджемент.