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
тоқтау