Системы жесткого реального времени. Князев В.Н - 18 стр.

UptoLike

Составители: 

18
Для МК48 и МК51 используется строго определенный и ограничен-
ный набор мнемонических кодов. Любой другой набор символов, разме-
щенный в поле операции, воспринимается ассемблером как ошибочный.
Операнды. В этом поле определяются операнды (или операнд), уча-
ствующие в операции. Команды ассемблера могут быть без-, одно- или
двухоперандными. Операнды разделяются запятой (,).
Операнд
может быть задан непосредственно или в виде его адреса
(прямого или косвенного). Непосредственный операнд представляется
числом (MOV А, #15) или символическим именем (ADDC А, #OPER2) , c
обязательным указанием префикса непосредственного операнда (#). Пря-
мой адрес операнда может быть задан мнемоническим обозначением (IN
А, Р1), числом (INC 40), символическим именем ( МОV А, MEMORY).
Указанием на косвенную адресацию служит префикс @. В командах
пере-
дачи управления операндом может являться число (LCALL 0135Н), метка
(JMP LABEL), косвенный адрес (JMPP @А) или выражение (JMP ¤ – 2,
где ¤ – текущее содержимое счетчика команд) .
Используемые в качестве операндов символические имена и метки
должны быть определены, а числа представлены с указанием системы
cчисления, для чего используется суффикс (буква, стоящая после числа): В
для двоичной, Q – для
восьмеричной, D – для десятичной и Ндля ше-
стнадцатеричной. Число без суффикса по умолчанию считается десятич-
ным.
Обработка выражений в процессе трансляции. Ассемблеры МК48
и МК51 допускают использование выражений в поле операндов, значения
которых вычисляются в процессе трансляции.
Выражение представляет собой совокупность символических имен и
чисел, связанных операторами ассемблера. Операторы ассемблера
обеспе-
чивают выполнение арифметических ("+" – сложение, "–" – вычитание, * –
умножение, / – целое деление, MOD – деление по модулю) и логических
(OR – ИЛИ, AND – И, XOR – исключающее ИЛИ, NOT – отрицание) опе-
раций в формате 2-байтных слов.
Например, запись ADD А, #((NOT 13) + 1) эквивалентна записи
ADD А, #0FЗН и обеспечивает сложение содержимого аккумулятора с
числом – 13, представленным в дополнительном коде.
Широко используются также операторы LOW и HIGH, позволяющие
выделить
младший и старший байты 2-байтного операнда.
Комментарий. Поле комментария может быть использовано про-
граммистом для текстового или символьного пояснения логической орга-
низации прикладной программы. Поле комментария полностью игнориру-
ется ассемблером, а потому в нем допустимо использовать любые симво-
      Для МК48 и МК51 используется строго определенный и ограничен-
ный набор мнемонических кодов. Любой другой набор символов, разме-
щенный в поле операции, воспринимается ассемблером как ошибочный.
      Операнды. В этом поле определяются операнды (или операнд), уча-
ствующие в операции. Команды ассемблера могут быть без-, одно- или
двухоперандными. Операнды разделяются запятой (,).
      Операнд может быть задан непосредственно или в виде его адреса
(прямого или косвенного). Непосредственный операнд представляется
числом (MOV А, #15) или символическим именем (ADDC А, #OPER2) , c
обязательным указанием префикса непосредственного операнда (#). Пря-
мой адрес операнда может быть задан мнемоническим обозначением (IN
А, Р1), числом (INC 40), символическим именем ( МОV А, MEMORY).
Указанием на косвенную адресацию служит префикс @. В командах пере-
дачи управления операндом может являться число (LCALL 0135Н), метка
(JMP LABEL), косвенный адрес (JMPP @А) или выражение (JMP ¤ – 2,
где ¤ – текущее содержимое счетчика команд) .
      Используемые в качестве операндов символические имена и метки
должны быть определены, а числа представлены с указанием системы
cчисления, для чего используется суффикс (буква, стоящая после числа): В
– для двоичной, Q – для восьмеричной, D – для десятичной и Н – для ше-
стнадцатеричной. Число без суффикса по умолчанию считается десятич-
ным.
      Обработка выражений в процессе трансляции. Ассемблеры МК48
и МК51 допускают использование выражений в поле операндов, значения
которых вычисляются в процессе трансляции.
      Выражение представляет собой совокупность символических имен и
чисел, связанных операторами ассемблера. Операторы ассемблера обеспе-
чивают выполнение арифметических ("+" – сложение, "–" – вычитание, * –
умножение, / – целое деление, MOD – деление по модулю) и логических
(OR – ИЛИ, AND – И, XOR – исключающее ИЛИ, NOT – отрицание) опе-
раций в формате 2-байтных слов.
      Например, запись ADD А, #((NOT 13) + 1) эквивалентна записи
ADD А, #0FЗН и обеспечивает сложение содержимого аккумулятора с
числом – 13, представленным в дополнительном коде.
      Широко используются также операторы LOW и HIGH, позволяющие
выделить младший и старший байты 2-байтного операнда.
      Комментарий. Поле комментария может быть использовано про-
граммистом для текстового или символьного пояснения логической орга-
низации прикладной программы. Поле комментария полностью игнориру-
ется ассемблером, а потому в нем допустимо использовать любые симво-


                                   18