Есептеуіш техниканы жµндеу жєне техникалыќ ќызмет кµрсету


Сыртқы қҧрылғылармен жҧмыс



Pdf көрінісі
бет50/113
Дата18.10.2022
өлшемі5.94 Mb.
#462888
1   ...   46   47   48   49   50   51   52   53   ...   113
medeshova-komputer-architekt

7.4 Сыртқы қҧрылғылармен жҧмыс 
Енгізу-шығаруды синхрондау кҥрделі мәселе және сыртқы 
қҧрылғының тҥріне байланысты болады. «Е97»-де кҥй регистрі ӛте 
қарапайым қҧрылған: онда дайындық биті деп аталатын орындау биті 
бар. Бҧл компьютерде дайындық биті кҥй регистрінің жетінші 
разрядында орналасады.
Барлық порттар 16-разрядты болады, бірақ ақпарат олардың 
кіші байтында орналасады. Шығыс порттарға 8-ден 15-ке дейінгі 
биттер мазмҧны формальді еңгізіледі, бірақ шығару қҧрылғысына 
әсері болмайды. 
Әрбір портқа ӛзіндік нӛмір (адрес) сәйкес келеді. «Е97»-де 
оналтылық разрядтан келесі порттар қолданылады: 
0 – пернетақта кҥйінің порты (тек оқуға арналған); 
1 – пернетақта мәліметінің порты (тек оқуға арналған); 
2 – дисплей кҥйінің порты (тек оқуға арналған); 
3 – дисплей мәліметтерінің порты (тек оқуға арналған). 
Енгізу-шығару порттарын қолданып, мәлімет алмасудың 
стандарт алгоритмі келесідей болады. Кҥй порты оқылады және 
таңбалық биттің кіші байтының мәні тексеріледі. Бҧл әрекет 
дайындық биті сыртқы қҧрылғымен бір ретінде берілгенше қайталана 
береді. Сонан соң егер ол шығару қҧрылғысы болса процессор 
мәліметтер портына ақпарат жаза алады, ал енгізу қҧрылғысы болса 
порттан оқи алады. 
Дисплейге R0-ден бірлік символды шығару бағдарламасы 
осылай болады. 
0А21 порт2=>R1 
E401 0 R1b мен салыстырылады 
2DFA егер >=0, PC – 6 (тексеруді қайталау) 
0B03 R0=> порт3 
Алдыңғы ҥш команда порт2-дегі дайындық битін оқиды және 
тексереді, ал соңғы команда дисплейге қажет символдың 
шығарылуын қамтамасыз етеді.
Кіші байт разрядының таңбасын міндетті тҥрде тексеретін 0 
«қысқа тҧрақтылы» командасына назар аударыңыз.
Символды енгізу процедурасы да шығару процедурасына сәйкес 
болады. 
 
7.5 Бағдарлама мысалдары 


90 
 1-мысал. А, В және С қыры бар параллелепипедтің толық бетін 
табыңыз. Шығыс мәндер ЖЕСҚ-ң ҧяшығында болсын. Нәтижені 
жады ҧяшығына орналастырыңыз. 
Шешімі. Параллелепипедтің толық беті келесі формула 
бойынша есептеледі: 
S=2*(A*B+A*C+B*C) 
Ӛрнекті ықшамдап келесі тҥрге келтіреміз: S=2*[A*(B+C)+B*C] 
 
134 бағдарлама 
0000 01ЕО
(22) => R0 В => R0
0002 0022 
0004 0101
R0 => Rl В => Rl
0006 02Е0
R0 + (24) => R0
В + С
0008 0024 
000А 05Е0
R0 * (20) => R0
A * (В + С)
000С 0020 
000Е 05Е1
Rl * (24) => Rl В * С
0010 0024 
0012 0210
R0 + Rl => R0
A * (В + С) +
В * С
0014 0200
R0 + R0 => R0
2 * [A * (В + С)
+ В * С]
0016 010Е
R0 => (26)
нәтиже => S
0018 0026
001A 0F00
тоқтау 
………. 
0020 0002 А
0022 0003 В
0024 0004 С
0026 0034 S 
Ескерту! Нәтиже 34 ЭЕМ жадысында оналтылық жҥйеде 
берілетінін ҧмытпаңыз. Ондық жҥйеде 52 саны шығады.
2-мысал. Латын әріптерін әрдайы ҥлкен тҥрінде енгізуді 
ҧйымдастыру. 


91 
 
Шешімі. Бас әріп пен кіші әріптердің айырмашылығын тауып 
алайық. Ол ҥшін ASCII кестесінен кез келген бас және кіші әріпті 
таңдап екілік жҥйеде кодтайық. Мысалы, R әріпі ҥшін 
R 0101 0010 
r 0111 0010 
Осы әрекетті тағы бірнеше әріптер ҥшін қайталап мынадай 
қорытындыға келеміз: егер кіші битті 0 деп есептесе, онда бас және 
кіші әріптер бес битпен ерекшеленеді.
Сонымен біздің есепте бестен басқа барлық биттерді сақтау 
керек. Ол ҥшін тҧрақтысы бар ЖӘНЕ әрекетін орындау керек. 
1101 1111 =DF, 
сонан соң әрбір код бізге қажеті жоқ биттен басқаларын сақтап 
отырады. 
135 бағдарлама
0000 0E6D
26 => SP стек кӛрсеткішін 
орнату 
0002 0026 
0004 9C0D
40FE шақыру символды енгізу
0006 40FE 
0008 0101
R0 => Rl
еңгізілген символды
сақтау 
000A 07D0
DF and R0 => R0 әріпті ҥлкен жасау 
000C 00DF 
000E 9C0D
4088 шақыру нәтижені шығару 
0010 4088 
0012 0F00
тоқтау 
 
 
3-мысал. R1, R2 және R3 регистрларында сақталған сандардың 
ҥлкенін табу. Нәтижені R0 жазу керек. 
Шешуі. Алдымен R1және R2 сандарының ҥлкенін тауып, R0 
енгізейік. Сонан соң егер R3 R0-ден ҥлкен болса жауап ретінде R3-ті 
жаамыз. 
136 бағдарлама
0000 0412
R2-ді Rl-мен салыстыру 
0002 3D04
егер < 0, онда РС=РС+4
жазбаға Rl (0008)
0004 0120
R2 => R0
R2 сақтау 
0006 1D02
РС=РС+2
екінші тармаққа 
ӛту (000A)
0008 0110
Rl => R0
Rl сақтау 
000A 0403
R3-ді R0-мен салыстыру


92 
000C 3D02
егер < 0, онда РC=РС+2 шығысқа (0010) 
000E 0130
R3 => R0
R3 сақтау 
0010 0F00
тоқтау 


Достарыңызбен бөлісу:
1   ...   46   47   48   49   50   51   52   53   ...   113




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

    Басты бет