Заманауи микроконтроллер



Pdf көрінісі
бет37/64
Дата31.12.2021
өлшемі3,85 Mb.
#21593
1   ...   33   34   35   36   37   38   39   40   ...   64
Байланысты:
Tleshova Zamanaui mikrokontroller

Қосымша А 
 
AVR 
МИКРОБАҚЫЛАУШЫЛАР АССЕМБЛЕРІ  
ЖӘНЕ ОНЫҢ ЕРЕКШЕЛІКТЕРІ 
 
ПА.1Жалпы ақпарат 
Бұл жерде AVR сериясының барлық ассамблер кезіндегі ақпарат ұсынылған, 
және барлық микробақылаушылар сериясының бағдарламасы үйлесімді. 
Ассемблер  –  бұл  құрал,  микробақылаушылар  үшін  бағдарлама  көмегімен 
жүзеге асады. Ассемблер ассемблерленген жекелеген кодты бағдарламаны объекті 
кодқа  трансляциялайды,  AVR  симуляторы  немесе  эмуляторы  арқылы 
қолданылады.  Сондай-ақ  ассемблер  кодты  генерлейді,  микробақылаушының 
бағдарламалық жадына тікелей әкеліп соғуы мүмкін. 
Жұмыс  кезінде  ассемблермен  микробақылаушының  тікелей  қосылған 
ешқандай қажеттілігі жоқ. 
Исходный файл, с которым работает ассемблер, должен содержать мнемоники, 
директивы и метки. Жекелеген файл, ассемблер жұмыс істеп жатқан, мнемоника, 
нұскау және дәлдігі болуы керек. 
Әр  бір  бағдарламаның  алдына  таңба  қоюға  болады,  әрпті-санды  жолмен 
болады,  қос  нүктесі  бар.  Таңбалар  шартсыз  өткел  ретінде  және  шартты  команда 
өткелі ретінде қолданады. 
Жол бағдарламасы мына төрт формның біреуі болуы мүмкін: 
[ Таңба:] директива [операнды] [Комментарий] 
[ Таңба:] команда [операнды] [Комментарий] 
Комментарий 
Бос жол 
Комментарий келесі форма болуыкерек: 
[Мәтін] 
Ондай болса кез келген мәтін  “ ; ” таңба ассемблері арқылы өшіріледі және 
қолданушыға ғана мағынасы болуы тиіс. 
Операнды әртүрлі форматта қоя алады: 

ондық (жорта айтпау арқылы): 10,255 

оналтылық (екіамал): 0x0а, $0а 

екілік: ObOOOOlOlO, 0Ы1111111 

сегіздік (алдынданөл): 010, 077 
ПА.2 Командалық жүйе 
ATMEL микробақылаушысы AVR от басылық командалық жүйесі өте үлкен 
және  сол  уақытта  тиімді.  AVR  микробақылаушысы  айырмашылығы  жағынан 
ерекше  болып,  және  барлық  дерлік  командалар  1  тактілік  циклге  қосылады. 
Шығғару командалық өтуге әкеліп соғады.  
Барлық командаларды 5 типке сұрыптауға болады: 
1. 
арифметикалыққоманда; 
2. 
қисындыкоманда; 
3. 
командалықөткел; 
4. 
командалықберілім мәліметі; 
5. 
соғылған команда және командалық тестілеу биті. 
ПА.3 Ассемблер директиві 


84 
 
Ассамблер  көптеген  директивті  қолдайды.  Директивтер  операциялық  кодқа 
тікелей  трансляцияланбайды.  Керісінше,  олар  қолданады,  өйткені  бағдарламаның 
тұрғылықты  жеріндегі  жадын  корректілеп,  макрокомандаларды  анықтап,  жадты 
талаптандырады және т.б. 
Барлық ассемблердің дерективі 1 кестеде көрсетілген 
 
Кесте 1  
Ассемблер директиві 
 
Директива 
Сипаттамасы 
BYTE 
Ауысқан астындағы байтты кейінге сақтау 
CSEG 
Код сегменті 
DB 
Жадқа байттың күнделікті тапсыру 
DEF 
Регистргетаңбалыаттапсыру 
DEVICE 
Кез келген микробақылаушыға компирлеп тапсыру 
DSEG 
Сегмент мәліметі 
DW 
Жадқа күнделікті сөз тапсыру 
EQU 
Тең айтылу таңбасын орнатыңыз 
ESEG 
Сегмент EEPROM 
EXIT 
Файлданшығу 
INCLUDE 
Басқа файлдан бастапқы кодын қосу 
LIST 
Генерациянықосу.1st – файлынан 
NOLIST 
Генерацияныөшіру.1st – файлынан 
ORG 
Бағдарламаныңбастапқыадресі 
SET 
Тең айтылу таңбасын орнатыңыз 
 
Синтаксис келесі барлық директив: 
 
Былайша  айтқанда  директивтің  алдында  нүкте  тұру  керек.  Әйтпесе 
ассемблер бұны таңба ретінде қабылдайды. 
Ассемблердің директивінің маңызды жақтарын түсіндірейік. 
CSEG- Codesegment 
Синтаксис: 
CSEG 
Үлгі; 
.DSEG ;
Басталу сегментінің мәліметі 
vartab: .BYTE4; 
Резервтеледі 4 байта в СОЗУ 
.CSEG;
Басталу сегментінің коды 
const:.DW2;
Бағдарлама жадына 0x0002 жазу 
movrl,r0; 
DSEG- DataSegment 
Сегмент  мәліментінің  бастапқы 
DSEG 
директивін 
көрсетеді. 
Ассемблерленген  файл  сегменттің  көптеген  мәліметін  ұстауы  мүмкін.  Кейін 
бәрі  бир  ассемблер  маңында  жиналуы  мүмкін.  Әдетте  сегмент  мәліметі  тек 
BYTE директивінен және таңбадан тұрады. 


85 
 
Синтаксис: 
DSEG 
        
Үлгі: 
DSEG;       
Басталу сегментінің мәліметі 
varl: .BYTE1; 
table ауыстыру астындағы 1 байтты резервтеу: 
BYTEtab_size; tab_sizeбайтінрезервтеу. 
CSEG ' 
ldi r30,low(varl) 
ldi r31,high(varl) 
Id rl,Z 
ESEG- EEPROMSegment 
EEPROM 
сегмент  жадының  басын  ESEG  директиві  көрсетеді.  EEPROM 
сегментін  көбісін  ассемблерленген  файл  ұстауы  керек,  өйткені  ассемблер 
маңында  бір  сегментке  жиналуы  тиіс.  ӘдеттеEEPROM  сегменті  DB  және 
DWдирективтерінен  тұрады  (және  таңбадан).  EEPROM  сегмент  жады  өзінің 
жекеменшік есептеуішінен тұрады. 
Синтаксис: 
. ESEG Үлгі: 
• DSEG
;  Басталу сегментінің мәліметі 
varl:.BYTE1;


Достарыңызбен бөлісу:
1   ...   33   34   35   36   37   38   39   40   ...   64




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет