Главная

Популярная публикация

Научная публикация

Случайная публикация

Обратная связь

ТОР 5 статей:

Методические подходы к анализу финансового состояния предприятия

Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века

Ценовые и неценовые факторы

Характеристика шлифовальных кругов и ее маркировка

Служебные части речи. Предлог. Союз. Частицы

КАТЕГОРИИ:






Структура команд ORL( дизъюнкция), XRL (сумма по модулю 2) аналогична предыдущей.




CLR A - очистка аккумулятора;

CPL A - -инвертирование аккумулятора;

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

RR(RL) A - правый(левый) циклический сдвиг;

RRC(RLC) A - правый(левый) циклический сдвиг через бит С;

При сдвигах формируются признаки P и C.

 

Битовые команды (БК):

 

При выполнении БК бит С выполняет функции аккумулятора.

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

mov C,bit

mov bit,C

SETB bit(C) - установка бита С (или прямоадресуемого бита)

CLR bit (C) - очистка бита С (или прямоадресуемого бита)

CPL C(bit) - инверсия бита С (или прямоадресуемого бита)

ANL C,bit

ORL C,bit

При работе с битами используется только прямая адресация.

 

Команды передачи управления:

Длинный безусловный переход и обращение к подпрограмме:

 

LJMP addr16[ст: мл] – длина команды 3 байта

LCALL addr16 - обращение к подпрограмме -длина команды 3 байта

 

Абсолютные переходы:

AJMP addr11 - длина команды 2 байта

ACALL addr 11 -переход в пределах 2K

В адресе следующей команды замещаются 11 мл. разрядов, причем разряды А10,А9,А8 содержаться в первом байте команды.

 

Косвенные переходы:

JMP @A+DPTR (1байт) - суммируется адрес в процессе выполнения программы. Можно выполнять множественное ветвление по адресу неизвестному в момент написания программы, модифицируя А или DPTR.

SJMP rel (2 байта) - относительная адресация; rel величина смещения в дополнительном коде. Это команда короткого безусловного перехода.

 

Условные переходы:

 

JZ(JNZ) rel - может быть реализована после любой операции, результат которой записывается в аккумулятор.

JC(JNC) rel – переход по значению бита С.

DJNZ Rn(ad), rel - Rn:=Rn-1; Если результат операции не равен 0 - выполняется переход, иначе - следующая команда.

CJNE A,(ad, # d),rel

CJNE (Rn,@Ri),#d,rel

Выполняется вычитание из первого операнда второго; если результат операции не равен нулю - выполняется переход, иначе - следующая команда. Содержимое регистров, участвующих в операциях, не изменяется.

При сравнении формируется бит С.

При программировании в объектном коде адрес перехода вычисляется как:

rel:= адрес перехода - адрес команды перехода + длина команды перехода;

RET - возврат из подпрограммы

RETI - возврат из прерывания.

 

Битовые переходы:

JB(JNB) bit, rel

JBC bit, rel

Переход выполняется при единичном значении бита, адрес которого указан в команде, после чего бит сбрасывается в 0. Эта команда удобна при реализации семафоров.

Семафор представляет собой флаг, расположенный в памяти, информирующий о состоянии связанного с ним ресурса: 1 – свободен, 0 – занято. Захват ресурса допускается только в том случае, если он свободен. Затем семафор должен быть переведен в состояние “ Занято”. Ресурс – всякий объект, распределяемый системой.

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

WAIT: JBC bit,OK; Проверка флага

SJMP WAIT; Ресурс занят

.

.

.

OK: Ресурс свободен

.

.

В ОМК отсутствуют команды ввода-вывода. Обращение к внешним устройствам осуществляется как к ячейкам внешней памяти данных.

Признаки результата операций фиксируются в слове состояния процессора PSW. В этом слове содержатся поля, определяющие номер текущего банка РОНов, и флаг, функции которого определяются пользователем.

 

               
C ÀC F0 RS1 RS0 OV X P

РИС.3.4. Формат слова состояния процессора: С - бит переноса (заема), устанавливается и сбрасывается аппаратно или программно при выполнении арифметических и логических операций; АС - бит вспомогательного переноса (заема) из третьего бита в четвертый; F0 - флаг пользователя, устанавливается, сбрасывается или проверяется программно; RS1,RS0 - выбор банка регистров; OV- бит арифметического переполнения; Р - бит паритета (четности).

 

 

Использование команд проиллюстрируем на следующем примере:

По сигналу готовности, представляющем собой положительный импульс длительностью 20 мкс, ввести данные через параллельный порт. Разрядность данных 8 бит. Данные записываются в контроллер по условию: xi<=Адоп. Число достоверной информации должно быть К. Вычислить среднее арифметическое и вывести сигналы окончания работы, отрицательный импульс >=40 мкс. При суммировании данных предусмотреть получение результата > 8 бит.

 

Адоп (0:7)- допустимое значение

i(0:7)- номер. Вводимых данных

Xi(0:7)- значение вводимых данных

Y(0:7) - входной регистр данных

К(0:7) - счетчик программируемой задержки

n(0:2) - кол- во достоверной информации

S (0:16) - сумма

Г(0) - входной сигнал

N(0:7) - результат вычислений

В(0) – выходной импульс

Распределение регистров:

R2 - счетчик достоверных данных

R3- счетчик программируемой задержки

R4- младший байт суммы

R5 - старший байт суммы

R6 - счетчик сдвигов

P2 - ввод информации

P1(0) - ввод сигнала готовности

P1(1) - вывод сигнала

 

n:.EQUAL 8

k:.EQUAL 20

.ORG 100h

mov R2, #n; Подготовка регистров

mov R3, #k

mov R6, #3

clr A

mov R4, A

mov R5, A

mov P2, #0ffh; Настройка портов

mov P1, #xxxxxx01bh

setb P1.1

wait1: jnb P1.0, wait1; Анализ готовности

wait0: jb P1.0, wait0

mov A, P2; Чтение вводимых данных

cjne A, #Aдоп,M1; Сравнение с Адоп

M2: clr C; Суммирование

add A, R4

jc M3; Проверка переполнения

M4: mov R4, A

djnz R2, wait1

M1: jnc wait1; Проверка Xi < Адоп

sjmp M2

M3: inr R5; Подсчет числа переполнений

sjmp M4

M5: clr C; Вычисление средне-арифметического

mov A, R5

rrc A

mov R5, A

mov R4, A

djnz R6, M5

clr P1.1;Формирование выходного импульса

М6: djnz R3, М6;Время выполнения DJNZ 2мкс, поэтому (R3)=20

setb P1.1

.end

 

 






Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2024 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных