Читайте также: |
|
Нұсқауларда константа k символымен берілген. Нұсқаулар сипаттамасында оның орындалуы кезінде өзгеретін флагтар көрсетілген. Нұсқауларда d параметрі (dest) нәтиже қайда жазылатынын көрсетеді. Егер d=0 болса нәтиже Wрегистрінде сақталады. Егер d=1 болса, нәтиже f (file-сөзінен)регистрінде сақталады. Программаларды d параметрінде ‘0’ орнына ‘W’ жазуға, ал ‘1’ орнына ‘f’ жазуға болады.
Программаларды регистр адресінің орнына оның символдвқ атын жазған ыңғайлы. Мысалы, егер h’21’ адресіті регистр аты R1 болса, онда ADDWF f, d нұсқауын программада екі әдіспен жазуға болады: ADDWF h’21’, Wнемесе ADDWF R1, W.
ORG h’xx’ – бұл ассемблера көрсеткіші, осы өрнектен кейінгі код ЭППЗУ-дың h’xx’ адресінен басталатынын көрсетеді.
ADDLW - W мен тұрақтыны қосу
Синтаксис: [label] ADDLW k
Оперантар: 0 £ k £ 255
Операция: (W) + k à (W)
Өзгеретін флагтар: С, DC, Z
ADDWF - W және f –ты қосу
Синтаксис: [label] ADDWF f,d
Оперантар: 0£f£127
Операция: (W) + (f) -»(dest)
Өзгеретін флагтар: C, DC, Z
ANDLW- тұрақты мен W арасындағы бит бойынша (побитная) 'ЖӘНЕ' операцисы
Синтаксис: [labef] ANDLW k
Операндтар: 0£k£255
Операция: (W).AND. k à (W)
Өзгеретін флагтар: Z
ANDWF - W және f арасындағы бит бойынша 'ЖӘНЕ'
Синтаксис: [label] ANDWF f,d
Операндтар: 0 £ f £ 127
Операция: (W).AND. (f) à (dest)
Өзгеретін флагтар: Z
BCF - f регистріндегі b битін тазарту
Синтаксис: [label] BCF f,b
Операндтар: 0£f£127; 0£b<£
Операция: 0 à (f<b>)
Өзгеретінжолақша: Жоқ
BSF - f регистрінде b битін орнату
Синтаксис: [label] BSF f,b
Операндтар: 0£f£127; 0£b£7
Операция: 1àf<b>
Өзгеретін флагтар: Жоқ
BTFSC - f регистріндегі b битін тексеру, егер 0 болса келесі командадан өтіп кету
Синтаксис: [label] BTFSC f,b
Операндтар: 0£f£127; 0£b£7
Операция: егер (f<b>) = 0 болса келесі командадан өтіп кету
Өзгеретін флагтар: Жоқ
Сипаттамасы: Егер f регистріндегі b биті '1'-ге тең болса, онда келесі нұсқау орындалады. Егер f регистріндегі b биті '0'-ге тең болса, онда келесі нұсқау орындалмайды.
BTFSS- f регистріндегі b битін тексеру, егер (f<b>) = 1 болса келесі командадан өтіп кету
Синтаксис: [label] BTFSS f,b
Операндтар: 0£f£ 127: 0£b£7
Операция: егер b биті '0'-ге тең болса келесі нұсқау орындалады, ал '1'-ге тең болса, онда келесі нұсқау орындалмайды.
CALLішкі программаны шақыру
Синтаксис: [label] CALL
Операндтар: 0 £ k £ 2047
Операция: (PC)+1àTOS
kàPC<10:0>,
(PCLATH<4:3>)à PC<12:11>
Өзгеретін флагтар: Жоқ
Сипаттамасы: Ішкі программаны шақыру. Келесі команда адресі (РС+1) стектің ең жоғары жағына орналасады. Адрестің онбір биті команда кодынан команда санығышына (счетчигіне) РС<10:0> қондырылады. Екі үлкен биті PCLATH регистрінің комада санығышына РС<12:11> қондырылады. CALL командасы екі цикл орындалады.
CLRF - f-ті тазарту
Синтаксис: [label] CLRF
Операндтар: 0 £f £ 127
Операция: 00h à (f); 1 àZ
Өзгеретін флагтар: Z
Сипаттамасы: f регистрін тазарту және Z=1 флагын орнату.
CLRW - W регистрін тазарту
Синтаксис: [label] CLRW
Операндтар: Жоқ
Операция: 00h à (W), 1 à Z
Өзгеретін флагтар: Z
Сипаттамасы: W регистрін тазарту және Z=1 флагын орнату.
CLRWDT – WDT регистрін тазарту
Синтаксис: [label] CLRWDT
Операндтар: Жоқ
Операция: 00h à WDT,
00h à алдыңғы бөлгіш WDT,
1à -TO, 1 àPD
Өзгеретін флагтар: -TO, -PD
Сипаттамасы: CLRWDT командасы WDT- ны және алдыңғы бөлгішті де WDT-ға қосылып тұрса тазартады. Status регистрінде ТО және PD биттерін орнатады.
COMF - f инверсиясын алу.
Синтаксис: [label] COMF f,d
Операндтар: 0£f£127 dÎ [0,1]
Операция: (-f) à (dest)
Өзгеретін флагтар: Z
Сипаттамасы: f регистрінің барлық биттерінің инверсиясын алу.
DECF - f-ті 1-ге кеміту
Синтаксис: [label] DECF f,d
Операндтар: 0 £f £ 127 dÎ [0,1]
Операция: (f) - 1 -> (dest)
Өзгеретін флагтар: Z
DECFSZ - f-ті 1-ге кемітіп, егер 0 болса келесі командадан өтіп кету
Синтаксис: [label] DECFSZ f,d
Операндтар: 0 £f £127 dÎ [0,1]
Операция: (f) -1 à (dest);
Өзгеретін флагтар: Жоқ
Сипаттамасы: f регистрін декременттеу. Егер оның нәтижесі '0'-ге тең болмаса келесі жол орындалады, ал 0-ге тең болса келесі жол орындалмайды.
GOTO – шартсыз өту операциясы
Синтаксис: [label] GOTO 0 £ k £ 2047
Операндтар:
Операция: Белгіге көшу
Өзгеретін флагтар: Жоқ
INCF - f –регистрін 1-ге өсіру
Синтаксис: [ label] INCF f,d
Операндтар: 0£f£127 dÎ[0,1]
Операция: (f) + 1 à (dest)
Өзгеретін флагтар: Z
INCFSZ - f-ті 1-ге өсіріп, егер 0 болса келесі командадан өтіп кету
Синтаксис: [label] DECFSZ f,d
Операндтар: 0 £f £127 dÎ [0,1]
Операция: (f) -1 à (dest);
Өзгеретін флагтар: Жоқ
Сипаттамасы: Егер оның нәтижесі '0'-ге тең болмаса келесі жол орындалады, ал 0-ге тең болса келесі жол орындалмайды.
IORLW - тұрақты және W арасындағы бит бойынша 'НЕМЕСЕ'
Синтаксис: [label] IORLW k
Операндтар: 0 £ k £ 255
Операция (W).OR. kà (W)
Өзгеретін флагтар: Z
IORWF- W және f арасындағы бит бойынша 'НЕМЕСЕ'
Синтаксис: [label] IORWF f.d
Операндтар: 0 £ f £127 dÎ [0,1]
Операция: (W).OR. (f)->(dest)
Өзгеретін флагтар: Z
MOVF- f мәнін жіберу
Синтаксис: [label] MOVF f.d
Операндтар: 0£f£127 dÎ [0,1]
Операция: (f) -> (dest)
Өзгеретін флагтар: Z
Сипаттамасы: f регистрінің мәні адресат регистріне ауысады. Егер d=0 болса, мәні W регистрінде сақталады.. Егер d=1 болса, мәні f регистрінде сақталады. d=1 мәні f регистрін 0-ге тексеру үшін қолданылады.
MOVLW- тұрақтыны W-ға жіберу
Синтаксис: [label] MOVLW k
Операндтар: 0 £ k £ 255
Операция: kà(W)
Өзгеретін флагтар: Жоқ
Сипаттамасы: Қолданылмайтын биттерге ассемблер '0' орнатады.
MOVWF - W -ны f-ке жіберу
Синтаксис: [label] MOVWF f
Операндтар: 0£f£127
Операция: (W) à (f)
Өзгеретін флагтар: Жоқ
NOP - операция жоқ
RETFIE - ішкі программадан үзуге рұқсатпен қайту
Синтаксис: [ label] RETFIE
Операндтар: Жоқ
Операция: TOS à PC, 1à GIE
Өзгеретін флагтар: Жоқ
Сипаттамасы: үзуді өңдейтін ішкі программадан қайту. TOS стегінің басы PC команда санағышқа қондырылады. GIE(INTCON<7>) толық үзуге рұқсат беру флагы '1'-ге орнатылады.
RETLW-тұрақтыны W регистрға орната ішкі программадан қайту
Синтаксис: [label] RETLW k
Операндтар: 0 £ k £ 255
Операция k à (W), TOS à PC
Өзгеретін флагтар: Жоқ
Сипаттамасы: W регистрына 8-разрядты тұрақты қондырылады. TOS стегінің басы PC команда санағышқа қондырылады.
RETURN - ішкі программадан қайту
Синтаксис: [label] RETURN
Операндтар: Жоқ
Операция: TOS à PC
Өзгеретін флагтар: Жоқ
Сипаттамасы: Ішкі программадан қайту. TOS стегінің басы PC команда санағышқа қондырылады.
RLF - f регистрін алмасу арқылы циклдық солға жылжыту
Синтаксис: [label] RLF f.d
Операндтар: 0£f£127 dÎ [0,1]
Операция: Сипаттамасын қара
Өзгеретін флагтар: С
Сипаттамасы: f регистрінің ішін status регистрінің С биті арқылы циклдық солға жылжыту орындалады.
![]() |
RRF- f регистрін алмасу арқылы циклдық оңға жылжыту
Синтаксис: [label] RRF f,d
Операндтар: 0£f£127 dÎ [0,1]
Операция: Сипаттамасын қара
Өзгеретін флагтар: С
Сипаттамасы: f регистрінің ішін status регистрінің С биті арқылы циклдық оңға жылжыту орындалады.
![]() |
SLEEP - SLEEP режиміне өту
Синтаксис: [label] SLEEP
Операндтар: Жоқ
Операция; 00h à WDT, 00h à алдыңғы бөлгіш WDT 1 à -ТО
0 à PD
Өзгеретін флагтар: -ТО, -PD
Сипаттамасы: PD - қорек көзі қосылу флагын '0'-ге орнату. ТО – WDT толу флагын '1'-ге орнату. WDT таймерін және оның алдыңғы бөлгішін тазарту. Микробақылауышты SLEEP режиміне ауыстырып, такттік генераторды өшіру.
SUBLW - тұрақтыдан W мәнін шегеру
Синтаксис: [label] SUBLW k
Операндтар: 0 £ k £ 255
Операция: k - W à W
Измен, флаги: C, DC, Z
SUBWF – f-тен W мәнін шегеру
Синтаксис; [label] SUBWF f,d
Операндтар: 0£f£127 dÎ [0,1]
Операция: (f) –(W) à (dest)
Өзгеретін флатар: C, DC, Z
SWAPF - f регистріндегі жартыбайттарды алмастыру
Синтаксис: [label] SWAPF f.d
Операндтар: 0£f£127 dÎ [0,1]
Операция: (f<3:0>) à (dest<7:4>)
Өзгеретін флагтар: Жоқ
XORLW - W және тұрақты арасындағы бит бойынша 'НЕМЕСЕ-ні жоққа шығару '
Синтаксис: [ label] XORLW k
Операндтар: 0£k£255
Операция: (W).XOR. k à (W)
Өзгеретін флагтар: Z
XORWF- W және f арасындағы бит бойынша 'ЕРЕКШЕ НЕМЕСЕ'
Синтаксис: [label] XORWF f.d
Операндтар: 0£f£127 dÎ [0,1]
Операция: (W).XOR. (f) à (dest)
Өзгеретін флагтар: Z
Дата добавления: 2015-07-19; просмотров: 174 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Status регистрі | | | Модуль TMR1 таймері |