Assembler tili operatorr hám olardı qollaw


Download 34.76 Kb.
Sana06.05.2023
Hajmi34.76 Kb.
#1435574
Bog'liq
Assembler tili operatorr hám olardı qollaw


Assembler tili operatorr hám olardı qollaw

Реже:


  1. Assembler programmalastırıw tili

  2. Kirisiw

  3. Assambleya tili

  4. Til tariyxı

  5. Assembly tilin programmalastırıw

  6. Tildiń abzallıqları hám kemshilikleri

  7. Turbo Assembler (TASM)

  8. Programmanı úziw sisteması

  9. Úzilis mexanizmi

  10. Úzilis mexanizminiń islewi

  11. Juwmaq

  12. Ádebiyatlar dizimi

Kirisiw

Kompyuter texnologiyalarınıń rawajlanıwı algoritmlardı jazıw ushın jańa túrme-túr belgiler sistemaları - programmalastırıw tilleriniń payda bolıw procesin belgilep berdi. Kóp programmalastırıw tilleri ámeldegi, biraq biz Assambleyaǵa itibar qaratamız.
Házirgi kúnde programmist Assambleyaǵa qaraǵanda talay ápiwayı bolǵan júdá kóp programmalastırıw tillerinen paydalanıwı múmkinligine qaramay, Assambleyanı biliw hám ol jaǵdayda programmalastırıw qábileti hesh qashan artıqsha bolmaydı. Bul fakt tómendegi dáliller menen tastıyıqlanadi:
1. Basqa programmalastırıw tillerinde mudamı da talaplarǵa tolıq juwap beretuǵın programma jazıw múmkin emes. hám birpara jaǵdaylarda bul ulıwma múmkin emes. Assembler programmalastırıw tilinde qálegen programma jazılıwı múmkin.
2. Geyde joqarı dárejeli programmalastırıw tilleri kerekli islewdi támiyinley almaydı. Assemblerda jaratılǵan programma bolsa mudamı tez isleydi.
3. Joqarı dárejedegi tillerde jaratılǵan qosımshalar kólemi Assemblerda jaratılǵan qosımshalardan ádewir ulken.
4. Assembly tili tuwrıdan-tuwrı apparat quralları menen islew imkaniyatın beredi, bul bolsa birpara jaǵdaylarda programmistke ústinlik hám kerekli nátiyjeni beredi. Joqarı dárejedegi tildegi programma jazba modullar arqalı apparat qurılmaları menen isleydi, yaǵnıy programmistke geypara zattı ózgertiwge hám sol sebepli kerekli nátiyjege erisiwge múmkinshilik bermeydi.
5. Assembler tilin biliw tek joqarı dárejedegi tillerde programma dúzediganlarga salıstırǵanda úlken ábzallıq beredi. Bilimli assembler kompyuterdiń dúzilisin da, apparat qurılmaları dúzilisin da biladi.
Jumıstıń maqseti:
Assembler programmalastırıw tilin xarakteristikalaw ;
tildiń abzallıqları hám kemshiliklerin anıqlaw ;
Turbo Assemblerni xarakteristikalaw ;
Úzilis mexanizmi menen tanısıń.

Assambleya tili


Assembler tariyxı
Programmistler subprogramma túsinigi menen qashannan berli tanıs edi: Greys Xopper jáne onıń kásiplesleri Ekinshi jáhán urısı dáwirinde Garvard Mark 1 de kishi programmalardan paydalanǵanler, biraq hár bir kishi programma arnawlı bir mashqalanı sheshken.
Kishi programmalar - bul kompyuter programmasınıń ǵárezsiz bólekleri bolıp, olar qayta -qayta qollanıladı hám kerek bolǵanda tiykarǵı programmadan shaqırıladı. Mısalı, bir tómengi programma kvadrat túbirdi esaplawı múmkin, ekinshisi bolsa kompyuterde belgin kórsetiwine alıp keledi.
Birinshi programmistler derlik mudamı kerek bolǵanda olardı qayta kompilyatsiya etpeslik ushın eń kóp isletiletuǵın tómengi programmalardı jazıp alǵan bloknotlarga iye edi. Mashqala sonda, tómengi programma buyrıqları hám ózgeriwshileri yad daǵı jaylasıwı mánzilleri onıń ekinshisinde jaylasıwına qaray ózgerdi. Subprogrammalarni yadta málim bir jayǵa ornatıw, shubhasız, avtomatlashtirishni talap etdi jáne bul Edsac-de birinshi ret ámelge asırıldı. Kembrij programmistleri kitapxananı quraytuǵın birlestirilgen kishi programmalar kompleksin jazıwdan basladılar. Sonnan keyin, tek qısqa buyrıqtı kirgiziw jetkilikli edi - hám kompyuter programma ishinde tómengi programmanı ornatıw hám jaylastırıw boyınsha barlıq islerdi atqardı.[1]
Maurice Wilkes Edsac ushın mnemonik sxemanı hám kishi programmalar kitapxanasın jıynaw sisteması dep atadi (anglichan assembler sisteması - sol sebepli " assembler" sózi), sebebi ol tómengi programmalardıń izbe-izligin yig'adi.
assembler (danInglizassembler - assembler) - kompyuter programması, kompilyatorda jazılǵan programma ushın derek kodiassembly tili, ushın programmagamashina tili.[2]
Assambleya tili orıs tilinde kóbinese ápiwayı assembler dep ataladı. Bul tilden awdarmashı ádetde ápiwayı assembler dep ataladı, bul birpara jaǵdaylarda shálkesliklerdi keltirip shıǵarıwı múmkin. Assambleya tilin mashina kodına ótkeriw procesi kóbinese assemble dep ataladı.
“Assembly tili” terminin qóllaw birden-bir tómen dárejedegi til yamasa hesh bolmaǵanda bunday tiller ushın standarttıń bar ekenligi tuwrısında nadurıs pikirge alıp keliwi múmkin, bul ulıwma tuwrı emes. Sol sebepli de arnawlı bir programma jazılatuǵın tildi atawda onıń qaysı arxitektura ushın mólsherlengenligin hám tildiń qaysı dialektinde jazılǵanlıǵın kórsetiw maqsetke muwapıq bolıp tabıladı.

Assembly tilin programmalastırıw


Assembler - tómen dárejedegi programmalastırıw tili bolıp, ol insan aqılı ushın qolay bolǵan mashina kórsetpelerin jazıw ushın format bolıp tabıladı. [3]


Assembly tilindegi buyrıqlar protsessor buyrıqlarına Birma -bir sáykes keledi hám tiykarınan buyrıqlar hám olardıń argumentlarini jazıw ushın qolay ramziy forma esaplanadı. Assambleya tili, sonıń menen birge, tiykarǵı programmalastırıw abstrakciyaların usınıs etedi: programma bólimleri hám maǵlıwmatlardı jarlıqlar arqalı ramziy atlar hám direktivalar menen bólew.
Assembly direktivalari programmaǵa maǵlıwmatlar blokların (anıq suwretlengen yamasa fayldan o'qilgan) kirgiziw imkaniyatın beredi; málim bir bólekti málim bir neshe ret tákirarlaw ; fragmentti shártga kóre dúziń; fragmentti orınlaw adresin ornatıń, kompilyatsiya waqtında jarlıq bahaların ózgertiriń; parametrleri hám basqalar menen makro tariyplerden paydalanıw.
Hár bir protsessor modeli, qaǵıyda jol menende, óz kórsetpelerine hám sáykes keletuǵın montaj tiline (yamasa dialektqa ) iye.[4]
Jıynaw programmaları júdá nátiyjeli bolıwı múmkin. Assembler tilinde isleytuǵın teń ilmiy tájriybe hám qábiletke iye bolǵan programmistlerden joqarı dárejedegi tilde jazılǵan birdey programmadan kishilew hám tezirek programma jaratıw. Bul derlik barlıq kishi yamasa orta programmalarǵa tiyisli. Ókiniw menen aytamız, kólemi asqanı sayin, assembler tilindegi programmalar óziniń birpara abzallıqların joǵatadı. Bul assembler programmasında talap etiletuǵın tolıq maǵlıwmatlarǵa itibar menen baylanıslı. Kórip turǵanıńız siyaqlı, assembler tili kompyuterdiń hár bir háreketin joybarlawdı talap etedi. Kishi programmalarda bul programmanıń jumısın apparat menen optimallastırıw imkaniyatın beredi. Biraq úlken programmalarda júdá kóp tolıq maǵlıwmatlar programmanıń ózinde nátiyjeli islewingizga ırkinish beriwi múmkin, programmanıń bólek komponentleri áp-áneydey sonda da. Álbette, assembler tilinde programmalastırıw hár bir programmanıń mútajliklerin qandira almaydı.
Assembly tilindegi programmalar júdá anıq. Bul til programmistke barlıq apparat quralları menen tuwrıdan-tuwrı islew imkaniyatın bergenliginde sebepli, assembler programması basqa hesh qanday programma ete almaytuǵın islerdi ámelge asırıwı múmkin. Shubhasız, qurılma registrlarining bólek bıytların baqlaw zárúr bolǵan kirgiziw-shıǵarıw qurılmaların programmalastırıwda montaj tilinde programmalastırıw birden-bir uyqas tańlaw bolıp tabıladı.
Shubhasız, assembler tiliniń natiyjeliligi hám anıqlıǵınıń abzallıqları bar. Biraq onıń tolıq maǵlıwmatı birpara mashqalalardi keltirip shıǵaradı. Programmalastırıw ushın assembler tilin qashan tańlaw kerek?
Álbette, programma jazıwdıń basqa usılı bolmaǵanda assembler tilindegi programmalardan paydalanıw kerek. Mısalı, IBM programmistleri Assembler proceduralarınan paydalanǵan halda IBM PC ushın barlıq kirgiziw-shıǵarıw qurılmaların basqarıw programmaların jazdılar. Kirgiziw-shıǵarıw qurılmaları hám úzilis sistemasın basqarıw basqa hesh qanday programmalastırıw tili támiyinley almaytuǵın montaj tilinde anıqlıqtı talap etdi. Tap sonday, assembler tilinde IBM hár bir úskeneni tekseriwi kerek bolǵan diagnostika proceduraların jazǵan.
Assembly tili programmanıń islewi zárúrli bolǵan jaǵdaylarda da kerek boladı. Bul atqarılıw waqtı yamasa programmanıń juwmaqlawshı kólemi bolıwı múmkin. Fortran matematikalıq kitapxanası waqıt hám kólem tárepinen jaqsı islewdi talap etetuǵın programmaǵa mısal bóle aladı. Matematikalıq proceduralar hár qanday Fortran programmasınıń bir bólegi bolıp tabıladı, sol sebepli olar múmkinshiligi barınsha kemrek jay iyelewi kerek. Bunnan tısqarı, bul proceduralar Fortran programması daǵı barlıq matematikalıq funkciyalardı qadaǵalaw etedi hám kóbinese qollanıladı. Sol sebepli olar demde orınlanıwı kerek.
Qaysı programma assembler tiline uyqas kelmeydi? Álbette, ol jaǵdayda qálegen programma jazıwıńız múmkin, lekin C yamasa C# sıyaqlı joqarı dárejeli tildegi úlken programma menen islew jaqsı bolıp tabıladı. Bul tiller sizdiń mashqalaıńızǵa itibarıńızdı qaratıwǵa múmkinshilik beredi. Úskene hám protsessorning názik tárepleri menen tikkeley shuǵıllanıwıńız shárt emes. Joqarı dárejedegi tiller sizge artqa qaytıw hám terekler arasından ormandı kóriw imkaniyatın beredi.
Assembler tilinde programmalastırıw arqalı hám tek sol dárejedegi tolıq maǵlıwmatlar daǵı programmalardı jazıw arqalı siz mashinanıń eń tómen dárejede qanday islewin túsiniwińiz múmkin. Eger siz kompyuter haqqında hámme zattı bilejaq bolsańız, assembler tilin jaqsı biliwińiz kerek. Buǵan erisiwdiń birden-bir jolı bul tilde programmalar jazıw bolıp tabıladı.
Búgingi kúnde eń kópshilikke arnalǵanları Barlandning Turbo Assembler (TASM), Hutch tárepinen jaratılǵan Windows32 ushın makro Assembler (MASM32) (Microsofttıń eski MASM tiykarında ) hám Flat Assembler (FASM) hám NASM Development Team tárepinen islep shıǵılǵan Netwide Assembler (NASM).. Bul assemblerlarning barlıǵı programmist ushın júdá keń múmkinshiliklerdi usınıs etedi. Olar da DOS, da Windows ushın programmalar jazıwları múmkin.
Assemblerning basqa túrleri de bar, olardıń sanı artıp barıp atır. Mısalı : CodeX Assembler, Gema Assembler, Light Macro Assembler (LASM), Lazy Assembler (LZASM), Table Driven Assembler (TDASM), NewBasic++ Assembler (NBASM), TMA Macro Assembler hám basqalar [5]

Tildiń abzallıqları hám kemshilikleri


Artıqmashılıqlar


Maman programmist ádetde joqarı dárejedegi programmalastırıw tillerinen kompilyatorlar tárepinen jaratılǵan programmalarǵa qaraǵanda talay nátiyjeli assembler programmasın jazıwǵa ılayıq, yaǵnıy assembler programmaları kemrek kórsetpeler hám shaqırıwlardan paydalanıw menen xarakterlenedi. yad, bul sizge programmanıń tezligin asırıw hám kólemin kemeytiw imkaniyatın beredi.


Arnawlı bir platformaga tán múmkinshiliklerden maksimal dárejede paydalanıw, bul sizge kemrek resurslar menen jáne de natiyjelilew programmalar jaratıw imkaniyatın beredi.
Assemblerda programmalastırıwda apparat qurallarına, atap aytqanda, kirgiziw-shıǵarıw portları, protsessor registrlari hám basqalarǵa tuwrıdan-tuwrı kirisiw múmkin.
Assembly tilin jaratıw ushın paydalaniladihaydovchilaroperatsion sistema apparatı hám yadrosı
Assembly tili " proshivka" jaratıw ushın isletilediBIOS.
Assembly tili kompilyatorlar hám dilmashlardı jaratadiyuqori dárejedegi tillerva platforma muwapıqlıǵın ámelge asırıw.
+ Disassembler járdeminde derek kodı etiwmey atırǵan basqa programmalardı úyreniw múmkin.
Kemshilikler

Assemblerning tiykarǵı abzallıǵı joqarı dárejedegi tillerdiń zamanagóy kompilyatorlarida jaqsı optimallastırıw menen derlik tolıq tegislenedi.


Mashinaǵa jóneltirilganligi (" past" dáreje) sebepli joqarı dárejedegi programmalastırıw tilleri menen salıstırǵanda, adam ushın programmanı oqıw hám túsiniw qıyınlaw, ol júdá " kishi" elementlerden ibarat - mashina kórsetpeleri, programmalastırıw hám disk raskadrovka bolıp qaladı. quramalılaw, miynetkeshlik kúshayadi hám qáteler payda bolıwı múmkin.. Sherikliktegi rawajlanıwdıń quramalılıǵı sezilerli dárejede asdı.
Qaǵıydaǵa kóre, zamanagóy sanaat programmalastırıw tillerine qaraǵanda kemrek kitapxanalar bar.
Basqa arxitektura hám buyrıqlar sistemasına iye bolǵan kompyuterlerge programmalardı kóshiriw múmkinshiligi joq (ekilik sáykes kelediganlardan tısqarı ).[4]

Turbo Assembler (TASM)


Barland's Turbo Assembler kóp ótiwli assembler bolıp, tuwrıdan-tuwrı uyqas jazıwlar ruxsatı, jıynaw tezligi minutada 48 000 qatarǵasha (IBM PS/2 Model 60 kompyuterinde), Microsoft'ning MASM makro assembleriga sáykes keledi hám keńeytirilgen sintaksis rejiminen qálegen paydalanıw. Programmalastırıw tájiriybengizdan qaramastan, siz bul ayrıqshalıqlardı, sonıń menen birge, assembler tilinde programmalastırıwdı talay ańsatlashtiradigan bir qatar basqa ayrıqshalıqlardı álbette qadrlaysiz.


Bul qurallar arasında tómendegilerdi qısqasha atap ótiw múmkin:
80386 protsessorini tolıq qollap-quwatlaw ;
sintaktik turni tekseriw jaqsılandi;
segmentti anıqlawdıń ápiwayılastırılgan direktivalari;
listing basqarıwdı jetilistiriw;
POP hám PUSH kórsetpeleri keńeytpeleri;
argumentlar hám qálegen til parametri menen keńeytirilgen CALL bayanatı ;
jergilikli belgiler;
stekdagi jergilikli identifikatorlar hám proceduralar daǵı shaqırıw argumentlari;
strukturalar hám birlespeler;
ornatılǵan direktivalar;
QUIRK rejimi, MASMga eliklew;
Turbo dúzetuvchi menen tolıq derek dárejesinde disk raskadrovka;
ornatılǵan óz-ara uyqas jazıwlar jaratıw járdem programması (TCREF);
konfiguratsiya faylları hám ǵalabalıq jumıs faylları.[6]
Turbo Assembler - bul sizdiń derek fayllarıńızdı (*. asm* faylları ) alatuǵın hám olardan ob'yekt modulların (*. obj* faylları ) jaratatuǵın kúshli buyrıq qatarı assembleri. Keyin Barland TLINK baylaw programmasınan paydalanıwıńız múmkin. Alınǵan ob'ekt modulların bólew hám atqarılatuǵın fayllardı (*. exe* keńeytpeli fayllar ) jaratıw ushın joqarı jalǵanıw tezligi menen ajralıp turatuǵın EXE.
Turbo Assembler 80 x86 hám 80 x87 ceriyali protsessorlar menen islew ushın mólsherlengen (tolıq maǵlıwmat ushın 80 x86/80 x87 protsessorlarining kórsetpeler kompleksi Intelning tiyisli qóllanbalarında suwretlengen).
Turbo Assembler, Microsoft awdarmashıın tolıq qollap-quwatlawdan tısqarı, islep shıǵıwshılar tárepinen Ideal dep atalǵan rejimde birlestirilgen qosımsha funkciyalarǵa iye. Bul rejimnen paydalanıw ısılmaǵan programmistke jáne de vizual hám ápiwayı programmalastırıw usılın qóllaw imkaniyatın beredi. Kóbirek tájiriybeli assembler programmistleri Ideal rejiminiń ishki strukturalar, birlespeler sıyaqlı qásiyetlerinen paydalanıwları múmkin.
Ideal rejiminiń zárúrli ózgesheligi joqarı dárejedegi tillerge uqsas maǵlıwmatlar túrin tekseriwden paydalanıw bolıp, bul awdarma basqıshında kóplegen qátelerdi anıqlaw imkaniyatın beredi. Ideal rejiminiń basqa kóplegen zárúrli abzallıqları arasında tómendegiler ámeldegi:
- túrli strukturalar aǵzaların belgilew ushın birdey atlardan paydalanıw múmkinshiligi;
- HIGH hám LOW operatorlarınan paydalanıw ;
- EQU ańlatpaların aldınan esaplaw ;
- gruppalarǵa birlestirilgen maǵlıwmatlar segmentlerin tuwrı basqarıw ;
- direktivalardan paydalanıwdı jaqsılaw ;
- ańlatpalarda qawıslardan aqılǵa say paydalanıw.
Turbo Assembler proceduranı shaqırıwdan aldın argumentlarni stekga jaylastırǵan halda joqarı dárejeli tiller degi proceduralarǵa argumentlarni uzatadı. Joqarı dárejedegi tillerde jazılǵan proceduralar kerek bolǵanda stekdan argumentlarni shıǵaradı. Shıǵıwda procedura stekdan argumentlarni alıp taslawı yamasa bul operatsiyanı shaqırıwshı proceduraǵa qaldırishi múmkin.
C++ hám Assambleyada jazılǵan programmalardı birlestiriwdiń dástúriy usılı bólek kompilyatsiya qılıw hám keyin bir atqarılatuǵın faylǵa bólew bolıp tabıladı. Bunday halda siz assembler programmasın awdarmalaw ushın Turbo Assemblerni shaqıratuǵın Barland C ++ kompilyatoridan paydalanıwıńız múmkin.[7]
Turbo Assembler tilinde programmanı islep shıǵıw tórt basqıshnı óz ishine aladı :
1-basqısh. Programmanıń dáslepki tekstin tayarlaw jáne onı tekst faylı (bir yamasa bir neshe) keńeytpeli DOS formatındaǵı birpara redaktor járdeminde formatlaw. asm*.
2-basqısh. Tasm kompilyatori járdeminde programmanı jıynaw, bunıń nátiyjesinde * keńeytpeli ob'ekt faylı payda boladı. obj*. Eger programma bir neshe fayllardan (modullardan ) ibarat bolsa, olar bir-birinen ǵárezsiz túrde jıynaladı. Eger awdarma waqtında qáteler anıqlansa, ob'ekt faylı jaratılmaydı, lekin qáte xabarı payda boladı. Qáteler jónge salıw etiledi, sonnan keyin translyatsiya tákirarlanadı. Ob'ektli fayldı (programmanıń ekilik kodlı kórinisi) orınlaw ushın jumısqa túsiriw múmkin emes, sebebi ol kompyuter yadına programma segmentlerin júklew haqqında maǵlıwmattı óz ishine almaydı.
3-basqısh. Programmanıń jalǵanıwı baylaw (baylaw ) Turbo Linker tárepinen ámelge asıriladı hám programmanıń baslanǵısh adresin belgilew menen ob'ekt modulların bir atqarılatuǵın faylǵa birlestiriwden ibarat. Atqarılatuǵın fayl keńeytpesine iye *. exe*. 2 hám 3-basqıshlar awdarma dep atalatuǵın programmanıń atqarılatuǵın faylın tayarlaw procesin belgileydi.
4-basqısh Turbo Depugger járdeminde programmanı disk raskadrovka etiwden ibarat bolıp, ol buyrıq formatların úyreniw, olardı kodlaw, sonıń menen birge, programma ózgeriwshilerin yadta sáwlelendiriw ushın tiykarǵı qural boladı.

Programmanı úziw sisteması


Kompyuterdiń basqa hár qanday mashinadan tiykarǵı ayırmashılıqlarınan biri sonda, kompyuter processda aldınan aytıp bolmaytuǵın hádiyselerge juwap bere aladı. Bul qábilet kompyuterdiń arnawlı ózgesheligi - úzilis apparatı járdeminde támiyinlenedi. Úzilis kompyuterge úziliske ne sebep bolıp atırǵanına qaray óziniń qálegen iskerligin toqtatıp turıw hám basqasına ótiw imkaniyatın beredi. Mısalı, klaviatura daǵı tiyisli tuymeni basıw.


Toqtatıw qábileti biziń kompyuterimiz natiyjeliligindegi eń qıyın mashqala bolıp tuyulgan zattı sheshedi. Bir tárepden, biz kompyuter biz bergen jumıstı orınlawın qáleymiz. Basqa tárepden, bizge, mısalı, klaviatura járdeminde berilgen buyrıqlarimizga juwap beriwimiz kerek. Eger kompyuter tek ózinden so'ralgan zattı shalǵıtmasdan orınlawǵa ılayıq bolǵanında, klaviatura iskerligin turaqlı qadaǵalaw etpesten turıp, biziń sorawlarimizga waqıtında juwap bere almas edi. Úzilis sisteması klaviatura tárepinen jiberilgen signallarǵa, sonıń menen birge, kompyuter basqa jumıslar menen bánt bolǵan waqıtta itibardı talap etetuǵın basqa signallarǵa juwap beriwge múmkinshilik beredi.
Biziń jeke kompyuterimiz mikroprotsessorida operatsiyalardı toqtatıw ushın " tug'ma" qábilet bar, biraq ol úzilip qalǵan jumıstı saqlawdıń isenimli quralına iye. Onıń ushın mikroprotsessor stekidan paydalanıladı. Úzilis júz bergende, kompyuter sol waqıtta ne etip atırǵanı haqqındaǵı jazıw stekda saqlanadı, sonda úzilis tawsılǵannan keyin, biz keyin basıp qaytıwımız kerek bolǵan jayǵa qaytıwımız múmkin. Bul stek ushın bir neshe paydalanıwdan biri bolıp tabıladı, lekin bul eń áhmiyetlisi. Atqarılıp atırǵan mıynet haqında maǵlıwmattı saqlawımız múmkin bolǵan steksiz, toqtatıp turıw ideyasın ámelge asırıp bolmaydı.

Úzilis mexanizmi


úzilis (Inglizuzilish) - xabar beretuǵın signalprotsessorvoqea júz bolıwı haqqında. Bunday halda, ámeldegi buyrıqlar izbe-izligin orınlaw toqtatıladı hám basqarıwǵa ótkeriledi. úzilis isleytuǵınsı, ol hádiysege munasábet ańlatadı hám oǵan xızmet kórsetedi, sonnan keyin ol basqarıwdı úzilgen kodqa qaytaradı.[3]


Programmalıq támiynat úzilisi bul múmkin bolǵan sinxron úzilisdirdasturmaxsus kórsetpeler menen.[5]
Interruptlar programma orınlanıwına salıstırǵanda asinxron júz bolatuǵın hádiyselerdi basqarıw ushın eń sáykes keledi. Úzilisti sistema daǵı asıǵıslıq menen juwap beriwdi talap etetuǵın arnawlı hádiyse retinde kóriw múmkin. Mısalı, jaqsı mólsherlengen bekkem sistemalar registrlar hám operativ yad quramın magnit ortalıqqa jazıw proceduraların orınlaw ushın elektr úzilisinen paydalanadı, sonda quwat tiklengennen keyin jumıstı tap sol orından dawam ettiriw múmkin.
Kórinip turıptı, olda, hár qıylı sebeplerge kóre hár qıylı úzilisler múmkin. Sol sebepli, úzilis jaysha sonday dep esaplanbaydı : ol menen baylanısqan nomer úzilis túri nomeri yamasa ápiwayıǵana úzilis nomeri dep ataladı. waqıya hár bir úzilis nomeri menen baylanısadı. Sistema qaysı úzilis, qaysı nomer menen júz bergenligin anıqlay aladı hám sol nomerge sáykes keletuǵın proceduranı baslaydı.
Programmalar ózleri berilgen nomer menen úzilislerdi shaqırıwı múmkin. Onıń ushın olar INT buyrıǵınan paydalanadılar. Bular programmalıq úzilisler dep ataladı. Programmalıq úzilisler asinxron emes, sebebi olar programmadan shaqırıladı.
Arxitektura protsessorlaridax86 sinxron úzilisti anıq shaqırıw ushın, barInt kórsetpe, onıń argumenti úzilis nomeri (0 den 255 ke shekem). INIBM PC-ga sáykes keletuǵın kompyuterlerba'zi úzilisler subprogrammalar tárepinen basqarıladıBIOSichida saqlanadiROM, jáne bul BIOS tárepinen usınıs etilgen xızmetke kirisiw ushın interfeys bolıp xızmet etedi. Bunnan tısqarı, úzilisler keńeytiw kartalarınıń BIOS-si tárepinen hal etiliwi múmkin (mısalı, tarmaqyokigrafik kartalar ), operatsion sistema hám hátte basqa programmalar islep atirǵanda turaqlı yadta bolǵan ápiwayı (qosımsha ) programmalar (dep ataladı. turar jay programmaları ). Odan ayrıqsha bolıp esaplanıwhaqiqiy rejim, vhimoyalangan rejimx86 protsessorlari, ápiwayı programmalar úzilislerge xızmet ete almaydı, bul funksiya tek sistema kodı (operatsion sistema ) ushın bar.
MS-DOSmodullari hám ámeliy programmaları menen óz-ara baylanısda bolıw ushın 20 h den 3 Fh ge shekem nomerler menen úzilislerden paydalanadı (nomerler tómendegi bólimde keltirilgen. on altılıq sanaq sisteması, programmalastırıwda ádetdegidekassembly tilix86 ). Mısalı, MS-DOS funkciyalarınıń tiykarǵı kompleksine kirisiw Int 21 h kórsetpesin orınlaw arqalı ámelge asıriladı (bul halda funksiya nomeri jáne onıń argumentlariregistrlar). Bul úzilisler nomerlerin bólistiriw sım menen baylanıspaǵan hám basqa programmalar MS-DOS yamasa basqa programmalar tárepinen ornatılǵan ámeldegi ishlov beretuǵınlar ornına yamasa ústine ózleriniń úzilis ishlov beretuǵınların ornatıwı múmkin, bul ádetde funksionallıqtı ózgertiw yamasa sistema funkciyaları dizimin keńeytiw ushın isletiledi. Bunnan tısqarı, bul múmkinshilikten paydalaniladiviruslar.[8]

Úzilis mexanizminiń islewi


Hár bir belgilengen úzilis onıń nomeri menen anıqlanadı. Mısalı, taymer, klaviatura hám printerdiń hár biri óz úzilis nomerine iye. Tiykarǵı kirgiziw-shıǵarıw sistemasına kelsek, onıń xizmet kórsetiw programmaları gruppalarǵa bólinedi hám gruppanıń barlıq programmalarına bir úzilis nomeri beriledi.


Interrupt júz bergende, onıń keste degi nomeri tiyisli úzilis ishlov beretuǵınsın qosıw ushın isletiledi. Bunday programma óz jumısın baslawdan aldın úzilisler menen islew ushın juwapker bolǵan mikroprotsessor mexanizmi úzilisten aldın qanday jumıs orınlanǵanlıǵı haqqında stekda jazıw qaldıradi. Sonnan keyin, úzilis ishlov beretuǵınsı atqarıladı.
Toqtatıp bolmaytuǵın oǵada zárúrli yamasa quramalı operatsiyalar orınlanıwı kerek bolsa, úzilisti ishlov beretuǵın keyingi múmkin bolǵan úzilislerge qarsı ıqtıyat ilajların kóriwden baslaydı. Ádetde, bunday programmalar yadqa kirisiwdi basqarıwshı segment registrini ózgertiwdi, sonıń menen birge, úzilis basında avtomatikalıq túrde jazılǵan maǵlıwmatlarǵa qosımsha túrde saqlanıwı kerek bolǵan qosımsha jaǵday maǵlıwmatların stekga jıljıtıwdı óz ishine aladı.
Óz operatsiyaların tamamlaǵannan keyin, úzilisti ishlov beretuǵın taǵı basqa túrdegi úzilislerdi aktivlashtirishi hám kerekli islerdi orınlawı múmkin. Úzilis operatsiyaları tawsılǵannan keyin, úzilisti ishlov beretuǵın mashinanı úzilisten aldınǵı jaǵdayına qaytaradı hám kompyuter úzilgen operatsiyanı dawam ettiredi.[9]
Mısal ushın, atqarılatuǵın * bolǵan programmanı kórip shıǵıń. exe faylı, jumısqa túsirilgennen keyin waqtı -waqtı menen ekranda Rossiyanıń mámleket bayraǵina payda boladı. Kórinis dáwiri shama menen 2 sekundta 1 ret (Qosımshaǵa qarang). Bul programmada tómendegi jumıs algoritmı ámeldegi (1-súwret):

Gúrish. 1. Programmanıń algoritmı.


BIOS video drayveriga programmalıq támiynat kiriwi INT 10 h úzilisi járdeminde ámelge asıriladı. Tekst rejiminde islegende ádetde tómendegi drayver funksiyalarınan paydalanıladı :


02 h - kursor ornın belgilew;
03 h - kursor ornın alıw ;
05 h - video betti ornatıw ;
06 h - aynanı jumısqa túsiriw yamasa joqarıǵa aylandırıw ;
07 h - jumısqa túsiriw yamasa aynanı tómenge aylandırıw ;
08 h - kursor jayında belgi hám atributtı oqıw ;
09 h - kursor jayında belgi hám atributtı kórsetiw;
0 Ah - kursor jayında belgin kórsetiw;
0 Oha - teletayp rejiminde belgin kórsetiw;
10 h, subfunktsiya 3 h - jaqtılanıw/yorqinlik bitini almastırıw ;
13 h - teletayp rejiminde qatardı shıǵarıw.[10]
06 h hám 07 h funksiyalarınan paydalanıp, displey ekranınıń málim bir jayında málim ólshem degi reńli tórtmuyush áynekler jaratıladı. Eger bul áyneklerde qandayda bir tekst kórsetilsa, bul funkciyalardan paydalanıp, onı joqarıǵa hám tómenge aylandırıw múmkin.
09 h, 0 Ah, 0 Oha hám 13 h funkciyaları individual belgiler hám belgiler qatarların (siklda) kórsetiw ushın isletiledi. Ramkalar hám basqa bezewlerdi jaratıwda paydalanıw múmkin bolǵan birdey belginiń málim bir neshe ret shıǵıwı támiyinlenedi.
0 Oha funksiyası tiyisli háreketlerdi orınlaw arqalı basqarıw kodlarına juwap beredi. Hár bir belgi baspadan shıǵarılǵannan keyin kursor háreketlenedi.
13 h funkciyası hár bir belginiń atributların bólek hám pútkil qatardı kórsetiwshi qatarlardı shıǵarıw ushın mólsherlengen. Funkciya AL registrida kórsetilgen rejim kodına qaray tórt qıylı usılda orınlawǵa bolatuǵın.
BIOS drayveri járdeminde ekranda kórsetilayotganda, klaviaturadan Ctrl / C ni kirgiziw programmanı toqtatmasligini esta saqlawıńız kerek. Sheksiz ekran halqalarınan ıqtıyat bolıń - olardan shıǵıwdıń birden-bir jolı kompyuterdi qayta jumısqa túsiriw bolıp tabıladı. [10]
Sırtqı apparat úzilis signalları (taymer, klaviatura, disklar hám basqalar ) protsessorga tuwrıdan-tuwrı kirmaydi, bálki Intel 8259 A chipi bolǵan úzilis basqarıwshısı arqalı. Úskene úzilisler menen qayta islew, álbette, úzilisti basqarıw úskenelerin basqarıw tártiplerin óz ishine aladı. Úskene úzilisler sistemasın shólkemlestiriw sonnan ibarat, qurılmalardıń shıǵıwları kontrollerdiń segizta kirisiw piniga jalǵanadı, olarda úzilis signalları payda boladı. Tekseriw úskenesiniń INT shıǵıwı birdey nomdagi mikroprotsessor kiriwine jalǵanǵan. Bunday halda, mikroprotsessorda úzilis procedurasın baslaytuǵın INT signalınan tısqarı, qadaǵalawshı mikroprotsessorga maǵlıwmatlar liniyalari arqalı qabıl etilgen úzilisti qayta islew programması shaqırılıwı kerek bolǵan vektor nomerin uzatadı. Ótkerilgen vektor nomeri basqarıwshında onıń registrlaridan birinde belgilengen tiykarǵı nomerdi soraw qabıl etilgen kirisiw liniyasining nomerine qosıw arqalı qáliplestiredi. Tiykarǵı vektor nomeri kompyuterdi dáslepki júklew waqtında avtomatikalıq túrde kontrollerge kiritiledi. Tekseriw úskenesi 20 h hám 21 h portları arqalı programmalastırıwtirilgan. Tiykarǵı vektor mudamı 8 bolǵanı ushın apparat úzilislerine tayınlanǵan vektorlar sanı 8 h,.. ., Fh aralıǵinda boladı.
Biziń jaǵdayda, sistema taymerining signalları sebepli júzege keletuǵın úzilislerdi de esapqa alıw kerek.
Úzilisler - bul málim bir wazıypanı orınlaw ushın kompyuter shaqıratuǵın tártipler. Úskene hám programmalıq támiynatda úzilisler bar. Úskene úzilisleri anakartdan yamasa qosımsha kartadan apparat tárepinen tándarlanadı. Olar taymer chipidan kelgen signal, printerden kelgen signal, klaviatura daǵı tuymesheni basıw hám basqa kóplegen sebeplerge kóre júzege keliwi múmkin. Úskene úzilisleri programmalıq támiynattıń islewi menen muwapıqlashtirilmaydi. Interrupt shaqırilganda, protsessor óz jumısın tark etedi, úzilisti atqaradı hám keyin óziniń dáslepki jayına qaytadı. Programmanıń kerekli jayına anıq qaytıw múmkinshiligine ıyelew ushın bul orınnıń adresi (CS: IP) bayraq registri menen birge stekda saqlanadı. Sonnan keyin, úzilisti ishlov beretuǵındıń adresi CS:IP ga juklenedi hám basqarıw oǵan ótkeriledi. Interrupt ishlov beretuǵınları geyde úzilis drayverlari dep ataladı. Olar mudamı IRET (úzilisten qaytıw ) buyrıǵı menen tamamlanıladı, bul úzilis menen baslanǵan processni tugatadi, CS: IP hám bayraq registrining eski bahaların qaytaradı hám usınıń menen programmanı birdey jaǵdaydan orınlawdı dawam ettiriwge múmkinshilik beredi. Barlıq IBM jeke kompyuterleri 8253 (yamasa 8254) taymer chipidan sistema saatı chipidagi impulslarni maslastırıw ushın paydalanadı. Sistema saatı ciklleri sanı bir impulsga aylantırıladı jáne bul impulslar izbe-izligi waqtın anıqlaw ushın esaplanadı yamasa olar málim chastotalı dawıstı payda etiw ushın kompyuter dinamikine jiberiliwi múmkin. 8253 chipi ush birdey ǵárezsiz kanalǵa iye, olardıń hár biri programmalastırıwtirilishi múmkin. 8253 chipi protsessordan ózbetinshe isleydi. Protsessor chipni programmalaydı hám keyin basqa máselelerge ótedi. Sonday etip, 8253 real waqıt rejimindegi saat sıyaqlı isleydi - ol kompyuterde ne júz bolıwınan qaramastan óz pulslarini esaplaydı. Usınıń menen birge, maksimal programmalastırıwtırılatuǵın interval shama menen 1/12 sekundtı quraydı. waqıt aralıǵın saat hám minutalarda esaplaw ushın basqa qurallar kerek. Naǵız óziniń ushın taymer chipining nol kanalından impulslar BIOS maǵlıwmatlar maydanında jaylasqan ózgeriwshinde toplandı. Bul toplanıw ádetde kúnniń waqtın esaplaw dep ataladı. 18. sekundına eki ret, 0-kanaldıń shıǵıwı protsessorni qısqa waqıtqa toqtatıp turatuǵın hám kún waqtın esaplagichni asıratuǵın apparat úzilisi (taymer úzilisi) tárepinen basqarıladı.[10] Sonday etip, 8253 real waqıt rejimindegi saat sıyaqlı isleydi - ol kompyuterde ne júz bolıwınan qaramastan óz pulslarini esaplaydı. Usınıń menen birge, maksimal programmalastırıwtırılatuǵın interval shama menen 1/12 sekundtı quraydı. waqıt aralıǵın saat hám minutalarda esaplaw ushın basqa qurallar kerek. Naǵız óziniń ushın taymer chipining nol kanalından impulslar BIOS maǵlıwmatlar maydanında jaylasqan ózgeriwshinde toplandı. Bul toplanıw ádetde kúnniń waqtın esaplaw dep ataladı. 18. sekundına eki ret, 0-kanaldıń shıǵıwı protsessorni qısqa waqıtqa toqtatıp turatuǵın hám kún waqtın esaplagichni asıratuǵın apparat úzilisi (taymer úzilisi) tárepinen basqarıladı.[10] Sonday etip, 8253 real waqıt rejimindegi saat sıyaqlı isleydi - ol kompyuterde ne júz bolıwınan qaramastan óz pulslarini esaplaydı. Usınıń menen birge, maksimal programmalastırıwtırılatuǵın interval shama menen 1/12 sekundtı quraydı. waqıt aralıǵın saat hám minutalarda esaplaw ushın basqa qurallar kerek. Naǵız óziniń ushın taymer chipining nol kanalından impulslar BIOS maǵlıwmatlar maydanında jaylasqan ózgeriwshinde toplandı. Bul toplanıw ádetde kúnniń waqtın esaplaw dep ataladı. 18. sekundına eki ret, 0-kanaldıń shıǵıwı protsessorni qısqa waqıtqa toqtatıp turatuǵın hám kún waqtın esaplagichni asıratuǵın apparat úzilisi (taymer úzilisi) tárepinen basqarıladı.[10] waqıt aralıǵın saat hám minutalarda esaplaw ushın basqa qurallar kerek. Naǵız óziniń ushın taymer chipining nol kanalından impulslar BIOS maǵlıwmatlar maydanında jaylasqan ózgeriwshinde toplandı. Bul toplanıw ádetde kúnniń waqtın esaplaw dep ataladı. 18. sekundına eki ret, 0-kanaldıń shıǵıwı protsessorni qısqa waqıtqa toqtatıp turatuǵın hám kún waqtın esaplagichni asıratuǵın apparat úzilisi (taymer úzilisi) tárepinen basqarıladı.[10] waqıt aralıǵın saat hám minutalarda esaplaw ushın basqa qurallar kerek. Naǵız óziniń ushın taymer chipining nol kanalından impulslar BIOS maǵlıwmatlar maydanında jaylasqan ózgeriwshinde toplandı. Bul toplanıw ádetde kúnniń waqtın esaplaw dep ataladı. 18. sekundına eki ret, 0-kanaldıń shıǵıwı protsessorni qısqa waqıtqa toqtatıp turatuǵın hám kún waqtın esaplagichni asıratuǵın apparat úzilisi (taymer úzilisi) tárepinen basqarıladı.[10]
0 nomeri yarım tún 12:00 ge tuwrı keledi; esaplaǵısh 24 saatqa teń mániske jetkende, ol nolge qaytarıladı. Kún dawamında basqa waqıtlar esaplagichni hár bir sekund ushın 18, 2 ge bolıw arqalı ańsatǵana anıqlanadı. Kúnniń waqtın esaplaǵısh kóp waqıt menen baylanıslı operatsiyalarda qollanıladı.

Juwmaq

Assembler mashina tiliniń ramziy uqsawı bolıp tabıladı. Usınıń sebepinen assemblerda jazılǵan programma mikroprotsessor arxitekturasınıń barlıq qásiyetlerin sáwlelendiriwi kerek: yadtı shólkemlestiriw, operandlarni adreslew usılları, registrlardan paydalanıw qaǵıydaları hám basqalar. Bunday ayrıqshalıqlardı esapqa alıw zárúrshiligi sebepli assembler hár bir programma ushın birden-bir bolıp tabıladı. mikroprotsessor túri.
Bul kurs jumısında tómen dárejedegi til - assembler, onıń abzallıqları hám kemshilikleri, assemblerda programmalastırıwdıń tiykarǵı basqıshları haqqındaǵı teoriyalıq material uyreniledi. Úzilisler menen islew, grafik hám tekst rejimlerinde informaciyanı shıǵarıw hám kirgiziw, sistema taymer xabarların qayta islew principlerı kórip shıǵıldı, tapsırmanı orınlaw algoritmı ámelge asırıldı hám kod atqarılatuǵın faylǵa awdarma etildi.

Ádebiyatlar dizimi


Kasvands EG Assembler tilinde programmalastırıwǵa kirisiw. 1-bólim - M.: UNITI - DANA, 2006 jıl.


Yurov v. Assembler. Arnawlı qóllanba.- Sankt-Peterburg.: Piter, 2007 jıl.
Assembler ne.[Elektron resurs].- Kirisiw rejimi:http://www. assembler. webservis. ru
vaulin A. S. Programmalastırıw tilleri. kitap. 5 - M.: School-Press, 2008 jıl.
Malyutin E. A. Programmalastırıw tilleri.- M.: Tálim, 2008 jıl.
Abel P. IBM PC hám programmalastırıw ushın assambleya tili / Per. anglichan tilinen. Yu. v. Salnikova - M.; Joqarı mektep 2007 jıl - 447 b.: kesel.
Assemblerda programmalastırıwtıramız.[Elektron resurs].- Kirisiw rejimi:http://www. kalashnikoff. ru
Zubkov S. v. DOS, Windows hám Unix ushın Assembler.- M.: INFRA-M, 2009 jıl.
Bogumirskiy B. Windows 95 ortalıǵında IBM PC kompyuterinde nátiyjeli islew Sankt-Peterburg, " Piter", 2007 y.
Yurov v., Khoroshenko v. Assembler - Oqıw stul.- Sankt-Peterburg.: Piter, 2007 jıl.

Qosımsha


Programma kodı. model kishkene. kod


baslaw :
org 100 h
tiykarǵı prok
; mov AX, maǵlıwmatlar ; jumısqa túsiriw
mov DS, AX; segment registri DS
; 8-vektordıń túp mazmunın oqiń hám saqlań
mov AX, 3508 h
int 21 saat
mov word ptr old_08 h, BX
mov word ptr old_08 h+2, ES
; Biziń úzilis ishlov beretuǵınmız new_08 h ornatıń
mov AX, 2508 h
mov DX, ofset new_08 h
jıljıtıw DS; Bir múddet saqlań DS
jıljıtıw CS; Keling, CS quramın jiberemiz
pop DS; de D. S.
int 21 h; DOS shaqırıwı (funkciyaları 25 saat )
pop DS; DSni qayta tiklaylik
; 3 sekund ishinde orınlanǵan ámellerdi programmanı ápiwayı aylanıw arqalı eliklew etiń
STOP:
jmp toqtatıw
; 3 sekunddan keyin aktivlestirilgen programmanıń ekinshi tarmaǵı
fın:
; aq sızıq
MAń AH, 07 saat
MOvAL09 saat
MAń BH, 0 F7 h
MAń CH, 00 saat
MAń CL, 00 saat
MAń DH, 18 saat
MAń DL, 4 Fh
INT 10 saat
; kók sızıq
MAń AH, 07 saat
MOvAL09 saat
MAń BH, 097 h
MAń CH, 08 saat
MAń CL, 00 saat
MAń DH, 18 saat
MAń DL, 4 Fh
INT 10 saat
; qızıl sızıq
MAń AH, 07 saat
MOvAL09 saat
MAń BH, 0 C4 h
MAń CH, 18 saat
MAń CL, 00 saat
MAń DH, 18 saat
MAń DL, 4 Fh
INT 10 saat

mov CS: waqıt, 20


jmp baslaw
tiykarǵı endp
; Qosımsha taymerini úzilis menen ishlov beretuǵın,
; sekundına 18, 2 ret aktivlestirilgen
new_08 h proc
AX-ni basıw ; Isletilingen ekewin saqlań
basımdı jıljıtıw ; registr isleytuǵınsında
dec CS:waqıt; waqıt aralıǵınıń qısqarıwı
jnz outint; Ele 0 emes, úzilisten shıǵıw
; waqıt ketekshesiniń quramı 0 ge kemeydi, programmanı almastırıwdı ámelge asırıń
mov BP, SP; BP = stackning ámeldegi joqarı bólegi
mov AX, ofset fın; Ótiw noqatı ofset
mov [BP+4], AX; / IP ornına onı stekga suring
mov AX, seg fın; /segmentga ótiw noqatı
mov [BP+6], AX; / CS ornına onı stekga suring
shıǵıw : mov AL, 20 h; / Controllerga EOI buyrıǵı
20 saat sırtda, AL; / toqtatadı
MAń AX, 0600 h; AH=06 (aylandırıw ), AL=00 (tolıq ekran )
MAń BH, 07; normal atribut
MAń CX, 0000; joqarı shep pozitsiya
MAń DX, 184 Fh; tómengi oń pozitsiya
INT 10 saat ; basqarıwdı BIOS-ga ótkeriń
MAń AH, 02; funkciya nomeri
MAń BH, 00; bet nomeri
MAń DH, 00; qatar nomeri
MAń DL, 00; ústin nomeri
INT 10 saat ; kursordı ornatıw
Download 34.76 Kb.

Do'stlaringiz bilan baham:




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling