
- •Цифрлық құрылғылар және микропроцессорлар
- •1 Цифрлық құрылғылар
- •1.1 Цифрлық құрылғылардың математикалық негіздері
- •1.1.1 Екілік санау жүйесі
- •1.1.2.1 Сандардың түрлендірілімі
- •1.1.1.1.1 Ондық санның екілік санға түрлендірілуі
- •1.1.1.1.2 Екілік санның ондық санға түрлендірілуі
- •1.1.1.1.3 Санның оналтылық жазылымы
- •1.1.2 Логикалық функциялар
- •1.1.2.1 Негізгі функциялар
- •1.1.2.2 Әмбебап функциялар
- •1.1.3 Логика алгебрасының заңдары мен заңдылықтары
- •1.1.4 Күрделі функциялар
- •1.1.4.1 Логикалық функцияларды минимизизациялау
- •1.1.4.1.1 Тікелей түрлендіру тәсілі
- •1.1.4.1.2 Карно картасы арқылы түрлендіру
- •1.1 Сурет
- •1.2 Сурет
- •1.1.4.1.3 Арнайы түрлендіргішті пайдалану
- •1.3 Сурет
- •1.2 Қиыстырма құрылғылар
- •1.2.1 Логикалық элементтер
- •1.4 Сурет
- •1.2.1.1 Логикалық элементтердің тез әрекеттілігі
- •1.5 Сурет
- •1.6 Сурет
- •1.7 Сурет
- •1.8 Сурет
- •1.2.2 Қиыстырма құрылғыларды құру тәртібі
- •1.9 Сурет
- •1.2.3 Қалыпты қиыстырма құрылғылар
- •1.2.3.1 Шифраторлар
- •1.10 Сурет
- •1.11 Сурет
- •1.2.3.1.1 Шифратордың өлшемін ұлғайту
- •1.12 Сурет
- •1.2.3.2 Дешифраторлар
- •1.13 Сурет
- •1.14 Сурет
- •1.2.3.2.1 Дешифратор негізінде қиыстырма құрылғы құру
- •1.15 Сурет
- •1.2.3.3 Мультиплексорлар
- •1.16 Сурет
- •1.2.3.3.1 Мультиплексор негізінде қиыстырма құрылғы құру
- •1.17 Сурет
- •1.2.3.4 Демультиплексорлар
- •1.18 Сурет
- •1.2.3.5 Қосуыштар
- •1.2.3.5.1 Бірразрядты қосуыштар
- •1.19 Сурет
- •1.20 Сурет
- •1.2.3.5.2 Көпразрядты қосуыштар
- •1.21 Сурет
- •1.3 Тізбектеме құрылғылар
- •1.3.1 Триггерлер
- •1.3.1.1 Асинхронды rs-триггерлер
- •1.3.1.1.1 Тура кірісті rs-триггер
- •1.22 Сурет
- •1.3.1.1.2 Теріс кірісті rs-триггер
- •1.23 Сурет
- •1.3.1.2 Синхронды триггерлер
- •1.3.1.2.1 Синхронды rs-триггер
- •1.24 Сурет
- •1.3.1.2.2 Статикалы басқарылымды d-триггер
- •1.25 Сурет
- •1.3.1.2.3 Динамикалы басқарылымды триггерлер
- •1.3.1.2.3.1 D-триггер
- •1.26 Сурет
- •1.3.1.2.3.2 Jk-триггер
- •1.3.1.2.3.3 T-триггер
- •1.27 Сурет
- •1.3.1.2.3.4 Триггерлердің микросхемалары
- •1.28 Сурет
- •1.3.2 Регистрлер
- •1.29 Сурет
- •1.3.3 Санауыштар
- •1.30 Сурет
- •1.4 Жадылық құрылғылар
- •1.4.1 Жадылық құрылғылардың басқару сигналдары
- •1.4.2 Жадылық құрылғылардың басты параметрлері
- •1.4.3 Жадылық құрылғылардың негізгі түрлері
- •1.4.4 Жадылық құрылғылардың негізгі құрылымдары
- •1.4.4.1 2D құрылымы
- •1.4.4.2 3D құрылымы
- •1.4.4.3 2Dm құрылымы
- •1.4.5 Тұрақты жадылық құрылғылардың байланыс элементтері
- •1.4.5.1 Rom(m) құрылғылары
- •1.4.5.2 Prom құрылғылары
- •1.36 Сурет
- •1.4.5.3 Eprom және eeprom құрылғылары
- •2 Микропроцессорлар және микропроцессорлық жүйелер
- •2.1 Микропроцессорлық жүйелердің құрылым принциптері
- •2.2 Intel 8085 микропроцессоры
- •2.2.1. Микропроцессордың құрылымы
- •2.1 Сурет
- •2.2.2. Микропроцессордың басқару сигналдары
- •2.2.3. Микропроцессордың жұмыс тәртібі
- •2.2.4. Микропроцессордың үзіліс жүйесі
- •2.2.5. Микропроцессордың тізбекті енгізу/шығару жүйесі
- •2.2.6. Микропроцессордың командалар жүйесі
- •2.2.7. Микропроцессорда қолданылатын сілтеу тәсілдері
- •2.3 Микропроцессорлық жүйенің жұмысын бағдарлау
- •2.2 Сурет
- •2.3.1. Тізбелі бағдарламалар
- •2.3.2. Тарамдалымды бағдарламалар
- •2.3.3. Екібайтты сандарды қосу бағдарламасы
- •2.3.4. Тіке сілтемелі командалармен жұмыс істеу
- •2.3.5. Алу командаларымен жұмыс істеу
- •2.3.6. Регистр жұптарымен жұмыс істеу
- •2.3.7. Көбейту бағдарламасы
- •2.3.8. Қосалқы бағдарламалармен жұмыс істеу
- •2.3.9. Шешім қабылдау бағдарламалары
- •Әдебиеттер тізімі
- •Мазмұны
2.3.7. Көбейту бағдарламасы
Екі санды көбейту бағдарламасын құру үшін алдымен оның алгоритмін анықталық. Цифрлық жүйеде қолданылатын екілік санау жүйесі позициялық санау жүйесі болғандықтан, бұл жүйеде көбейту операциясының жүргізілу барысы өзімізге үйреншікті тәртіппен орындалады. Төменде ондық жүйедегі екі санның көбейтілу барысының үш түрлі жазылымы келтірілген:
|
|
|
Бірінші жазылымда көбейткіштің разряд мәндерін өзімізге үйреншіктікті оңнан солға қарай алып көбейту тәртібі келтірілген. Екінші жазылымда көбейткіштің разряд мәндерін солдан оңға қарай алып көбейту тәртібі келтірілген. Цифрлық құрылғыларда қосу операциясы екі санға ғана жүргізілетініне байланысты ондық сандардың жеке көбейтінділерінің солай қосылғаны үшінші жазылымда келтірілді. Бұнда төртразрядты сандардың көбейтіндісі сегізразрядты болатындығы ескеріліп, операция басында нәтиже нөл мәнінде алынды және ығыстыру операциясы (олар бағыттама арқылы көрсетілген) әрбір жеке көбейту операцияларының алдында жүргізіліп, жазылым қосу операцияларын орындауға ыңғайландырылды. Тап осы жазылым тәртібі екілік сандарды цифрлық құрылғыда көбейтуге ыңғайлы келеді. Сонымен, бірбайтты екілік сандарды көбейту алгоритмі келесі тәртіппен жүзеге асырылады:
сегізразрядты сандардың көбейтілу нәтижесі оналтыразрядты сан болатындықтан және жеке қосылымдардың да оналтыразрядты сандарға жүргізілетіндігіне байланысты, оналтыразрядты аккумулятор ретінде HL регистрлік жұбы алынып, ол операция басында тазартылады;
DE регистрлік жұбының E регистріне бірінші сан (көбейтілгіш), ал оның D регистріне нөл енгізіліп, көбейтілгіш қосуға ыңғайлы оналтыразрядты санға айналдырылады;
екінші сан (көбейтілгіш) оның разрядтарын ығыстырып шығару үшін аккумуляторға (сөзімізді шатыстырмас үшін, оны бұдан әрі A регистрі деп атаймыз) енгізіледі;
ығыстыру операциясының санын бақылап отыру үшін, көбейткіштің разряд саны микропроцессордың бір регистріне (мысалы, С регистріне) енгізіледі;
әрбір жеке көбейту алдында осы мезетке дейін жиналған нәтиже (HL жұбындағы) солға ығыстырылады;
ығыстыру арқылы А регистрінен шығарылған көбейткіштің кезекті разрядының мәні нөл болғанда, жеке көбейту осымен бітеді (яғни, алдыңғы ығыстырыммен);
А регистрінен шығарылған көбейткіштің кезекті разрядының мәні бір болғанда, HL жұбына DE жұбы қосылады.
Сонымен, ығыстыру операциясы сегіз рет жүргізіледі, ал қосу операциясының саны көбейткіштің құрамындағы бірліктердің санымен анықталады.
Жадының 22E0- және 22E1-ұяшықтарындағы сандарды келтірілген алгоритм бойынша көбейту бағдарламасын келесі түрде құруға болады:
|
|
|
|
|
|
; 9-бағдарлама |
1 |
2200 |
3A |
|
LDA |
22E0H |
; A ← [22E0] |
2 |
2201 |
E0 |
|
|
|
|
3 |
2202 |
22 |
|
|
|
|
4 |
2203 |
5F |
|
MOV |
E, A |
; E ← (A) |
5 |
2204 |
3A |
|
LDA |
22E1H |
; A ← [22E1] |
6 |
2205 |
E1 |
|
|
|
|
7 |
2206 |
22 |
|
|
|
|
8 |
2207 |
16 |
|
MVI |
D, 00H |
; D ← 00 |
9 |
2208 |
00 |
|
|
|
|
10 |
2209 |
21 |
|
LXI |
H, 0000H |
; HL ← 0000 |
11 |
220A |
00 |
|
|
|
|
12 |
220B |
00 |
|
|
|
|
13 |
220C |
0E |
|
MVI |
C, 08H |
; C ← 08 |
14 |
220D |
08 |
|
|
|
|
15 |
220E |
29 |
K5: |
DAD |
H |
; HL ← (HL) + (HL) |
16 |
220F |
07 |
|
RLC |
|
; TC←A7 |
17 |
2210 |
D2 |
|
JNC |
K6 |
; TC = 0: PC ← 2214 |
18 |
2211 |
14 |
|
|
|
|
19 |
2212 |
22 |
|
|
|
|
20 |
2213 |
19 |
|
DAD |
D |
; HL ← (HL) + (DE) |
21 |
2214 |
0D |
K6: |
DCR |
C |
; C ← (C) – 1 |
22 |
2215 |
C2 |
|
JNZ |
K5 |
; TZ = 0: PC ← 220E |
23 |
2216 |
0E |
|
|
|
|
24 |
2217 |
22 |
|
|
|
|
25 |
2218 |
C9 |
|
RET |
|
; PC ← [(SP)] |
Бағдарлама арқылы анықталған екі санның көбейту нәтижесі HL регистрлік жұбында қалады. Суреттелген көбейту бағдарламасын келесі бағдарламаның құрамында (10-бағдарламада) қосалқы бағдарлама ретінде пайдалану мүмкіндігін қалдыру үшін, бұл бағдарлама RET командасымен аяқталды.