О‘zbekiston respublikasi oliy va о‘rta maxsus ta’lim vazirligi qarshi muhandislik iqtisodiyot instituti
Download 0.76 Mb. Pdf ko'rish
|
informatika va axborot texnologiyalari
- Bu sahifa navigatsiya:
- Sonlarning 16-li kurinishi.
- 2. Mikroprotsessorning programma modeli. registrlar.
- Umumiy vazifalarga mо‘ljallangan registrlar (UVMR)
- Eax, ax, ah, al (Accumulatar register)
- Edx, dx, dn, dl (Data register)
- Esi, si (Source Index register)
- Esr, sr (Stack Rointer register)
- Segment registrlari
- Cs- (Code segment register).
- Assembler tilining konstruksiyasi.
- Operatorlar formati.
- Mnemonika yoki operatsiya kodi (OK)
- {nom} direktiva {operand(lar)} {;izox}
ASCII kodi.
Mikrokompyuterlarni bir standartga keltirish va axborot almashish uchun amerika milliy standart kodi ishlatiladi. ASCII (American Nationdl Standart Code for Information Interchange). Standart kodi borligi kompyuter xar xil kurilmalari orasidagi ma’lumotlarni olishini yengil kiladi.
RS da ishlatiladigan 8- bitli kengaytirilgan ASCII kodi 256 belgilarni (milliy belgilari bilan birga ) ta’minlab kursatadi. Ikkili sonlar.
Kompyuter fakat bitni 0 va 1 xolatini tushunadi, shu sababli u 2- lik sanok sistemasida ishlaydi. Bit uzini nomini ingliz (“binary digit” 2- lik ranem soni) dan oldi. 2 - lik rakamlar yordamida istalgan kiymatlarni kursatish mumkin. 2- lik sonni kiymatini xar bir bitni nisbiy urin va birlik bitlar borligi bilan aniklaydilar. PDF created with pdfFactory Pro trial version www.pdffactory.com
10
Urin kodi: 128 64 32 16 8 4 2 1 - bu yerda xamma birlik bitlarni saklaydigan 8- bitli son kursatildi. Uz ichiga olingan bitlar: 1 1 1 1 1 1 1 1.
Eng ung bitning kiymati - 1, keyingi rakam- 2, keyin- 4... Bu xolda sakkizta birlik bitlarning umumiy yigindisi 1q2q4q...q125q255 (2 sakkiz darajasida - 1) buladi. 01000001 2- lik songa birlik bitlarni kiymatlari 1 va 64 (t.Y. 65) buladi, lekin 01000001 2- lik son “A” xarfni xam kursatadi. Shuningdek, 01000001 bit “65” sonni xam, “A” xarfni xam kursatadi: agar dastur arifmetik xisoblarida ma’lumotlar elementini aniklasa, 01000001 bit “65” songa ekivalent bulgan 2- lik sonni kursatadi; agar dastur tasviriy ma’lumotlar elementini aniklasa, 01000001 bit xarf yoki satrni kursatadi. Shu farklar dasturlashtirishda tushunarli buladi, chunki dasturda xar bir elementni kiymati aniklab olingan. Sonlarning 16-li kurinishi.
Faraz kilaylik, xotiradagi ayrim baytlar tarkibini kurmokchimiz. Buning uchun 4 ta ketma - ket baytlar tarkibini aniklashimiz kerak.
4 bayt 32 bit bulganligi uchun muttaxassislar 2 - lik sonlarni “stenografik” kursatish metodini ishlab chikdilar. Bu metod buyicha xar bir bayt ikkiga bulinadi va xar bir yarimbayt tegishli kiymatlar bilan kursatiladi. Kuyidagi 4ta baytni kurib chikamiz.
10-li: 5 9 3 5 11 9 12 14 Chunki bizda kandaydir 10- lik sonlarni kursatish uchun ikkita rakam kerak, shuning uchun sanok sistemani kengaytiramiz Endi 10q A, 11q V, 12qS, 13qD, 14qE, 15qF. Shuningdek,
biz
yukorida kursatilgan baytlar kiymatini kursatishning kiskaytirilgan formasiga ega buldik:
59 35 V9 SE Shunaka sanok sistemasi uziga 0 dan F gacha “rakamlarni” kushadi . Bu “rakamlar” 16-ta. Shuning uchun bunday sanok sistemasi 16-li kurinishda deb aytiladi.
16-li formati Assembler tilida kup ishlatiladi. 16-li formatda dasturlarni assemblerlashtirishni listingida xamma adreslar, komandalarni mashina kodi va konstantalr ichidagi narsalarni kiritiladi. Assembler dasturida 16-li sonni indeksiya kilish uchun, sondan keyin “N” belgisi kuyiladi. Masalan, 25N (unli kiymati 37) 16-li sonlar xar doim 10-li 0-9 rakamlardan boshlanadilar. Shunday, B8N rakami 0V8N deb yoziladi. Segmentlar.
Paragrafning chegarasidan boshlanadigan oblast segment deyiladi, bu 16 ga koldiksiz bulinadigan adresdir. Segment xotiraning xar kanday joyda joylashgan bulishi mumkin va uning kattaligi 64K baytgacha yetadi. Shunday bulsada dasturning ishlashi uchun kancha xotira kerak bulsa segmentga xam shuncha xotira kerak buladi. Uchta asosiy segmentlar bor:
1. Kodlar segmenti. Kodlar segmenti bajariladigan mashina kodlarini uz ichiga olgan. PDF created with pdfFactory Pro trial version www.pdffactory.com 11
2.Ma’lumotlar segmenti. Ma’lumotlar segmenti ba’zi ma’lumotlar, kostantalar va dasturga kerakli ish bajaradigan oblastlarni saklaydi.
3.Stek segmenti. 2. Mikroprotsessorning programma modeli. registrlar. Assembler tilini о‘rganishdan oldin va programmalash uchun kompyuterning mikroprotsessor kismi va uning tashkil etuvchilarini yaxshi bilish kerak. Programma tuzishda foydalanadigan mikroprotsessorning tashkil
etuvchilarini mikroprotsessorning programma modeli deyiladi va ular 32 ta registrlardan tashkil topgan. Registrlar.
8086/8086 protsessorlarda 14 registrlar bor. Shu registrlar bajarilayotgan dasturni boshkarish, xotirani adreslashtirish va arifmetik xisoblari uchun ishlatiladi. Xar bir registr suz (16-bit) uzunligiga ega va nomi(ismi) bilan adreslashtiriladi. Registrlarni bitlari ungdan boshlab nomerlangan:
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 80286 va 80386 protsessorlarda kushimsa registrlar bor. Ularda ba’zi birlari 16- bitlik. CS, DS, SS, va ES segment registrlari.
Xar bir segment registri 64K xotirani adreslashtiradi va odatdagi (tekushiy) segment deyiladi. 1.CS registri. Kodlar segment registri kodlar segmenti boshlangich adresiga ega. Shu adres va komandaning siljishi kattaligi (IP), komandani adresini aniklaydi. Oddiy dasturlari uchun CS registriga kursatishni keragi yuk.
2.DS registri Ma’lumotlar segment registori ma’lumotlar segmentini boshlangich adresiga ega. Bu adres va komandada aniklangan siljishni kattaligi ma’lumotlar segmentining konkret katagini kursatadi.
3.SS registri. Stek sagmentni registri stek segmentida boshlangich adresini saklaydi. 4.ES registri. Ayrim satr ustidagi operatsiyalar xotira adresatsiyasi uchun kushimcha segment registrini ishlatadilar. Bu yerda ES registri indeks registri DI bilan boglangan. Agar ES registrini ishlatish zarur bulsa, asembler dasturi uni urnatishi kerak. Umumiy maksadli registrlar: AX, BX, CX, va DX.
Assemblerda dasturlashtirishda, umumiy maksadli registrlar “ishchi” registrlar xisoblanadi. Bu registrni bir butun suz yoki bir baytli kismdek adreslash mumkin. Chap bayti katta (tungich) kism buladi (high) , ung bayti esa kichik (kenja) kism (low). Masalan, CX 2- baytli registr ikkta bir baytli CN va CL registrlardan iborat va xar kanday uchta nomi bilan registrga murojat kilish mumkin. Kuyidagi uchta assembler komandalar CX, CH va CL registrlarga tegishlicha nollarni yuboradi.
MOV CX, 00 MOV CH, 00
MOV CL, 00 PDF created with pdfFactory Pro trial version www.pdffactory.com 12
1) AX registri. AX registri tallagichdir. U xamma kiritish va chikarish operatsilar va ba’zi satrlarni ustidagi operatsiyalar uchun ishlatiladi. Masalan, kupaytirish va bulish, siljish komandalar AX registrni ishlatishadi. Ba’zi komandalar, agar AX registrga murojat kilishsa, efektivrok kodiga ega buladilar:
AX: ! AH ! AL ! 2) BX registri. BX registri tayanch (baza) registridir. Bu birgina, “indeks” sifatida kengaytirilgan adreslashtirish uchun umumiy maksadli registridir.
BX: ! BH ! BL ! 3) SX registri. SX registri schetchikdir. U siklarni kaytarilishini boshkarish, chapga va unga siljish operatsiyalari uchun ishlatiladi. SX registri xisoblash uchun xam ishlatiladi.
SX : ! CH ! CL ! 4) DX registri. DX registri ma’lumotlar registridir. U ba’zi kiritish chikarish operatsiyalr uchun ishlatiladi. VA (shunaka) katta sonlardagi (kaysi DX va AX registr juftini ishlatirsa) kupaytirish va bulish operatsiyalar uchun ishlatiladi.
DX : ! DH ! DL ! Xar bir umumiy maksadli registrlar kushish va ayirish uchun 8- li xam, 16- li bitlar xam ishlatishi mumkin.
Registr kursatkichlar: SP va BP
SP va BP registr kursatkichlar sistemaga stek segmentida ma’lumotlarga kirish yulini ta’minlaydi Kamdan-kam, ular kushish va ayirish operatsiyalari uchun ishlatiladi.
1. SP registri. Stek kursatkichi xotirada stekni ishlatishni ta’minlaydi; vaktincha adres va ma’lumotlarni saklaydi. Shu registr stekni adreslash uchun SS registri bilan boglangan.
2.BP registri. Bazaning kursatkichi parametrlarga ma’lumotlarga va stek orkali berib yuborilgan adreslarga kirish yulini yengillashtiradi. Indeks registrlar: SI va DI.
Xar ikki indeks registrlarini kengaytirilgan adreslashtirish uchun va kushish ayrish operatsiyalarda ishlatish mumkin. 1. SI registri. Bu registr matnlar indeksidir. Bu satrlardagi ba’zi operatsiyalar uchun ishlatiladi. Shu kondeksda SI registri DS registri bilan birlashtirilgan. 2.DS registri. Bu registr topshirik indeksidir va satrlar operatsiyalar uchun ishlatiladi. Shu kontekstda SI registri ES registri bilan boglangan. Komanda kursatkich registri: IP
IP registri bajaradigan komandaga siljishishni saklaydi. Odatda, dasturda bu registr ishlatilmaydi. PDF created with pdfFactory Pro trial version www.pdffactory.com
13
Bayrok registri.
Bayrok registrida 16 bitdan tukkistasi aktiv buladi. Ular mashinani xozirgi (odatdagi) xolatini va bajarishlar natijalarini aniklaydilar. Kup arifmetik komandalar va kiyoslash komandalar bayroklar xolatini uzgartiradi. Bayrok bitlarni vazifalari:
3-rasm. I 486 va Pentium mikroprotses-sorlarining foydalanuvchi registrlari. Foydalanuvchi registrlar deb atalishiga sabab dasturga bu registrlardan о‘zining programmasini yozishda tо‘liq foydalanishi mumkin. 8 ta 32 bitli registrlar (malumotlarni va adreslarni saqlash uchun). Bu registrlarga quyidagilar kiradi. YA’na bu registrlarni umumiy vazifalarga mо‘ljallangan registrlar deb yuritiladi. Eax, ax, ah, al ; Ebx, bx, bh, bl ; Edx, dx, dh, dl ; Ecx, cx, ch, cl ; PDF created with pdfFactory Pro trial version www.pdffactory.com 14
Ebp, bp ; Esi, si ; Sdi, di ; Esp, sp . 6 ta segment registrlari cs, ds, ss, es, fs, gs; Xolat va boshqaruvchi registrlar Bayroq registrlari eflags, flags Buyruqlar kо‘rsatkichi registrlari eip, ip. Nima uchun registrlar vergul (,) belgisi bilan ajratilgan? Bu registrlar xar xil registrlar bо‘lmasdan balki 32 razryadli registrning bir qismlaridir. Ularni programmalarda aloshida obyekt sifatida ishlatish mumkin. I486 va Pentium mikroprotsessorlari 32 razryadli registrlarga ega. Foydalanuvchi registrlarning tarkibi va vazifalari bilan tо‘liq tanishib chiqamiz. Umumiy vazifalarga mо‘ljallangan registrlar (UVMR) UVMR lar funksional jishatdan protsessordagi arifmetik- mantiqiy qurilma (AMq) ichida joylashgan, shuning uchun ularni yani AMq registrlari deb xam ataladi. Eax, ax, ah, al (Accumulatar register) – akkumlyator. Oraliq ma’lumotlarini saqlash uchun ishlatiladi. Ayrim buyruqlarda bu registrlarni ishlatish majburiy. Ebx, bx, bx, bl (Base register) – bazali registr. Xotiradagi ayrim obyektlarning bazali adreslarini saqlash uchun ishlatiladi. Ecx, cx, ch, cl (Count register) – xisobchi registr. Bir necha takroriy xarakatlarni vujudga keltiruvchi buyruqlarda qо‘llaniladi. Masalan: LOOP siklni tashkil etuvchi buyrug‘i boshqarishni kо‘rsatilgan adres bо‘yicha о‘tkazib ecx, cx registrini qiymatini tashlil qiladi va bittaga kamaytiradi. Edx, dx, dn, dl (Data register)- ma’lumotlar registri. Yeax, ax, ah, al registriga о‘xshab oraliq malumotlarni saqlash uchun ishlatiladi. quyidagi ikkita registrlar zanjirsimon deb ataluvchi amallarni, yani zanjir elementlarini ketma – ket qayta ishlashni amalga oshirishda qо‘llaniladi, xar biri 32, 16, 8 bit uzunlikga ega bо‘lishi mumkin.
zanjir eliment adresini saqlash uchun ishlatiladi Edi, di (Destination Index register) – qabul qiluvchi indeks. Bu registr zanjirli amallarda qabul qilinuvchining joriy eliment adresini saqlash uchun ishlatiladi. Mikroprotsessor arxitekturasining programma – apparat darajasida shunday ma’lumot tuzilmasi qо‘llaniladi va uni stek deb yuritiladi. Xar bir zamonaviy protsessorlar singari stek PDF created with pdfFactory Pro trial version www.pdffactory.com 15
tezkor xotirada tashkil etilgan va uning joylashish SS va SR registrlarini tashkil etuvchilari orqali aniqlanadi. Stekning maksimal о‘lchami 64 Kbaytni tashkil etadi. Stek bilan ishlash uchun maxsus buyruqlar mavjud.
Bu registrlar asosan stek ichidagi ma’lumotlarga erkin murojaat qilishni tashkil etish uchun mо‘ljallangan.
Mikroprotsessorning programma modelida oltita segment registrlari mavjud: cs, ss, ds, es, gs, fs Ularning paydo bо‘lishi tezkor xotirani tashkil etish va qо‘llanishi bilan bog‘liq. Buni shunday tushinish mumkinki, mikroprotsessor programmalarni xotirada segmentlar deb ataluvchi uch turdagi qismlardan iborat xolda tashkil etadi. Yani bu registrlar mos segmentning boshlangan xotira adreslarini saqlaydi. Mashina buyruqlarini qayta ishlash logikasi shunday qurilganki, buyruqlarni tanlashda programma malumotlariga yoki stekga murojaat qilishida segment registrlarida aniqlangan adreslarga asoslanadi. Mikroprotsessorlar quyidagi turdagi segment turlarini о‘z ichiga oladi. 1.
boshlanadi. Tilning alfaviti – shu tilgagina tegishli bо‘lgan asosiy belgilar va tushunchalar tuplamidan iborat buladi. Assembler tilini alfavitini tashkil etuvchi asosiy belgilar jamlamasini uch guruxga ajratish mumkin: Xarflar.Rakamlar.Maxsus belgilar. Assembler tili boshka dasturlash tillariga uxshash uzining alfaviti va mumkin bulgan belgilariga ega:
1. Lotin alifbosining A dan Z gacha bulgan bosma xarflari va a dan z gacha bulgan kichik yozma xarflar. 2.
1 dan 9 gacha bulgan rakamlar va 0 kiradi. 3.
q, -, *, /, <, >, @, &, #, ¤ belgilari . Bunda
@ -ampersand, (kommerticheskiy ett).
Bundan tashkari bu belgilarning kombinatsiyalaridan tuzilgan belgilar xam ishlatilishi mumkin. Ular ichida katorni utkazib yuborish bush joy kabi belgilar bulishi mumkin. Dasturlashda bosma va yozma xarflar bir-biridan fark kilinmaydi. Maxsus belgilarning funksiyalarini kuyidagi jadvalda keltiramiz. PDF created with pdfFactory Pro trial version www.pdffactory.com 16
Belgi nomi Funksiyasi SP (20 h) Bush joy. Ismlarni ajratish va tugatish. CR (OD h) Enter (bajarish). LF (OA h) Katorni utkazib yuborish. , Operantlarni ajratish. . Yozuv maydonini ajratish. q Binar kushish, Unar plyus - Binar ayirish, Unar minus * Kupaytirish. / Bulish.
; Yozuv maydonining boshlanishi(izox uchun) : Metka segmentlarini ajratish. & Katorning boshlanishi. $ Adres ulchagichining xozirgi kimati. q Yozuvda maydon enini uning boshlangich kiymatidan ajratish @ Ismdagi belgi. ? Initsilizatsiya uchun aniklanmagan kiymat. - Ismdagi belgi. Assembler tilining konstruksiyasi. Operatorlar. Boshlang‘ich model assembler tilini ketma – ket operatorlaridan tashkil topgan. Oddiy holda operatorlar bitta qatorda ifodalanadi. Ayrim xollarda operatorlarni bittadan ortiq qatorga sham yozish mumkin. Bu xolatda yangi qatordagi operatorlarni qator davomchisini kо‘rsatish uchun & ampersand belgisidan foydalaniladi. Assembler operatorlarni erkin xolda qabul qiladi, yani operator elimentlari uchun aniq ustun belgilangan, ular orasida ixtiyoriy miqdorda probellar bо‘lishi mumkin. quyida assembler tili operatorlariga misol keltirilgan: MOV CX, ARRAY [SI]; Oddiy buyruqli operatorlar MOV CX, ARRAY [SI]; Oldingi operatorga ekvivalent MOV CX, & ARRYY [SI]; Yozish mumkin, faqat oddiy emas TRUE EQU OFFN; Assembler direktivasi CODE SEGMENT; Assembler direktivasi WVAL DW 0 ; Xotirani initsializatsiyalash NEXT: ADD AL, DH; Belgilangan operator MOV ES: ROW [DI],BL; Segmentni almashtirish WAIT: LOCK XCHG AL, SEMA; perefiks ximoyasi Bu assembler operatorlariga misollar. Boshlang‘ich modelda opretsiyalar buyruq operatorlari, ma’lumotlarni taqsimlash operatorlari va assembler direktivalari sifatida klassifikatsiyalanadi. Ayrim xollarda malumotlarni taqsimlash operatorlari direktivalarga taluqli bо‘ladi. Buyruq operatorlari mashina buyrug‘ini assemblerdagi generatsiyasini aniqlab; ular mnemomik va (majburiy emas) bitta yoki ikkita operanddan iborat bо‘ladi. PDF created with pdfFactory Pro trial version www.pdffactory.com
17
Ma’lumotlarni taqsimlash operatorlari programma ma’lumotlari uchun xotira yacheykalarini band qiladi. Assembler direktivalari assemblerlanuvchi programmalarni maxsus kо‘rsatmasini tashkil etadi.
{metka:} {prefiks} mnemonika {operand(lar)} {; izox} Bu yerda figurali qavs ichidagi maydonlar kо‘rsatilmasligi mumkin. Yuqoridagi formatdagi xar bir maydon bilan chuqurroq tanishib chiqamiz. Metka: Ikki nuqta bilan tugallanuvchi, foydalanuvchi tomonidan aniqlangan nom. Metkani qiymati joriy kod segmentidagi schyotchik yacheyka (adreslar)ning joriy qiymatidan iborat. Yacheykalar schetchigi – bu assemblerlash jarayonidagi bosh о‘zgarishdir. Metkani qiymati belgilangan buyruqni adresini kо‘rsatadi. Metkalar operand sifatida faqat boshqarishni о‘zatuvchi buyruqlarda qо‘llaniladi.
takrorlashni talab etadi. Mnemonika yoki operatsiya kodi (OK): Mnemonika mashina buyruqlarini generitsiyalovchi oldindan aniqlangan va о‘zgartirilmaydigan nom. Mnemonika sifatida buyruqning asosiy funksiyasini anglatuvchi qisqa yoki tо‘la inglizcha sо‘zlar qо‘llaniladi: ADD – qо‘shish, SUB (tract)- ayirish, XCHG (exch anbe) – almashish va x.k. Operand(lar): Mnemonikadan sо‘ng operatsiya obyektlari tashkil qiluvchi operandlar yoziladi. Buyruqlar funksiyasiga asosan bitta, ikkita yoki operandni talab qilish yoki umuman operandni talab qilmaslik mumkin. Masalan: MOV AX, STRING [SI]; 2 ta operand NOT DL ; 1 ta operand XLAT ; operand yо‘q Operandni ikkitadan kо‘proq yozish xolatida programmist makro buyruqdan foydalanadi, xar bir operand oldingisidan vergul bilan ajratiladi.
tugatiladi. Izoxni assembler translyatori bu maydonni xisobga olsa sham programmaga u xech qanday ta’sir kо‘rsatmaydi. Izox programmani xujjatlashtirish va programmani ishlashini tushintirish uchun qо‘llaniladi. Masalan: ; assembler tilida ayrim buyruqlarini ; bajarishga misol SUB CX, BX ; registr - registr PDF created with pdfFactory Pro trial version www.pdffactory.com 18
SUB DX, ALEX, [SI] ; registr - registr SUB [VRq2], CL ; xotira - registr SUB AL, 10H ; registr - о‘zgarmas SUB [SI], OFOOO H ; xotira - о‘zgarmas SBB AX, BR ; registr - registr SBB [DI], 30H ; xotira - о‘zgarmas DEC [BR] ; xotira DEC AL ; registr (8 bit) DEC BX ; registr (16 bit) Assembler diriktivlari va malumotlarni taqsimlash operatorlarini formati quyidagicha: {nom} direktiva {operand(lar)} {;izox} Bu xar bir maydonni aloxida kо‘rib chiqamiz. Nom. Direktiv nomi metkani nisbatan umuman boshqa ma’noni anglatadi, shuning uchun nomdan sо‘ng (:) ikki nuqta qо‘yilmaydi. Ayrim direktivalar majburiy aniq nomni talab etadi. Download 0.76 Mb. Do'stlaringiz bilan baham: |
ma'muriyatiga murojaat qiling