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
тоқтау
Достарыңызбен бөлісу: