Читайте также:
|
|
6 санын 0,8-ге көбейтуді орындау мысалын оқыңыз. Алдымен калькуляторда жуықпен берілген коэффициентті алу үшін бүтін көбейткішін және бүтін бөлгішін келтіріп аламыз. Бұл жағдайда көбейткіш 4 және бөлгіш 5 дәл келеді, өйткені 4/5=0,8. Ары қарай берілген санды 4 көбейтеміз де нәтижесін 5-ке бөлеміз. Қалдығы өткізілген есептеулердің қателігін көрсетеді. Көбейту және бөлуді ішкі программалар түрінде жазамыз.
4.1 кесте – Бүтін бөлу алгоритмі
Цикл | Бүтін бөлігі | Жұмысшы регистрі | Әрекет | Жұмыс регистрі | «С» битінің мәні | С=0? | Әрекет |
Rab_peg= Rab_peg- Delitel | Жоқ | Циклды қайталау | |||||
Жоқ | Циклды қайталау | ||||||
Жоқ | Циклды қайталау | ||||||
-5 | Иә | 1 қадамға артқа қайтамыз | |||||
Қалдық =5 | |||||||
Бөлу нәтижесі: бүтін бөлігі =3, қалдық =5, яғни 35/10=3 (5) |
Л4 көбейту және бөлу программасының фрагменті.
Микробақылауыштың стандартты реттеулері келтірілмеген.
; Программаның жұмыс бөлігі
CLRF PORTC; PORTC-ға нөл жазу (жарықдиодтарын өшіру).
CLRF Delitel; бөлгіш адресін тазарту.
; 6×0,8 көбейтеміз, =6×4/5=4(4)
MOVLW D'6'
MOVWF Chislo; берілген сан
MOVWF Umn_Chislo; Umnozhenie ішкі прогаммасындағы регистр
MOVLW D'4'
MOVWF Mnozh;көбейткіш.
MOVLW D'5'
CALL Umnozhenie; ішкі прогаммадан кейін көбейтінді Pr -ға жазылады.
; Бөлуге дайындық
Movf Pr, W; Pr мәні Umnozhenie ішкі прогаммасынан алынады.
Movwf Delimoe
Movlw D'5'
movwf Delitel; егер мәні берілмесе 0-ге бөлу болады.
CALL Delenie
Goto$
; Ішкі программа.
Umnozhenie; Umn_Chislo және Mnozh кірістері, шығысы Pr.
Clrf Pr
Clrf Kol_slag
Sled_slag
Movf Pr, W
Addwf Umn_Chislo, W; келесі қосылғышты қосу.
Movwf Pr
Incf Kol_slag, F; қосылғыштар санын есептейміз.
MOVF Kol_slag, W
XORWF Mnozh, F; Kol_slag=Mnozh теңдігін маскалау арқылы тексеру.
BTFSS STATUS, Z
Goto Sled_slag; Z=0 болғанда орындалады.
RETURN
; Ішкі программа.
Delenie; Delimoe, Delitel кірістері, Chastnoe, Ostatok шығыстары.
CLRF Chastnoe
Movf Delimoe, W;
MOVWF Rab_peg; Delimoe.
MOVF Delitel, W; нөлге тексеру.
BTFSC STATUS, Z; нөлге бөлуден қорғау.
GOTO NUL; Z=1 болғанда орындалады.
Metka
INCF Chastnoe, F;бүтін бөліктің мәнін санау.
SUBWF Rab_peg, F; Rab_peg=Rab_peg – Delitel шегереміз.
BTFSC STATUS, C;айырмасы теріс екендігін тексереміз?
GOTO Metka; C=1 болғанда орындалады.
; Бір қадамға кейін қайту
DECF Chastnoe, F; бүтін бөлікті қайта орнына келтіреміз.
ADDWF Rab_peg, W; Rab_peg қайта орнына келтіреміз.
MOVWF Ostatok; қалдықты аламыз.
RETURN
NUL MOVLW D'255'; нөлге бөлген кезде программаны аяқтау белгісі.
MOVWF PORTC; нөлге бөлу болғаны жайлы сигнал береміз.
GOTO $
END
Қолданылған жалпы қызмет регистрлері 4.1 суретте келтірілген.
Зертханалық жұмысқа тапсырма. 4.2 кестедегі нұсқа үшін бөлшек санға көбейту программасын жазыңыз.
Дата добавления: 2015-07-19; просмотров: 92 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Жұмыс тақырыбы бойынша қысқаша теориялық ақпарат | | | Жұмысты орындау тәртібі |