MP dasturlash uun dasturchi komandalar tartibini, registrlarni joylashishini, protsessorning strukturasi haqida yaxshi ma’lumotga ega bilishi kerak. Quyidagi harakatlarning ketma-ketligi tavsiya qilinadi:
Masalani aniqlash va taxlil qilish
Yechimining struktur sxemasini chizish
Dasturni assemblerda yozish
Dasturni yozish yoki mashina kodioa generatsiya qilish (kompilyasiya)
Dasturni yechishga ishga tushirish
Dasturni xujjatlash
139-rasm. Masalani yechilish strukturasi va algoritmi keltirilgan149 Dasturlashni, oddiy uchta sonni qo‘shish misolida, barcha bosqichlarini ko‘rib
chiqamiz, sonlar uchta xotira yacheykalarida joylashgan va yig‘indini to‘rtinchi xotira yacheykasiga joylashtiriladi. 139a, b-rasmlarda masalani yechilish strukturasi va algoritmi keltirilgan.
149 Chris J. Georgopoulos Interface fundamenentals in Microprocessor-Controlled Systems. A member of the Kluwer academic publishers group. Greece, 2009.
Uchta sonni qo‘shish misolini bajarish uchun dastur yozamiz, uning assemblerdagi versiyasi jadvalda keltirilgan.
Chapgi ikki ustunda qo‘llaniladigan xotira adresi va 16-lik kod operatsiyasi (KOP) yoki 8-razryadli so‘z ko‘rinishidagi operandlar xotiraga joylashtirilgan. Ikkita o‘ng ustunlarda assemblerning komanda mnemokodlari va operandlari- adreslar (masalan, 2010N), registrlar (N va L), akkumulyator (A) va xotira (M) joylashtirilgan. Bizning xolda operatorlarning mashina kodi xotiraga quyidagi adreslar bo‘yicha kiritilgan 2020N-202AN, qo‘shiluvchilar 0FH, 09H, 06H xotiraga 2010N- 2012N adres bo‘yicha kiritilgan.150
Keltirilgan komanda va adreslar tartibi, qo‘yilgan masala yechimining ko‘p sonli variantlaridan biri hisoblanadi. Ko‘rib chiqilayotgan dasturning turi ketma-ket dastur deb nomlanadi, chunki tarmoqlanish va o‘tishlarni o‘z ichiga olmaydi.
Real dasturlar odatda, katta hajmga ega bo‘ladi, ammo ular ham elementar segmentlardan tashkil topgan, va ular odatda, butun dasturni ishga tushirishdan avval tekshiriladi. Bundan tashqari, real dasturlar o‘z ichiga nim dasturlarni olishi mumkin (qandaydir trivial (eskirgan) operatsiyalarni bajarish uchun qo‘llaniladi, masalan, ko‘paytirish yoki bo‘lish) va davrlarni, hisoblash operatsiyalarini qaytaruvchi, ularning tugatilishi qandaydir shartlarni bajarish bilan aniqlanadi.
Dasturni MP yozish, oddiy kompyuter klaviaturasi yordamida programmatordan foydalanib-assemblerning mnemokodlarini mashina kodiga o‘tkazish uchun qurilma, bajariladi.
Dasturni yozgandan va alohida segmentlari bo‘yicha tekshirilgandan so‘ng, uni butunlay xatolar mavjudligi bo‘yicha tekshirish va sozlash (debugging) kerak. Buning uchun, oldindan ma’lum ma’lumotlar bo‘yicha, bir nechta tekshiruv hisoblashlari (bajarib ko‘rish va testlar) o‘tkaziladi.
150 Peter G. Martin and Gregory Hale. Automation Made Easy. International Society of Automation. USA, 2009 82- 94 p.
Dasturlashning oxirgi bosqichi hujjatlashtirish hisoblanadi, bunda, dastur yozuvi, hisoblash sxemasi, ma’lumotlar ro‘yxati, adreslar, komandalar, nim dasturlar va sharhlardan tashkil topadi.
23-jadval
O’n oltilik
|
Mnemonika va assemblere
|
Operand
|
Izoh
|
Adres
|
Mazmuni
|
2020
|
21
|
LXI
|
H, 2020H
|
2010N manzili juftlik HL
manzili ko'rsatgichlari yuklang
|
2021
|
10
|
|
|
|
2020
|
20
|
|
|
|
2023
|
7E
|
MOV
|
A,M
|
Batareya 2010N xotira hujayra birinchi raqamni
ko'chirib
|
2024
|
23
|
INX
|
H
|
2011N uchun oshirish juft HL
|
2025
|
86
|
ADD
|
M
|
Batareya mazmuni hujayra bilan xotira 2011N ikkinchi
qator katlam
|
2026
|
23
|
INX
|
H
|
2012N uchun oshirish juft HL
|
2027
|
86
|
ADD
|
M
|
Batareya mazmuni hujayra
bilan xotira 2012N uchinchi qator qatlam
|
2028
|
23
|
INX
|
H
|
2013N uchun oshirish juft HL
|
2029
|
77
|
MOV
|
M, A
|
Hujayra 2013N xotira miqdori mavjud batareyaga
joylashtirish
|
202A
|
76
|
HLT
|
|
Mikroprotsessorni tuxtatish
|
|