- •5. Язык программирования asm-51.
- •5.1 Отладка программ.
- •5.2 Запись текста программы на языке программирования asm-51.
- •5.3 Алфавит языка.
- •5.4 Идентификаторы.
- •5.5 Числа.
- •5.6 Директивы языка программирования asm-51.
- •5.7 Реализация подпрограмм на языке asm51.
- •5.7.1 Реализация подпрограмм-процедур на языке asm51.
- •5.7.2 Передача переменных-параметров в подпрограмму.
- •5.7.3 Реализация подпрограмм-функций на языке asm51.
- •5.7.4 Реализация подпрограмм обработки прерываний на языке asm51.
- •5.8 Структурное программирование на языке asm-51.
- •5.9 Многомодульные программы.
- •5.10 Использование сегментов в языке программирования ассемблер.
- •5.10.1 Абсолютные сегменты памяти.
- •5.10.2 Перемещаемые сегменты памяти.
5.3 Алфавит языка.
Символы исходной программы представляют собой подмножество таблиц символов ASCII для DOS и ANSI для WINDOWS. В исходном тексте программы, написанном на языке программирования PL/M-51 допустимо использование следующих символов:
-символы интервала ("пробел" и " табуляция")
-буквы (от “A” до “Z”, от “a” до “ z”)
-знаки
-цифры (0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
5.4 Идентификаторы.
Идентификатор это символическое обозначение объекта программы. В качестве идентификатора может быть использована любая последовательность букв и цифр. При этом в качестве буквы может быть использована любая буква латинского алфавита, а также вопросительный знак (?) и знак "нижнее подчеркивание" (_ ). Идентификатор может начинаться только с буквы. Это позволяет отличать его от числа. В идентификаторах, язык программирования ASM-51 различает буквы верхнего и нижнего регистров. Количество символов в идентификаторе ограничено длиной строки (255 символов). Транслятор различает идентификаторы по первым 31 символам.
В языке программирования ASM-51 имеются три категории идентификаторов:
а)Ключевое слово является определяющей частью оператора языка ассемблера. Значения ключевых слов языка ассемблера АSМ-51 не могут быть изменены или переопределены в программном модуле каким-либо образом. Ключевому слову не может быть назначено имя- синоним. Ключевые слова могут быть написаны буквами как верхнего, так и нижнего регистров.
В языке АSМ-51 имеются следующие категории ключевых слов: инструкции, директивы, вспомогательные слова, операции.
Инструкции по форме записи совпадают с мнемоническими обозначениями команд микроконтроллеров семейства MCS-51 и совместно с операндами, составляют команды микроконтроллера.
Список инструкций:
ACALL, ADD, ADDC, AJMP, ANL, CALL, CJNE, CLR, CPL, DA, DEC, DIV, DJNZ, INC, JB, JBC, JC, JMP, JNB, JNC, JNZ, JZ, LCALL, LJMP, MOV, MOVC, MOVX, MUL, NOP, ORL, POP, PUSH, RET, RETI, RL, RLC, RR, RRC, SETB, SJMP, SUBB, SWAP, XCH, XCHD, XRL.
Директивы совместно с вспомогательными словами определяют действия в программе, которые должны быть выполнены ассемблером в процессе преобразования исходного текста программы в объектный код. В языке программирования ASM51 используются:
Директивы:
BIT, BSEG, CODE, CSEG, DATA, DB, DBIT, DS, DSEG, DW, END, EQU, EXTRN, IDATA, ISEG, NAME, ORG, PUBLIC, RSEG, SEGMENT, SET, USING, XDATA, XSEG.
Вспомогательные слова:
AT, BIT, BITADDRESSABLE, CODE, DATA, IDATA, INBLOCK, INPAGE, NUMBER, PAGE, UNIT, XDATA.
Операции выполняются ассемблером в процессе вычисления выражений на этапе трансляции исходного текста программы для определения конкретного числа, которое используется в команде. Перечень операций, использующихся языком программирования ASM-51: AND, EQ, GE, GT, HIGH, LE, LOW, LT, MOD, NE, NOT, OR, SHL, SHR, XOR.
б)Встроенные имена - присвоены адресам регистров специальных функций, адресам флагов специальных функций AR0-AR7, рабочим регистрам R0-R7 текущего банка регистров, а также аккумулятору A и флагу переноса C.
|
Имя |
Регистр |
|
A |
Аккумулятор |
|
R0-R7 |
8-разрядный рабочий регистр текущего банка рабочих регистров |
|
AR0-AR7 |
адреса 8-разрядных рабочих регистров текущего банка рабочих регистров |
|
DPTR |
16-разрядный регистр-указатель данных |
|
PC |
16-разрядный счетчик команд |
|
С |
флаг переноса |
|
AB |
регистровая пара, состоящая из аккумулятора A (старшая часть) и регистра B (младшая часть) |
в)Определяемые имена - имена объявляются пользователем. В языке программирования ASM-51 имеются следующие категории определяемых идентификаторов:
метки, внутренние и внешние переменные адресного типа, внутренние и внешние переменные числового типа, имена сегментов, названия программных модулей.
