Поиск

Полнотекстовый поиск:
Где искать:
везде
только в названии
только в тексте
Выводить:
описание
слова в тексте
только заголовок

Рекомендуем ознакомиться

Информатика, программирование->Книга
Разметка страниц – удобен для окончательного форматирования таблицы перед распечаткой. Границы между страницами в этом режиме отображаются синими пунк...полностью>>
Информатика, программирование->Лабораторная работа
4.17. Зафіксувати уміст регістрів ПЕРЕД позиціонуванням курсору (викликом переривання) для виведення повідомлення про першу з трьох клавіш, які повинн...полностью>>
Информатика, программирование->Лабораторная работа
Следовательно, определение пароля с помощью словаря является более быстрым, чем перебором, если, конечно же, пароль является словом из словаря. Однако...полностью>>
Информатика, программирование->Курсовая работа
В даній курсовій роботі було розглянуто основні типи систем числення, їх властивості, та основні способи переведення з однієї системи числення в іншу....полностью>>

Главная > Книга >Информатика, программирование

Сохрани ссылку в одной из сетей:

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

Аналогичным образом (за исключением префикса #) представляется операнд, определяющий адрес перехода в памяти программ микроконтроллера.

В качестве операндов ассемблерных директив и макрокоманд обычно используются числа, символические имена, выражения, имена программно доступных элементов микроконтроллера (только для директивы REG и макрокоманд), а в ряде случаев мнемоники языка АСМ51 (только для макрокоманд).

Символические имена, являющиеся операндами команд или директив, должны быть обязательно определены с помощью соответствующих директив (EQU, VAR или REG) языка АСМ51. Кроме того, символическое имя адреса в памяти программ может быть определено использованием этого имени в поле метка одной из строк исходного текста МК-программы. Отметим, что корректное символическое имя должно быть представлено комбинацией букв латинского алфавита и цифр и начинаться с буквы, при этом указанная комбинация допускает использование символа подчеркивания.

Применяемые в качестве операндов числа приводятся с указанием системы счисления (СС), для чего используется суффикс (латинская буква, стоящая после числа): B - для двоичной СС, Q - для восьмеричной СС, D - и H - соответственно для десятичной и шестнадцатеричной СС. Число без суффикса считается десятичным.

Выражение, используемое в поле операнды, вычисляется в процессе трансляции исходной МК-программы и представляет собой совокупность символических имен и (или) чисел (в формате 2-байтовых слов), содержащую следующие основные операторы:

"+" - сложение (третий уровень приоритета);

"-" - вычитание (третий уровень приоритета);

"" - умножение (четвертый уровень приоритета);

"/" - деление (четвертый уровень приоритета);

"" - возведение в степень (пятый уровень приоритета);

.OR. - ИЛИ (первый уровень приоритета);

.AND. - И (второй уровень приоритета);

.XOR. - исключающее ИЛИ (первый уровень приоритета);

.NOT. - отрицание (шестой уровень приоритета);

"<" (">") - выделение младшего (старшего) байта 2-байтового слова (шестой уровень приоритета).

Оператор с более высоким уровнем приоритета выполняется в первую очередь. Если в выражении присутствуют операторы с одинаковым уровнем приоритета, то вычисления производятся слева направо. Чтобы изменить указанный порядок выполнения расчетов допускается использовать скобки. В качестве примера приведем выражение <.NOT.13H+1, реализующее процедуру преобразования числа 13H в дополнительный код и эквивалентное числу 0EDH, которое будет получено при трансляции исходной МК-программы.

Поле метка не является обязательным, отделяется от поля команда/ директива пробелом и может содержать символическое имя непосредственных данных, одного из регистров R0-R7, прямого адреса, макрорасширения или адреса перехода в памяти программ. Если метка заканчивается двоеточием, то она может быть расположена в любом месте строки, в противном случае метка должна начинаться в начале строки.

Поле комментарий содержит пояснения различного характера - может объяснять применение той или иной команды или директивы, содержать описание алгоритма участка или МК-программы в целом и др. Это поле не является обязательным и при использовании должно начинаться символом ;.

2.2.1. Система команд языка АСМ51

Система команд языка АСМ51 содержит 111 команд, которые обеспечивают реализацию широкой номенклатуры арифметических и логических операций, а также операций пересылки данных и передачи управления. В табл.2.9 приведены обозначения, используемые в описании команд.

Таблица 2.9

Обозначение

Назначение

addr

Символическое имя вычисляемого адреса ячейки памяти программ.

addr11

Символическое имя 11-битового адреса ячейки памяти программ.

addr16

Символическое имя 16-битового адреса ячейки памяти программ.

bit

Символическое имя 8-разрядного адреса бита в области ячеек резидентной памяти данных или регистров специальных функций, допускающей побитовое обращение (см. рис.2).

data8

Символическое имя байта данных.

Продолжение табл.2.9

Обозначение

Назначение

data16

Символическое имя 16-битовых данных.

direct

Символическое имя 8-разрядного адреса ячейки резидентной памяти данных или регистра специальных функций.

rel

Значение байта смещения, используемое при вычислении адреса addr.

(X)

Содержимое элемента X.

((X))

Содержимое по адресу, хранящемуся в элементе X.

X[M]

Разряд M элемента X.

X[3-0]

Группа разрядов элемента X.



Оператор присваивания.

Дизъюнкция.

Конъюнкция.

Сложение по модулю 2.

XY

Целочисленное деление элемента X на элемент Y.

mod[XY]

Остаток при целочисленном делении.

Время выполнения рассматриваемых команд указывается в машинных циклах. Напомним, что длительность одного машинного цикла определяется выражением , где f есть частота синхронизации микроконтроллера.

ACALL addr11

addr11[10-8] 1 0 0 0 1

addr11[7-0]

Команда "абсолютный вызов подпрограммы" вызывает безусловно подпрограмму, размещенную по адресу addr11. При этом содержимое счетчика команд PC увеличивается на 2 для получения адреса следующей команды, после чего полученное 16-разрядное значение PC помещается в стек, и содержимое указателя стека SP также увеличивается на 2. Адрес перехода образуется с помощью конкатенации (сцепления) 5-ти старших бит увеличенного содержимого счетчика команд PC, содержимого 7-5 битов старшего байта команды и содержимого второго байта команды. Адрес перехода и указанная команда должны находиться внутри одной страницы памяти программ (ПП) объемом 2 Кбайт, определяемой содержимым пяти старших бит PC. Время выполнения команды 2 цикла.

Алгоритм

Пример

(PC)(PC)+2, (SP)(SP)+1

((SP))(PC[7-0]), (SP)(SP)+1

((SP))(PC[15-8])

(PC[10-0])addr11[10-8] addr11[7-0],

где есть знак конкатенации

;(SP)=07H, (PC)=28DH,

;MT1 соответствует адресу ;345H в ПП

ACALL MT1 ;(PC)=345H, ;(SP)=09H,

;в РПД (09H)=02H, (08H)=8FH

ADD A,Rn ;где n=0-7

0 0 1 0 1 r r r

где rrrB=000B-111B

Команда "сложение" складывает содержимое аккумулятора A с содержимым заданного регистра Rn выбранного банка, помещая результат в A. Содержимое используемого регистра не изменяется. При появлении переносов из разрядов 7 и 3 результата устанавливаются в "1" флаг переноса C и флаг дополнительного переноса AC соответственно, в противном случае эти флаги сбрасываются в "0". Флаг переполнения OV устанавливается, если есть перенос из бита 6 и нет переноса из бита 7, или есть перенос из бита 7 и нет - из бита 6, в противном случае флаг OV сбрасывается. Время выполнения команды 1 цикл.

Алгоритм

Пример

(A)(A)+(Rn), где n=0-7

(С)x, (OV)=x, (AC)=x, где x{0,1}

;(A)=0C3H, (R6)=0AAH

ADD A,R6 ;(A)=6DH,(R6)=0AAH,

;(AC)=0, (C)=1, (OV)=1

ADD A,@Ri ;где i{0,1}

0 0 1 0 0 1 1 i

Команда "сложение" складывает содержимое аккумулятора A с содержимым ячейки резидентной памяти данных (РПД), адресуемой содержимым заданного регистра Ri выбранного банка. Результат размещается в A. Содержимое используемой ячейки не изменяется. Логика установки (сброса) флагов и время выполнения такие же, как у рассмотренной выше команды с аналогичной мнемоникой.

Алгоритм

Пример

(A)(A)+((Ri)), где i{0,1}

(С)x, (OV)=x, (AC)=x, где x{0,1}

;(A)=95H, (R1)=31H,

;в РПД (31H)=4CH

ADD A,@R1 ;(A)=0E1H, (C)=0, ;(AC)=1, (OV)=0, (31H)=4CH

ADD A,direct

0 0 1 0 0 1 0 1

direct

Команда "сложение" складывает содержимое аккумулятора A с содержимым ячейки резидентной памяти данных (либо регистра специальных функций), 8-разрядный адрес которой (которого) определяется символическим именем direct. Результат помещается в A. Содержимое используемой ячейки или используемого регистра не изменяется. Логика установки (сброса) флагов и время выполнения такие же, как у рассмотренной выше команды с аналогичной мнемоникой.

Алгоритм

Пример

(A)(A)+(direct)

(С)x, (OV)=x, (AC)=x, где x{0,1}

;(A)=77H, (P1)=0FFH

ADD A,P1 ;(A)=76H,

;(AC)=1, (C)=1, (OV)=0

;(P1)=0FFH

ADD A,#data8

0 0 1 0 0 1 0 0

data8

Команда "сложение" складывает содержимое аккумулятора A с байтом данных data8, непосредственно указанным в команде. Результат размещается в A. Логика установки (сброса) флагов и время выполнения такие же, как у рассмотренной выше команды с аналогичной мнемоникой.

Алгоритм

Пример

(A)(A)+data8

(С)x, (OV)=x, (AC)=x, где x{0,1}

;(A)=09H

ADD A,#0D3H ;(A)=0DCH,

;(AC)=0, (C)=0, (OV)=0

ADDC A,Rn ;где n=0-7

0 0 1 1 1 r r r

где rrrB=000B-111B

Команда "сложение с переносом" одновременно складывает содержимое аккумулятора A, содержимое флага переноса С и содержимое заданного регистра Rn выбранного банка, помещая результат в A. Содержимое используемого регистра не изменяется. При появлении переносов из разрядов 7 и 3 результата устанавливаются в "1" флаг переноса C и флаг дополнительного переноса AC соответственно, в противном случае эти флаги сбрасываются в "0". Флаг переполнения OV устанавливается, если есть перенос из бита 6 и нет переноса из бита 7, или есть перенос из бита 7 и нет - из бита 6, в противном случае флаг OV сбрасывается. Время выполнения команды 1 цикл.

Алгоритм

Пример

(A)(A)+(C)+(Rn), где n=0-7

(С)x, (OV)=x, (AC)=x, где x{0,1}

;(A)=0B2H, (R3)=99H, (C)=1

ADDC A,R3 ;(A)=4CH,(R3)=99H,

;(AC)=0, (C)=1, (OV)=1

ADDC A,@Ri ;где i{0,1}

0 0 1 1 0 1 1 i



Загрузить файл

Похожие страницы:

  1. Микроконтроллеры общего назначения для встраиваемых приложений производства ATMEL Corporation

    Реферат >> Информатика
    ... основан на классическом микроконтроллере Intel 8051. Продукция Atmel включает микроконтроллеры MCS-51, AT91SAM и AT91CAP ... данных соответствует интерфейсу V.24. Для программирования микроконтроллеров MARC4 разработано программное обеспечение для ...
  2. Система охранной сигнализации промышленного объекта на базе разнотипных датчиков

    Реферат >> Коммуникации и связь
    ... гибкой. В более сложных модификациях микроконтроллеров семейства MCS-51 количество периферийных устройств увеличено, что ... http://ru.wikipedia.org Андреев Д.В. Программирование микроконтроллеров MCS-51.: Учеб. Пособие – Ульяновск: УлГТУ, 2000 ...
  3. Разработка и отладка программного обеспечения виртуальной лаборатории Программирование микроконтроллерных

    Магистерская работа >> Информатика
    ... типы МК (AVR, PIC или MCS-51). 6. Лабораторный практикум должен разрешать выполнение ... лаборатория MICROVIEW-R Томского государственного университета "Программирование микроконтроллеров". Скороделов В.В., Шершнев А.А., Виртуальный генератор сигналов ...
  4. Микропроцессоры и цифровая обработка сигналов Знакомство с интегрированной средой программирования KEIL-C

    Лабораторная работа >> Информатика, программирование
    ... сигналов Знакомство с интегрированной средой программирования KEIL-C Цель работы 1. ... Изучить интегрированную среду программирования keil-C. 2. Получить навыки работы ... с текстовым редактором этой среды программирования. 3. Получить навыки работы с ...
  5. Разработка электронного кодового замка

    Курсовая работа >> Коммуникации и связь
    ... спектр микроконтроллеров, основанных на архитектуре MCS-51. Данная линейка микроконтроллеров включает ... изделия в корпусах стандартных типоразмеров с поддержкой функции внутрисистемного программирования ...

Хочу больше похожих работ...

Generated in 0.0019090175628662