ecosnos.ru |
Главная Микроустройства: номенклатура изделий электронной промышленности 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 [ 62 ] 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 Все допустимые операции связаны между собой отношением старшинства для определения порядка их выполнения в'выражеиин. Ниже перечислены все допустимые операции в порядке .убывания их приоритета: NOT /, AND, MOD +, -, OR, XOR EQ, NE, GT. GE, LT, LE I Таким образом, вначале в выражении выполняются все операции NOT, затем , /, AND, MOD, затем -f, - и т. д. Круглые скобки изменяют порядок вычисления операций; вначале вычисляются все операции в соответствии с приоритетами внутри скобок, а затем все остальные операции. Выражения могут использоваться для определения индекса, для указания элемента массива глобальных переменных, а также могут генерировать символы в выходной поток. В последнем случае выражение должно быть задано в квадратных скобках [...]. Пример: Пусть задано следующее макроопределение: GEN MDEF &Р1, &Р2, &РЗ, &Р4, &Р5 LXI &Р1, &Р2 LXI &РЗ, &Р4 LXI &Р5, [&P2-f&P4] STA [&Р2 1 &Р4] ; [&Р4 &Р4 - &Р2] MEND В результате вызова макрокоманды GEN В, 20, D, 15 , Н в выходной поток будет сгенерирован следующий текст: LXI В, 20 LXI D, 15 LXI Н, 35 STA 20 15 ; 205 Функции. В качестве операндов в выражениях могут быть использованы функции макропериода ТУР, LEN, SUB, SHR и SHL. Функция определения типа имеет следующий формат: ТУР (аргумент), где аргумент - параметр, локальная или глобальная переменная, константа или элемент списка. Значением функции является одна из следующих символьных строк: -С' - аргумент-знаковая строка или ссылается иа знаковую строку; -А'-аргумент-арифметическая константа или ссылается на арифметическое значение; - Г - аргумент-символьная константа или ссылается на символическое имя; -М' - аргументом является параметр, заданный списком, или глобальная переменная, объявленная как массив. Пример: Если оператор MDEF, вводящий некоторое макроопредение имеет следующий вид: SUM MDEF &А, &В, а вызов макрокоманды SUM содержит в качестве аргументов список: SUM (NAME, ЮН, DATA),.1050, то функция TYP, вызываемая внутри макроопределения SUM, возвращает следующие значения: Вызов Значение ТУР (&А) М' TYP(&A(1)) С TYP (&А (2)) А' TYP (&А (3)) I TYP (&В) А' Функция определения длины имеет формат: LEN (аргумент), где аргументом является любое выражение. Функция LEN возвращает значение, равное длине строки, размерности массива или количеству цифр в десятичном представлении арифметической константы в зависимости от типа аргумента. Пример: Вызов Значения LEN(107FH) 4 LEN(70H) 3 LEN(DELTA) 5 LEN(&VAR1) 8, если значением параметра является строка NEW YEAR Функция выделения подстроки имеет следующий формат: SUB (аргумент 1, аргумент 2, аргумент 3), где аргумент 1 - константа, переменная, параметр, элемент массива, аргумент 2 - номер знака в строке, с которого выделяется подстрока, аргумент 3 - количество выделяемых знаков. Функция SUB. возвращает выделенную знаковую подстроку строки, указанной первым аргументом. Если аргумент i имеет арифметическое еначение, то оно предварительно преобразуется в знаковую строку. Пример: Вызов Значение SUB (ABCD 12345, 4, 5) D 1234 SUB (& PAR, 2, 1) 1, где & PAR имеет значение 214. Функции логического сдвига позволяют сдвигать вправо (SHR) или влево (SHL) значение 1-го выражения в соответствии с величиной, указанной 2-м аргументом: SHR (выражение 1, выражение 2), SHL (выражение 1, выражение 2>. Биты, выталкиваемые за пределы разрядной сетки, теряются, а освобождающиеся разряды заполняются нулями. Пример: Вызов Значение SHL(1001100B, I) 0011000 В SHR (1001100 В, 2) 0010011 В Указание аргументов ключевым способом. Обычно аргументы сопоставляются параметрам на основании их порядка размещения в макровызове (позиционный способ присвоения значений параметрам). Задание параметров ключевым способом означает указание параметра, которому присваивается данное значение, с по.мощью ключевого слова. В качестве ключевого слова используется обозначение параметра без начального символа & . Пример: ADSST MDEF &0Р1, & 0Р2, &RES LXI Н, &0Р1 LXI D, &0Р2 DAD D SHLD & RES MEND Макрокоманда ADDST, предиазначеиная для выполнения сложения 16-битовых значений размещенных в памяти, может быть вызвана различными способами: ADDST DATA, 20F4H, SUM или ADDST RES= SUM; 20F4H, OPl =DATA. Bo втором вызове используются ключевой и позиционный способы определения значений параметров. Оба вызова приводят к генерации одинаковой последовательности команд: LXI Н, DATA LXI D, 20F4H DAD D SHLD SUM Механизм кодовых макросов ASM-Se Ассемблер ASM-86 [44], применяемый в микропроцессоре К1810ВМ86 (INTEL 8086), обрабатывает кодовые макросы как инструкции. Кодовые макросы добавляются во время определения в символическую таблицу ассемблера. Формальные параметры макрокоманд определяют, каким образом они размещаются в генерируемой инструкции и как должны обрабатываться. Определение кодового макро: Code Macro (имя) [(список формальных параметров)], где (имя) - имя макро, (список формальных параметров) - содержит формальные параметры, разделяемые запятыми и определяемые следующим образом: (формальное имя) : (символ спецификации) [(модифицирующий символ)] [(диапазон)]. С кодовым макро можно не употреблять параметров, так же как и для отдельного параметра можно ие указывать модифицирующего символа и значения диапазона. В табл. 6.4 и 6.5 приведены возможные значения символов спецификаций и модифицирующих символов. Специфицирующие символы определяют тип операнда, сопоставляемого формальному параметру. Модифицирующая литера зависит от типа операнда, который может быть переменной или числом. |