Читайте также: |
|
Л1 программасын оқыңыз, теориялық мәліметтерді 1.3 тармақтан оқыңыздар. Ол екі тұрақтыға әртүрлі амалдар қолданады және нәтижесін REZ регистріне жазады. Қолданылған регистрлер қай банктерде орналасқанын анықтаңыздар. Программада ORG h’00’ нұсқауы – ассемблер көрсеткіші, ол осы өрнектен кейін жазылатын код электрлік қайта программаланатын сақтау құрылғысының (ЭППЗУ) нөлдік адресінен бастап жазылатынын көрсетеді. EQU нұсқауы equal (ағыл.) сөзінен – тең дегенді білдіреді.
Л1 программасы.
Include <p16F877.inc>; бұл файлда РСН символдық аттары сипатталған.
R1 EQU h'21'; R1 - h'21' регистрінің символдық аты.
R2 EQU h'22'; R2 - h'22' регистрінің символдық аты.
R3 EQU h'23'; R3 – h'23' регистрінің символдық аты.
REZ EQU h'24'; REZ – нәтиже жазуға арналған регистр аты.
; МБ жұмысын реттеуге арналған нұсқаулар
ORG h'00'; келесі NOP нұсқауы h'00' адресіне жазылады.
NOP; үзу және қайта қосу векторларының орнын қызметі бар
NOP; командалармен NOP толтырмау үшін
ORG h'05'; келесі CLRF нұсқауы h’05’ адресіне жазылады.
CLRF STATUS; регистрді тазартып, нөлдік банкті таңдаймыз.
BSF STATUS, 5; бірінші банкке ауысамыз,онда TRISC регистрі бар.
CLRF TRISC; PORTC регистрінің барлық биттерін мәлімет шығаруға орнатамыз.
BCF STATUS, 5; нөлдік банкке қайта ораламыз.
; Программаның жұмысшы бөлігі. Мәліметтері енгізу
MOVLW D'240'; константаны аккумуляторға W жазу.
MOVWF R1; W құрамын R1 регистріне жазу.
MOVLW D'130'; константаны аккумуляторға W жазу.
MOVWF R2; W құрамын R2 регистріне жазу.
MOVLW D'5'; константаны аккумуляторға W жазу.
MOVWF R3; W құрамын R3 регистріне жазу.
; Есептеулерді орындау
MOVF R1, W; константаны R1 регистрінен W аккумуляторға жазу.
SUBWF R2, W; азайту W=R2-W=R2- R1.Нәтижесін W-да қалтырамыз.
MOVWF REZ; W құрамын REZ регистріне жіберу.
MOVF R2, W; константаны R2 регистрінен W аккумуляторға жазу.
ADDWF R1, W; W=R2+W=R1+R2.
MOVWF REZ
MOVF R2, W; R2 құрамын W аккумуляторға жазу.
SUBWF R1, W; азайту W=R1-W=R1-R2. Нәтижесін W-да қалтырамыз.
MOVWF REZ; W құрамын REZ регистріне жіберу.
MOVF R2, W; константаны R2 регистрінен W аккумуляторға жазу.
ADDWF R3, W; W=R3+W=R2+R3.
MOVWF REZ
MOVF R2, W; константаны R2 регистрінен W аккумуляторға жазу.
SUBWF R2, W
MOVWF REZ
MOVF R2, W; константаны R2 регистрінен W аккумуляторға жазу.
ANDWF R1, W; W=R1 AND W(R2) операциясы, нәтижесі W.
MOVWF REZ
GOTO $
END; программа соңы.
Программаны өздігіңізше R2+R3, R1 OR R2, R1 XOR R2 операцияларын орындайтын командалармен жалғастырыңыздар.
Нұсқау бойынша мәліметтерді 1.1 кестеден алыңыздар.
1.1 кесте – Тапсырма нұсқалары
Нұсқа | R1, R2, R3 адрестеріне жазылатын мәндер | Нұсқа | R1, R2, R3 адрестеріне жазылатын мәндер |
81h, 12h, 1h | 86h, 67h, 6h | ||
82h, 23h, 2h | 87h, 68h, 7h | ||
83h, 34h, 3h | 88h, 69h, 8h | ||
84h, 45h, 4h | 89h, 6Ah, 9h | ||
85h, 56h, 5h | 8Ah, 6Bh, Ah |
Дата добавления: 2015-07-19; просмотров: 84 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Кіріспе | | | Жұмыс тақырыбы бойынша қысқаша теориялық ақпарат |