.RU

Регистр PSW - Д. В. Андреев Программирование



^ Регистр PSW (Program Status Word). Наименование и назначение разрядов регистра PSW приведены в табл.2.8.

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

Регистр B - 8-разрядный регистр, используемый в сочетании с аккумулятором при выполнении операций умножения и деления для хранения второго входного операнда и помещения возвращаемых 8-ми битов результата. В других операциях регистр B является обычным регистром общего назначения.


Таблица 2.8

Биты

Наименование

Назначение

7

C

Флаг переноса. Устанавливается в "1" (сбрасывается в "0") аппаратно или программно. Аппаратно устанавливается (сбрасывается) во время выполнения команды сложения или вычитания при наличии (отсутствии) соответственно переноса или заема в 7-ом бите результата. Во время выполнения команды умножения или деления флаг всегда аппаратно сбрасывается.

6

AC

Флаг дополнительного переноса. Устанавливается (сбрасывается) аппаратно или программно. Аппаратно устанавливается (сбрасывается) во время выполнения команды сложения или вычитания при наличии (отсутствии) соответственно переноса или заема в 3-ем бите результата.

5

F0

Программно управляемый флаг пользователя.

4

3

RS1

RS0

Разряды управления выбором банка рабочих регистров. Устанавливаются (сбрасываются) программно.










RS1

RS0

Банк
















0

0

0
















0

1

1
















1

0

2
















1

1

3







2

OV

Флаг переполнения. Устанавливается (сбрасывается) аппаратно или программно. Аппаратно устанавливается во время выполнения команды сложения (вычитания) если есть перенос (заем) в 6-ом бите результата и нет переноса (заема) в бите 7, или есть перенос (заем) в бите 7 и нет в бите 6, в противном случае флаг сбрасывается. Во время выполнения команды деления флаг аппаратно сбрасывается, а в случае деления на нуль - устанавливается. При умножении флаг аппаратно устанавливается если результат больше 255, в противном случае - сбрасывается.

1

без имени

Флаг пользователя. Устанавливается (сбрасывается) программно. Доступен по чтению.

0

P

Флаг паритета. Программно доступен только по чтению. Аппаратно сбрасывается (устанавливается) в каждом машинном цикле для индикации четности (нечетности) количества разрядов аккумулятора, находящихся в состоянии "1". Если в аккумуляторе все разряды сброшены в "0", флаг аппаратно сбрасывается.


^ 2.2. Ассемблерный язык микроконтроллера 8051


Для эффективной разработки прикладного программного обеспечения микропроцессоров и микроконтроллеров необходимо выбрать подходящий язык программирования. Если требуется не очень сложная и при этом быстрая и компактная программа, которая не содержит сложных вычислительных операций, то для ее написания лучше выбрать язык низкого уровня (язык ассемблера). Язык высокого уровня (ЯВУ) следует выбрать в том случае, если необходимо производить сложные вычисления: операции над 16-, 32-разрядными числами, числами с плавающей точкой и др. Очень часто наиболее подходящей является смешанная модель, где критичные к быстродействию части программы написаны на ассемблере, а вычислительные процедуры реализованы на ЯВУ, например, на Си.

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

Оператором языка ассемблера микроконтроллера 8051 (языка АСМ51) является строка исходного текста микроконтроллерной программы (МК-программы), имеющая следующий формат:


метка




 команда/ директива 

;комментарий







операция операнды





^ Поле команда/ директива является главным полем строки и состоит из поля операция и поля операнды, разделенных пробелом.

Поле операция содержит мнемоническое обозначение команды или директивы ассемблера, которое является сокращением (аббревиатурой) полного английского наименования выполняемого действия. Например: MOV - move - переслать, JMP - jump - перейти, DB - define byte - определить байт. Кроме того, поле операция может содержать символическое имя ассемблерной макрокоманды.

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

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

Регистровая адресация обеспечивает обращение к байтовому содержимому регистров A, B или регистров R0-R7 выбранного банка, к 2-байтовому содержимому регистра DPTR и к битовому содержимому флага переноса C, при этом в качестве операндов используются принятые имена перечисленных программно доступных элементов, а также символические имена (только для регистров R0-R7), определяемые пользователем.

Прямая адресация применяется для обращения к байтовому содержимому 128-ми ячеек резидентной памяти данных или 21-го регистра специальных функций, а также к битовому содержимому 16-ти ячеек РПД или 11-ти РСФ, допускающих побитовое обращение (рис.2). При прямой адресации данных в поле операнды указывается прямой адрес используемых ячейки РПД, регистра специальных функций или бита. Этот адрес может быть задан числом, символическим именем, выражением, именем (только для РСФ и битов РСФ). Имена регистров специальных функций приведены в табл.2.1, а имена битов РСФ - в табл.2.3, табл.2.5-2.8. Кроме того, имя бита РСФ может быть представлено структурой вида: имя РСФ.номер бита. Например, имя пятого бита регистра TCON можно записать как TCON.5, имя второго бита аккумулятора - как A.2 и т.д.

С помощью косвенно-регистровой адресации обеспечивается обращение к байтовому содержимому 128-ми ячеек РПД, при этом адрес используемой ячейки определяется содержимым указателя стека SP или одного из регистров R0, R1 выбранного банка. Косвенно-регистровая адресация используется также для обращения к внешней памяти данных. В этом случае регистром-указателем может быть 16-разрядный указатель данных DPTR или один из упомянутых выше регистров R0, R1. Для работы с данными, "зашитыми" в виде констант в память программ микроконтроллера, применяется косвенно-регистровая адресация по сумме: базовый регистр (содержимое DPTR или программного счетчика PC) плюс индексный регистр (содержимое аккумулятора A). Любая такая константа может быть выбрана по адресу, который вычисляется сложением содержимого DPTR (PC) с содержимым A. Операнд, определяющий косвенно-регистровую адресацию данных, задается именем регистра-указателя или символическим именем (только для R0 и R1) с обязательным префиксом @.

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

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

В качестве операндов ассемблерных директив и макрокоманд обычно используются числа, символические имена, выражения, имена программно доступных элементов микроконтроллера (только для директивы 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]

rukovodstvo-po-ekspluatacii-dlya-traktorov-modeli-t603-stranica-7.html
rukovodstvo-po-ekspluatacii-eila-655114-023-re.html
rukovodstvo-po-ekspluatacii-garant.html
rukovodstvo-po-ekspluatacii-grazhdanskih-aerodromov-rossijskoj-federacii-stranica-5.html
rukovodstvo-po-ekspluatacii-i-tehnicheskaya-instrukciya-017-805-v0-003-rev-b.html
rukovodstvo-po-ekspluatacii-invertornogo-apparata.html
  • kontrolnaya.bystrickaya.ru/programma-vstupitelnogo-ekzamena-v-aspiranturu-po-nauchnoj-specialnosti-12-00-03-grazhdanskoe-pravo-predprinimatelskoe-pravo-semejnoe-pravo-mezhdunarodnoe-chastnoe-pravo-po-otrasli-12-00-00.html
  • credit.bystrickaya.ru/perspektivi-socialno-ekonomicheskogo-razvitiya-rajona-i-ih-prostranstvennoe-otrazhenie.html
  • zanyatie.bystrickaya.ru/mirovoe-soglashenie.html
  • lecture.bystrickaya.ru/63-nyutonianskaya-revolyuciya-v-m-najdish-koncepcii-sovremennogo-estestvoznaniya.html
  • zadachi.bystrickaya.ru/pishevaya-cennost-ovoshej-chast-2.html
  • composition.bystrickaya.ru/po-voprosu-provedeniya-meropriyatij-po-likvidacii-i-nedopusheniyu-rasprostraneniya-zabolevaniya-svinej-afrikanskoj-chumoj-v-orenburgskoj-oblasti.html
  • diploma.bystrickaya.ru/vivodi-prediktori-narusheniya-ustojchivosti-ekstrakardialnoj-rugulyacii-serdechnogo-ritma-i-vnezapnoj-smerti-u-bolnih.html
  • learn.bystrickaya.ru/golografiya-i-ee-primenenie-chast-6.html
  • tasks.bystrickaya.ru/2-otnositelnie-i-prityazhatelnie-prilagatelnie-pravila-postanovki-znakov-prepinaniya-v-kratkom-izlozhenii-moskva-2006.html
  • diploma.bystrickaya.ru/zadolzhennost-po-kreditam-i-zajmam-ezhekvartalnij-otchet-otkritoe-akcionernoe-obshestvo-centralnaya-telekommunikacionnaya.html
  • textbook.bystrickaya.ru/istoriya-voznosit-pobeditelej-i-bichuet-pobezhdennih-makkavei-sumeli-vistoyat-v-borbe-s-imperiej-antioha-i-nagradoj-im-bili-lavri-pobeditelej-zashitniki-gamli.html
  • crib.bystrickaya.ru/isk-chast-3.html
  • college.bystrickaya.ru/12-sushnost-struktura-tendencii-i-problemi-razvitiya-resursnoj-bazi.html
  • letter.bystrickaya.ru/obsherossijskij-klassifikator-produkcii-ok-005-93-stranica-3.html
  • lesson.bystrickaya.ru/rannee-detstvo-imperatorov-aleksandr-tretij.html
  • student.bystrickaya.ru/32sozdanie-novogo-proizvolnogo-dokumenta-rukovodstvo-polzovatelya-list-utverzhdeniya.html
  • tasks.bystrickaya.ru/112-ekonomicheskaya-bezopasnost-uchebnoe-posobie-osnovi-informatizacii-informacionnie-resursi-i-rinki.html
  • otsenki.bystrickaya.ru/regionalnaya-identichnost-v-evropejskoj-rossii.html
  • spur.bystrickaya.ru/krugovorot-detej-v-rossii-v-moskve-proshel-i-vserossijskij-roditelskij-forum.html
  • prepodavatel.bystrickaya.ru/tajni-nlo-varakin-a-zdanovich-l-stranica-6.html
  • shpargalka.bystrickaya.ru/uchebnoe-posobie-2001-soderzhanie-isakova-a-i-timakov-so-stranica-4.html
  • textbook.bystrickaya.ru/kniga-proroka-daniila.html
  • kontrolnaya.bystrickaya.ru/razrabotka-slozhnih-animacionnih-effektov-v-powerpoint.html
  • kolledzh.bystrickaya.ru/a-sudi-gde-izvestiya-21122005-233-str-1-pervij-kanal-novosti-20-12-2005-neroznak-vsevolod-09-00-13.html
  • composition.bystrickaya.ru/otchet-o-vipolnenii-3-go-etapa-rabot-po-teme-sovershenstvovanie-sistemi-upravleniya-regionalnimi-finansami-v-oblasti-obrazovaniya-po-gosudarstvennomu-kontraktu.html
  • holiday.bystrickaya.ru/nazvanie-speshite-delat-dobro.html
  • universitet.bystrickaya.ru/svodnij-doklad-stranica-3.html
  • desk.bystrickaya.ru/platezhnie-sistemi.html
  • shkola.bystrickaya.ru/prajm-evroznak-stranica-8.html
  • abstract.bystrickaya.ru/2-klass-nachalnaya-shkola-21-veka-osnovnaya-obsheobrazovatelnaya-programma-nachalnogo-obshego-obrazovaniya-municipalnogo.html
  • predmet.bystrickaya.ru/sanyo-electric-planiruet-videlit-ubitochnoe-podrazdelenie-v-samostoyatelnuyu-kompaniyu.html
  • write.bystrickaya.ru/gosduma-rassmotrit-kandidaturu-zubkova-na-post-premera-rf-grizlov-b-v-monitoring-smi-15-17.html
  • apprentice.bystrickaya.ru/vliyanie-fedralnogo-televideniya-na-regionalnie-televizionnie-kanali-chast-29.html
  • lektsiya.bystrickaya.ru/problesk-vo-mgle-ryabin.html
  • thescience.bystrickaya.ru/informacionnie-moduli-k-programme-speckursa-stranica-2.html
  • © bystrickaya.ru
    Мобильный рефератник - для мобильных людей.