Asamblator de nivel scăzut de programare Movi. Asamblator de programare limbaj

Asamblator de nivel scăzut de programare Movi. Asamblator de programare limbaj


Să începem cu terminologia.

Codul mașinii- Un sistem de comenzi pentru o anumită mașină de calcul (procesor), care este interpretat direct de procesor. Comanda, de regulă, este un număr întreg care este scris în registrul procesorului. Procesorul citește numărul și următoarea operație care corespunde comenzii. Acest lucru este descris în mod popular în cartea Cum să devii programator.

Programare limbaj de nivel scăzut(programare de calitate scăzută) – programare la nivel scăzut, cât mai apropiată de programarea în coduri de mașină. Spre deosebire de codurile de mașină, în limbile de nivel scăzut, comanda skin este indicată nu printr-un număr, ci printr-un nume de comandă scurtat (mnemonice). De exemplu, comanda ADD este prescurtarea cuvântului ADDITION. Prin urmare, utilizarea unui limbaj de nivel scăzut va facilita scrierea și citirea programelor (aliniate cu programarea codului mașinii). Limbajul de nivel scăzut este legat de un anumit procesor. De exemplu, dacă ați scris un program de nivel scăzut pentru un procesor PIC, s-ar putea să vă întrebați de ce nu va funcționa cu un procesor AVR.

Programare limbaj de nivel înalt– această programare este cât se poate de apropiată de limba umană (numiți-o engleza, dar și programarea limbajului pe limbi naționale, de exemplu, limba 1C a fost fondată de limba rusă). Un limbaj de nivel înalt practic nu este legat nici de un anumit procesor, nici de un sistem de operare (deoarece anumite directive nu sunt acceptate).

Limbajul asamblator– valoarea programării limbajului de calitate scăzută, pe care o utilizați pentru a vă scrie programele. Procesorul de piele are propriul limbaj de asamblare.

asamblator– acesta este un program special care transformă (compilează) textele de ieșire ale programului dvs., scrise în asamblator, din fișierul care este compilat (fișierul cu Extensii EXE sau COM). Mai exact, pentru a crea un fișier care să fie compilat, aveți nevoie de programe suplimentare, și nu doar de asamblare. Ale despre asta mai târziu...

Cel mai obișnuit se spune „asambler”, dar ei spun „limbajul asamblatorului”. Acum știi că acestea sunt discursuri diferite și că a vorbi așa nu este în întregime corect. Vreau să înțeleg toate programele pentru tine.

IMPORTANT!
Pe lângă limbaje de nivel înalt, cum ar fi Pascal, BASIC etc., SKIN ASSEMBLER are propriul său limbaj de asamblare. Această regulă diferențiază în mod fundamental limbajul asamblatorului de limbile de nivel înalt. Textele de ieșire ale programelor (sau pur și simplu „ieșiri”), scrise de propriul meu rang înalt, pot fi chiar compilate de diferite compilatoare pentru diferite procesoare și diferite sisteme de operare. Cu ieșirile de asamblare, munca va fi mult mai complexă. Desigur, această diferență poate să nu fie semnificativă pentru diferiți asamblatori destinati procesoarelor noi. Aceasta înseamnă că pentru PROCESORUL SKIN aveți nevoie de propriul dvs. asamblator și propriul dvs. asamblator. În sensul căruia este mult mai simplu să programezi limbaj de nivel înalt. Trebuie să plătești pentru tot. În cazul discursurilor de nivel înalt, este posibil să întâlnim astfel de discursuri precum o dimensiune mai mare a fișierului, care este salvat, un cod de viteză mai gros etc.


Această carte vorbește doar despre programarea pentru calculatoare cu procesoare Intel (sau alte nebunești). Pentru a verifica practic punctele din carte, aveți nevoie de următoarele programe (sau ați dori să faceți unele dintre ele):

  1. . Program bun, în special pentru începători. Include un editor de cod de ieșire și multe alte cuvinte utile. Funcționează cu Windows, dar programele sunt scrise sub DOS. Păcat, programul costă bănuți (tot așa))). Detalii despre minuni. pe site-ul http://www.emu8086.com.
  2. - Turbo Assembler de la Borland. Puteți crea programe precum DOS și Windows. Același cost de bănuți și în Narazi Nu mai este suportat (nu există aceeași companie Borland). Și vzagali, discursul este bun.
  3. - Asamblator Microsoft(descifrat ca MACRO assembler, și nu Microsoft Assembler, așa cum cred mulți neinițiați). Probabil cel mai popular asamblator pentru procesoare Intel. Rămâneți pe fază până acum. Mintal program fără costuri. Deci, dacă îl cumpărați bine, atunci veți merita bănuți. Ale von este disponibil gratuit pentru abonații MSDN inițiali și este inclus în pachetul software Studio vizual Vedere de la Microsoft.
  4. – asamblator produs de Watcom. Ca toate celelalte, există avantaje și neajunsuri.
  5. - Există posibilități modeste, dar este un mare plus - să intri în setul standard de Windows. Căutați-l în folderul WINDOWS\COMMAND sau WINDOWS\SYSTEM32. Dacă nu știți, atunci în alte directoare WINDOWS.
  6. Bazhano este și mamă. Nu începe și dosivsky manager de fișiere de exemplu, Volkov Commander (VC) sau Norton Commander (NC). Cu ajutorul lor, puteți privi și codurile hexazecimale ale fișierului, dar nu îl puteți edita. Există o mulțime de șaisprezece editori fără costuri pe Internet. Axa una dintre ele: McAfee FileInsight v2.1. Acest editor poate fi folosit pentru a lucra cu textele de ieșire ale programului. Cu toate acestea, ar fi mai potrivit să lucrați cu ajutorul unui editor avansat:
  7. Editor de text. Necesar pentru scrierea textelor programului de ieșire. pot să vă mulțumesc editor fără pisici PSPad, care acceptă programare non-personală, inclusiv limbajul de asamblare.
Toate prezentările din această carte de programe (și programe de aplicație) au fost verificate din punct de vedere practic. Și aceste programe în sine sunt utilizate pentru implementarea programelor de aplicație furnizate în această carte.

Și, de asemenea, codul de ieșire scris, de exemplu, pentru Emu8086, este ușor diferit de codul scris, de exemplu, pentru TASM. Aceste sarcini vor fi ajustate.

Majoritatea programelor create de carte au fost scrise pentru. În primul rând, pentru că acest asamblator este cel mai popular și încă este promovat. În caz contrar, îl puteți obține de la MSDN și din pachetul software Visual Studio de la Microsoft. Ei bine, și în al treilea rând, pentru că sunt norocosul proprietar al unei copii licențiate a MASM.

Dacă aveți deja un asamblator care nu a ajuns în partea de sus a listei, atunci va trebui să vă dați seama singur sintaxa acestuia și să citiți instrucțiunile codului, astfel încât să puteți învăța să lucrați corect cu el. Cu toate acestea, recomandările nesolicitate conținute în această carte vor fi valabile pentru orice (sau poate pentru orice) asamblatori.

Instituirea bugetului de stat

Articol: informatică

Eseu

Subiect: Istoria programării noastre.

Asamblator.

Vikonav: elev în clasa a VIII-a,

gimnaziu nr 1467

Sorokin Mykola

Kerivnyk: Tsvetkova Oksana Mihailivna.

introduce

Din acest motiv, avem o obligație mai mare de a plăti pentru primul instrument portabil de vindecare – „Rakhunki”.

Pe stiuletul secolului al XVII-lea, cererea de impozite a crescut. era nevoie de facilități medicale, renovări de clădiri mare ceremonie calculați cu mare precizie. La 1642 r. Matematicianul francez Pascal a proiectat prima mașină de vindecare mecanică - „Pascalina”.

În 1830 r. Omul de știință englez Babage a introdus ideea primei mașini de calcul programate (motor analitic). Au fost aduse în acțiune prin puterea unui pariu, iar programele au fost codificate pe cărți perforate. Nu a fost posibilă implementarea acestei idei, deoarece a fost imposibilă fabricarea pieselor mașinii.

Primul care a implementat ideea cărților perforate Holelit. Am construit o mașină pentru procesarea rezultatelor recensământului populației. În mașina dumneavoastră, ați lăsat deja instalația electrică pentru reparații. În 1930 Opinia americană Analizorul diferenţial al lui Bush Vinay este primul computer din lume.

The Great Post a oferit un prieten pentru dezvoltarea tehnologiei de calcul razboi mondial. Viyskov avea nevoie de un computer, care a devenit „Mark-1” - primul din lume calculator digital, Vinaideniya născută în 1944 Profesorul Aiknam. Echipamentul nou a fost conectat la semnale electrice și acționări mecanice. Dimensiuni: 15 X 2,5 m, 750.000 piese. Ar putea înmulți două numere de 23 de cifre în 4 secunde.

Născut în 1946 Un grup de ingineri a creat primul calculator electronic- "Eniak." Cod de viteză: 5000 de operații de adunare și 300 de operații de înmulțire pe secundă. Dimensiuni: 30 m., volum – 85 mc., greutate – 30 tone. Au fost consumate 18.000 de mâncat. lămpile

Prima mașină cu program cronic - „Edsak” - a fost creată în 1949 și în 1951. au construit masina"

Univak este primul computer serial cu un program cronic. Acest aparat avea inițial o bandă magnetică pentru înregistrarea și salvarea informațiilor

Care este nevoie de programare în limbaj?

Calculatoarele au apărut în lumea noastră cu mult timp în urmă, dar abia de curând au început să joace în colțurile bogate ale vieții umane. În urmă cu zece ani, era rar să existe vreun fel de computer personal - mirosea, dar era și mai scump și nicio companie nu putea pune un computer în birou. Ce zici acum? Acum fiecare a treia persoană din casa lor are un computer, ceea ce a afectat deja profund viețile gospodarului obișnuit.

Însăși ideea de a crea inteligență artificială a apărut cu mult timp în urmă, dar abia în secolul al XX-lea a început să dispară. Au apărut pentru prima dată calculatoare grozave, care erau adesea de dimensiunea unui stand maiestuos. Apariția unor astfel de mașinațiuni, după cum înțelegeți voi înșivă, a fost foarte ușoară. Ce faci? Deși lumea nu stă singură în centrul dezvoltării evolutive, oamenii s-au schimbat, familiile lor s-au schimbat și, în același timp, tehnologiile în sine s-au schimbat, iar aceste lucruri au devenit mai sofisticate. Iar computerele au devenit mai mici până când au ajuns la dimensiunile actuale.

De asemenea, toți oamenii trebuie să lucreze cu o mașină - și cine are nevoie de o mașină neacoperită? Încă de la început, oamenii și-au desfășurat munca cu computerele folosind carduri perforate. Cărțile perforate sunt cărți mici cu rânduri de numere imprimate pe ele. Computerul avea o „unitate de disc” în care erau introduse cardurile în sine și, cu ajutorul unor capete mici, cifrele erau așezate pe numere. Puțini oameni au fost mulțumiți de acest tip de umplutură - chiar dacă nu era foarte greu să purtați cu dvs. cărți perforate, acestea trebuiau aruncate după o singură greșeală.

Dar, ca și alte tehnologii, procesul de combinare a oamenilor cu inteligența artificială a cunoscut unele schimbări. Acum oamenii își petrec timpul pe computer folosind tastatura și ursul. Acest lucru este ușor de făcut și uneori aduce satisfacție oamenilor.

Mașinile de calcul moderne sunt una dintre cele mai semnificative realizări ale minții umane, iar impactul acestuia asupra dezvoltării progresului științific și tehnologic este important de reevaluat. Zonele de stagnare a MOE sunt în continuă expansiune. Acest lucru este semnificativ din cauza extinderii MOE personale, și în special microEOM.

Într-o oră din anii 50, EOM digital s-a transformat dintr-o grămadă „încântătoare”, dar în același timp scumpă, unică și supraîncălzită. tuburi electronice, miezuri conductoare și magnetice într-o mașină mică - un computer personal - care constă din milioane de dispozitive conductoare critice, care sunt ambalate în cutii mici de plastic.

Ca urmare a acestei reinvenții, computerele au început să stagneze peste tot. Ei monitorizează funcționarea caselor de marcat, monitorizează funcționarea sistemelor auto, gestionează bugetul familiei sau pur și simplu acționează ca un complex respectabil... Dar aceasta este doar o mică parte din capacitățile computerelor moderne. Mai mult decât atât, progresul rapid al microelectronicii cu fir, care stă la baza tehnologiei de calcul, sugerează că nivelul actual al ambelor computere în sine și zonele lor de stagnare este și mai slab sub ambele ceea ce va urma în viitor.

Calculatoarele încep să se relaționeze cu viețile ființelor umane. Dacă nu vrei să fii trimis la medic, atunci, mergând acolo, regăsește-te în lume, în care computerele zac în viața oamenilor (pentru unii dintre medicii actuali, vei găsi computere pe internet mai mult decât oamenii înșiși antrenează, iar această relație va crește de-a lungul anilor, ținând cont de numărul de pacienți). Dezvoltarea treptată a tehnologiei informatice se dorește a fi introdusă în programele de învățământ școlar ca materie obligatorie, astfel încât copilul să poată ajunge deja la vârsta fragedă de cunoaștere a potențialului computerelor. Și în școlile propriu-zise (în principal la intrarea în America), multe calculatoare au fost deja instalate pentru a menține documentația de bază, iar acum sunt folosite în predarea multor discipline de bază, care nu au o legătură directă cu tehnologia de calcul. Școala primară de informatică oferă cursuri de matematică și fizică elementară. Microprocesoarele în sine au devenit nu mai puțin răspândite și chiar și computerele pot fi găsite în sobele de bucătărie, mașinile de spălat vase și aparatele de uz casnic.

Jocurile inspirate de microprocesoare au devenit și mai răspândite. Astăzi, industria jocurilor de noroc ocupă o cotă și mai mare de piață, deoarece copiii continuă să se lupte. Dar este prea greu pentru corpul unui copil să stea ore în șir în fața unui monitor și să apese foarte tare tastele, astfel încât copilul să își dezvolte propria boală - dacă un copil are un singur lucru în minte - un computer, si mai mult nimic. Copiii cu o astfel de boală pot deveni agresivi de îndată ce accesul lor la jocuri începe să fie restricționat. Astfel de copii știu imediat cât de important este să lucreze fără a merge la computer și ce nu le pasă - așa că încep să-și abandoneze învățarea, ceea ce duce la moșteniri nu foarte bune.

Acum computerele pot discerne clar diferite fraze, cuvinte, pot reda muzică etc. Oamenii pot acum să noteze orice cuvinte, discursuri și să pună compoziții muzicale pe computerul lor, astfel încât computerul să le poată afișa în orice moment.

De asemenea, computerele din clădiri percep semnale ca semnale și trebuie convertite grozav robot Conform decriptării, se pare că forma spilkuvannya este instalată ferm. Chiar și aceeași comandă poate fi auzită de una și aceeași persoană în mai multe moduri diferite și tot timpul aceeași comandă sună diferit; și în lumea întreagă sunt miliarde de oameni și fiecare om este imputat chiar la comanda colcomei. în diverse feluri. Tom intră ora daneză Este ușor să creezi un computer care să ajute vocea oamenilor. Multe companii se confruntă cu aceste probleme. Unele companii cheltuiesc o sumă mică de bani pe drum până în acest moment, dar totuși, banii sunt încă necunoscuți.

Această problemă a recunoașterii limbajului face parte dintr-o problemă mai largă numită recunoaștere a modelelor. Dacă computerele pot recunoaște mai bine modelele, vor fi capabile să analizeze razele X și amprentele digitale, precum și să identifice multe altele. funcții de bază(Sunt deja ocupați cu sortarea frunzelor împuțite). Este important de menționat că creierul uman se descurcă în mod miraculos cu recunoașterea imaginilor, pentru detectarea diferitelor zgomote și crearea și investigarea în această gaură, direct la apropierea diferitelor capacități ale computerului de clădire. ființele umane sunt încă promițătoare. Dacă computerele pot recunoaște în mod clar și pot răspunde gândurilor în formă verbală, atunci poate că va fi posibil să introduceți programe și date în ele. Este mai bine să-i spuneți computerului că este vinovat de lucru și să-i ascultați gândurile din minte, mai ales ca să se vadă adânciturile sale, să nu depărtăm gunoiul etc.

Dormindu-vă cu computerele și permițându-vă să uitați de programarea lor, nu va exista nicio soluție la problema care va cauza probleme cu ele. Majoritatea oamenilor folosesc limba engleză în aceste scopuri, dar îi lipsește acuratețea și caracterul lipsit de ambiguitate necesare din punctul de vedere al unui computer și al programelor care sunt implicate în ea. Această galusa are deja multă bogăție, dar încă trebuie să câștige mult.

Adesea spunem că alți oameni nu ne înțeleg; ale poki y sami calculatoare personale Nu se poate să ne înțelegem până la sfârșit, ci să înțelegem ce vrem să spunem din proverb. Și de-a lungul unui timp vom fi mulțumiți de astfel de mașini, deoarece pur și simplu ne urmăm marcajele, terminându-le „cu precizie la milimetru”.

Pentru a combina cu computerele, chiar și folosind carduri perforate, alte programe au folosit programare în limbaj, chiar folosind Assembler modern. Acesta este același limbaj, în care toate comenzile care ajung la computer sunt scrise folosind cuvinte și pictograme speciale (?).

În zilele noastre, este posibil să folosiți programarea limbajului la un nivel superior, pentru a lucra cu unele dintre ele mult mai ușor, mai ales cu Assembler, deoarece în ele un cuvânt poate înlocui mai multe comenzi. Și înainte de asta, cea mai mare parte a programării noastre de nivel înalt în numele comenzilor care sunt vikoryst atunci când sunt combinate cu un computer, echivalente vikorist, nume pe Engleză ceea ce, firesc, ușurează programarea. Cu toate acestea, există un minus în ele în comparație cu limbile similare cu Assembler - în Assembler, toate comenzile care sunt asociate cu programe sunt distribuite clar în memoria computerului, ocupând loc liber astfel, jucandu-se semnificativ cu suedezitatea; Și un limbaj de nivel înalt nu va putea găzdui acest tip de program. Și în lumea noastră de astăzi, toată lumea știe că: „O oră este o mișcare”.

Deși computerul încă face compromisuri cu oamenii în ceea ce privește activitatea creativă, mașina nu este încă dotată cu astfel de caracteristici care l-ar putea ajuta să creeze ceva nou care nu a fost introdus în memoria sa de către oamenii înșiși.

Majoritatea oamenilor pot considera termenii „mașină de calcul” și „tehnologie de calcul” ca fiind sinonimi și să le asocieze cu posesiuni fizice, de exemplu, un microprocesor, un display, discuri, imprimante și alte dispozitive care câștigă respectul oamenilor atunci când folosesc un computer. Deși aceste dispozitive sunt importante, duhoarea este încă „vârful aisbergului”. La stadiul de cob calculator zilnic Putem face acest lucru nu cu computerul în sine, ci cu un set de reguli, numite reguli de programare, care indică acțiuni care sunt responsabile de distrugerea computerului. Sens important Programarea limbajului este întărită de faptul că mașina de calcul în sine poate fi privită ca un interpret hardware al unui anumit limbaj, care se numește limbaj mașină. Pentru a asigura o funcționare robotică eficientă, piesele mașinii sunt împărțite în părți care devin dificil de rezolvat de către oameni. Majoritatea proprietarilor de afaceri nu înțeleg aceste neconcordanțe, din cauza evidenței multora dintre mașinile create pentru a scurta legătura dintre om și mașină. Flexibilitatea mașinii de calcul se reflectă în faptul că poate folosi programe de traducere (numite în general compilatoare sau interpreți) pentru a converti programe orientate pe computer în programe de calculator. (Aveți propriile programe, jocuri, shell-uri de sistem și nimic altceva, cum să obțineți un simplu traducător de programe, care se află în lumea muncii, iar jocul urmează ajutorul comenzilor sale către „calculatorul din interior și din exterior”, difuzându-și comenzile în filmele din sala mașinilor. Totul este afișat în timp real.)

Filme de mașină, filme de asamblare și

Limba înalt Rivne

Programele sunt scrise în diferite limbi, cum ar fi cele care afectează direct computerul și altele care necesită o etapă intermediară de traducere. Sute de cuvinte reale pot fi împărțite în trei tipuri generale:

1. Filme cu mașini

2. Limbajul de asamblare

3. Limbaj de nivel înalt.

Fiecare computer își poate înțelege propriul limbaj de mașină, care este limbajul natural al unui anumit computer. Este strâns tricotat cu această parte hardware. Limbajul mașină este de obicei compus din secvențe de numere (inclusiv zerouri și unu), precum și comenzi pentru executarea unor operații elementare individuale. Limbajele mașinii sunt depuse de mașină, atunci. Un anumit limbaj de mașină poate fi vicorizat doar în funcție de tipul de computer pe care îl utilizați. Limbajul mașinii este în mod inexplicabil corupt de limbajul uman.

Odată cu extinderea computerelor, a devenit evident că programarea limbajelor informatice perturba dezvoltarea tehnologiei informatice, chiar mai mult și pentru majoritatea programatorilor, munca nesustenabilă. În loc de succesiunea de numere, care sunt înțelese clar de computer, programele pentru reprezentarea operațiilor elementare au început să fie formate din abrevieri în limba engleză, care au stat la baza limbajului de asamblare. Pentru re-crearea programelor scrise în astfel de limbi, au apelat programe de traducere asamblatori. Transformarea a fost efectuată folosind aceeași viteză ca și codurile tradiționale de viteză ale computerului. Odată cu apariția limbajului de asamblare, utilizarea computerelor s-a extins semnificativ, dar a fost încă necesar să scrieți un număr mare de instrucțiuni pentru a finaliza cele mai simple sarcini. Pentru a accelera procesul de programare, limbajele de nivel înalt au fost defalcate, astfel încât un operator poate fi scris în toate. Programele pentru conversia secvenței operatorilor de limbaj de nivel înalt în limbaj mașină sunt numite compilatoare. În limbile de nivel înalt, instrucțiunile scrise de programatori arată cel mai adesea ca textul original în limba engleză datorită utilizării simbolurilor matematice formale.

Unul dintre elementele mobile de nivel înalt este programarea mobilă a lui Z.

Istoria filmului C

Limbajul își are rădăcinile din două limbi, BCPL și B. În 1967, Martin Richards a dezvoltat BCPL ca limbaj pentru scrierea de software de sistem și compilatoare. În 1970, Ken Thompson a fost învingător pentru creație versiuni anterioare OS UNIX pe un computer DEC PDP-7. La fel ca BCPL, deci în cazul schimbării, acestea nu au fost împărțite în valori tipice ale datelor, un cuvânt a ocupat un cuvânt în memorie, iar diversitatea numerelor întregi și reale a căzut în întregime pe umerii programatorului.

Limbajul a fost dezvoltat (pe baza B) de Dennis Richie de la Bell Laboratories și a fost implementat pentru prima dată în 1972 pe un computer DEC PDP-11. Popularitate După ce am ales sistemul de operare UNIX. Astăzi, aproape toate sistemele de operare majore sunt scrise în C și/sau C++. După două decenii, este evident pe majoritatea computerelor. Ar trebui să fie depozitat în partea hardware.

De exemplu, anii 70 s-au transformat în ceea ce numim „C tradițional”. În 1983, Comitetul pentru standarde naționale americane a stabilit utilizarea computerelor și procesarea informațiilor un singur standard astea sunt filmele.

Visnovok

Din acest eseu, se poate obține o idee vagă că viața este complet pătrunsă de tehnologii informatice. De îndată ce trec câteva ore, computerele stau în apropiere, necesitând prezența oamenilor. Dar fără cântece, a ști cum să folosești un computer va fi imposibil. Și pentru a o practica pe tine însuți, trebuie să o cunoști mov-mova programare

Lista Wikilistelor

1. Tom Swan „Mastering Turbo Assembler”, Dialektika, Kiev, 1996 r.

2. Berezin B.I., Berezin S.B. „Programarea cursurilor Pământului”, Dialog MIFI, Moscova, 1996.

3. Prelegeri susținute de Komleva Nina Quiz pe tema „Programarea filmelor și metodele de difuzare”

4.H.M.Deitel, Cum se programează în Z, Vidavnitstvo Binom, Moscova, 2000

Este ușor să-ți trimiți banii către robot la bază. Vikorist formularul de mai jos

Studenții, studenții postuniversitari, tinerii, care au o bază solidă de cunoștințe în noul lor loc de muncă, vă vor fi și mai recunoscători.

asamblator de programare a limbajului

introduce

Asamblator de programare limbaj

Istoria filmului

Programat de asamblatorul meu

Avantajele și neajunsurile limbii

Turbo Assembler (TASM)

Sistem de redirecționare a programului

Mecanism de întrerupere

Funcționarea mecanismului de întrerupere

Visnovok

Lista de referinte

supliment

introduce

Progresul tehnologiilor informatice a însemnat procesul de apariție a unor noi sisteme de semne diferite pentru algoritmii de înregistrare - programarea mov. Nu există programare umană, dar folosim limbajul de asamblare.

Indiferent de faptul că în acest moment un programator poate stăpâni o mare parte din programarea noastră, care este mult mai simplă decât Assembler, cunoașterea Assembler și programarea în acest fel nu va fi deloc interesantă. Acest fapt este confirmat de următoarele argumente:

1. Cu alte limbaje de programare, nu poți scrie niciodată un program care să-i mulțumească pe toți ceilalți. Și în astfel de situații este complet imposibil. Puteți scrie orice program în limbajul Assembler.

2. Unele calculatoare de programare de nivel înalt nu pot oferi viteza necesară. Iar adăugarea de creații în Assembly are întotdeauna un ritm rapid.

3. Mărimea completărilor create în limbi de nivel înalt este mult mai mare decât cea a adăugărilor inferioare create în Assembler.

4. Language Assembler vă permite să lucrați direct cu caracteristicile hardware, ceea ce în unele cazuri oferă programatorului un avantaj și rezultatul dorit. Adăugarea unui limbaj de nivel înalt funcționează cu dispozitivele hardware prin module scrise, pentru a nu permite programatorului să schimbe nimic și, prin urmare, să respingă rezultatul dorit.

5. Cunoașterea asamblatorului de limbaje oferă un avantaj mai mare față de cei care programează doar limbaje de nivel înalt. Un asamblator experimentat cunoaște atât structura computerului, cât și structura dispozitivelor hardware.

Meta-roboți:

descrie limbajul de programare Assembler;

dezvăluie avantajele și neajunsurile limbii;

descrie Turbo Assembler;

familiarizează-te cu mecanismul de întrerupere.

Asamblator de programare limbaj

Istoria asamblatorului

Programele erau deja familiarizate cu conceptele de subprograme: Grace Hopper și colegii ei au înființat subprograme pe Harvard Mark-1 în timpul orei Another Light War, iar subprogramul skin și-a dezvoltat propria sarcină specifică.

Subprogramele sunt fragmente independente ale unui program de calculator cu care pot fi analizate și interacționate programul principalîntr-un moment de necesitate. De exemplu, o rutină poate calcula rădăcina pătrată, iar alta poate forța computerul să afișeze litera pe afișaj.

Primele programe pot crea apoi caiete cu o înregistrare a celor mai comune subprograme, astfel încât să nu fie nevoie să fie adăugate din nou de fiecare dată. Problema constă în faptul că adresele instrucțiunilor și subprogramelor din memorie au fost modificate în funcție de locația lor în rest. Configurarea programului pe sistemul de memorie a necesitat, evident, automatizare, iar aceasta a fost mai întâi transferată către Edsaka. Programelor Cambridge li sa cerut să scrie un set de subprograme unificate care au creat biblioteca. După aceea, a fost suficient să introduceți doar o comandă scurtă - iar computerul a trecut prin întregul proces de configurare și plasare a subprogramelor în mijlocul programelor.

Maurice Wilkes a numit schema mnemonică pentru Edsak și biblioteca de subprograme un sistem de asamblare (sistem de asamblare în engleză - de la cuvântul „assembler”), din care a colectat secvențe de subprograme.

Assembler (din engleza assembler - assembler) - program de calculator, un compilator al textului de ieșire al unui program scris în limbaj de asamblare, un program de mașină.

Limba rusă de asamblare este adesea numită pur și simplu asamblator. Un traducător din acest motiv poate fi numit pur și simplu un asamblator, ceea ce, în anumite cazuri, poate crea confuzie. Procesul de traducere a limbajului de asamblare în codul mașinii este adesea numit asamblare.

Folosirea termenului „limbaj de asamblare” poate evoca o idee falsă despre întemeierea unui singur limbaj de nivel scăzut, sau s-ar dori un standard pentru un astfel de limbaj care nu corespunde absolut cu adevărul. Prin urmare, atunci când este numit limba în care a fost scris program specific, este important să clarificăm pentru ce arhitectură este destinată și în ce dialect a fost scrisă limba.

Programat de asamblatorul meu

Assembler este un limbaj de programare de nivel scăzut, care este un format pentru înregistrarea comenzilor mașinii, ușor de utilizat de către oameni.

Comenzile asamblatorului limbajului una câte una corespund comenzilor procesorului și, de fapt, scrie comenzile și argumentele lor în formă simbolică manuală. Limbajul de asamblare oferă, de asemenea, abstracții de bază ale programului: legarea părților unui program și a datelor prin etichete cu nume simbolice și directive.

Directivele de asamblare permit includerea blocurilor de date în program (fie descrise explicit, fie tratate într-un fișier); repetă fragmentul cântecului de câte ori este indicat; compilați un fragment în spatele creierului; setați adresa fragmentului wiki, modificați valorile notelor în procesul de compilare; Vykoristuvat macro-valori cu parametri și în.

Fiecare model de procesor, în principiu, are propriul său set de comenzi și un limbaj (sau dialect) similar al asamblatorului.

Programele de asamblare pot fi și mai eficiente. Cu programe, cu abilități și abilități avansate care funcționează în limbajul Assembler, creați un program mai compact și cu cod de mare viteză. Acest lucru este practic pentru toate programele mici și mijlocii. Din păcate, pe măsură ce lumea crește în dimensiune, programele Assembler își irosesc unele dintre avantajele. Acest lucru se realizează prin atenția la detalii cerută într-un program de asamblare. După cum știți, limbajul Assembler vă impresionează planificarea skinului computerului. Pentru programele mici, este posibilă optimizarea muncii robotului cu programe bazate pe hardware. În cazul unor programe grozave, lipsa detaliilor vă poate permite să lucrați eficient la programul în sine, iar alte componente ale programului pot părea și mai dezgustătoare. Incredibil, programarea mea Assembler răspunde nevoilor programului de piele.

Programul meu Assembler este și mai precis. Deoarece acest limbaj permite programului să funcționeze fără probleme cu toate caracteristicile hardware, programul de asamblare poate funcționa pe lucruri care nu sunt disponibile pentru alte programe. Nu există nicio îndoială că în dispozitivele I/O programate care necesită control asupra mai multor biți de registru din dispozitiv, programarea în Assembler este singura alegere potrivită.

Aparent, eficiența și acuratețea limbajului Assembler oferă cântecului avantajele sale. Cu toate acestea, acest nivel de detaliu creează mai multe probleme. Ce zici să alegi să programezi limbajul Assembler?

Desigur, sunteți obligat să utilizați programe în limbaj de asamblare dacă nu există altă modalitate de a scrie programul. De exemplu, programele IBM au scris toate programele pentru controlul dispozitivelor de intrare-ieșire ale PC-ului IBM utilizând proceduri de asamblare. Pentru a controla dispozitivele de intrare-ieșire și sistemele de interconectare, a fost necesară acuratețea limbajului de asamblare, care nu poate fi asigurată de niciun alt limbaj de programare. În mod similar, procedurile de diagnosticare au fost scrise de IBM Assembler care pot verifica pielea echipamentului.

Limbajul asamblatorului este necesar și în aceste situații, dacă caracteristicile de funcționare ale programului sunt importante. Acesta poate fi momentul Vikonannya sau dimensiunea finală a programului. Biblioteca Fortran de proceduri matematice - Exemplu de programe care beneficiază caracteristici bune, de îndată ce vine momentul, și dimensiunea. Procedurile matematice, adesea în programele Fortran, pot ocupa cel mai mic loc. În plus, aceste proceduri sunt similare cu funcțiile matematice dintr-un program Fortran și sunt adesea revizuite. Doamne, mirosul este pe cale să dispară.

Ce fel de program nu este potrivit pentru limbajul de asamblare? Desigur, puteți scrie un program în orice mod doriți, program grozav Este mai bine să exersați într-un limbaj de nivel înalt, cum ar fi C și C#. Acești oameni vă permit să vă concentrați asupra propriei probleme. Nu trebuie să vă ocupați de complexitățile hardware și procesor. Oamenii de rang înalt vă permit să faceți un pas înapoi și să creșteți pădure în spatele copacilor.

Când este programat în limbajul Assembler și numai prin programe de scriere la acest nivel de detaliu, puteți înțelege cum funcționează mașina la cel mai de jos nivel. Dacă vrei să știi despre toate, trebuie să fii familiarizat cu asamblatorul meu. Singura modalitate de a realiza acest lucru este să îmi scriu programul.

Cele mai populare pachete astăzi sunt pachetele Turbo Assembler (TASM) de la Borland, Macro Assembler pentru Windows32 (MASM32), creațiile Hutch (bazate pe vechiul MASM de la Microsoft), precum și Flat Assembler (FASM) și Netwide Assembler (NASM) , etc dezvoltate de Echipa de Dezvoltare NASM. Toate aceste asamblatoare oferă o gamă largă de posibilități pentru programator. Acolo puteți scrie programe atât sub DOS, cât și sub Windows.

De asemenea, este adevărat că nu există alte tipuri de asamblare, dintre care multe sunt în creștere. De exemplu: CodeX Assembler, Gema Assembler, Light Macro Assembler (LASM), Lazy Assembler (LZASM), Table Driven Assembler (TDASM), NewBasic ++ Assembler (NBASM), TMA Macro Assembler etc.

Avantajele și neajunsurile limbii

Avantaje

Un programator maestru, de regulă, dorește să scrie un program mai eficient în limbaj de asamblare, chiar dacă este generat de traducători de limbaje de programare de nivel înalt, în timp ce programele în limbaj de asamblare se caracterizează printr-un număr mai mic de comenzi și un număr mai mic. de instructiuni.pentru o ghicitoare care iti permite sa cresti fluiditatea si sa schimbi dimensiunea programelor.

Securitate maxim vikoristannya capabilități specifice ale unei anumite platforme, care vă permit să creați programe mai eficiente cu mai puțină risipă de resurse.

Când este programat în limbaj de asamblare, este posibil accesul direct la hardware, inclusiv porturile I/O, registrele procesorului etc.

Limbajul de asamblare va fi folosit pentru a crea driverele și nucleele sistemului de operare.

Limbajul de asamblare este folosit pentru crearea firmware-ului BIOS.

Cu ajutorul asamblatorului de limbaj, sunt create compilatoare și interpreți de nivel înalt și sunt implementate o varietate de platforme.

Este posibil să urmăriți alte programe cu același cod de ieșire folosind un dezasamblator suplimentar.

Nedoliky

Principalul avantaj al asamblatorului este practic complet anulat de optimizarea la nivel înalt în compilatoarele actuale de nivel înalt.

Datorită orientării lor pe mașină (nivelul „jos”), oamenii din programarea la nivel înalt sunt mai greu de citit și de înțeles programul, care constă dintr-o mulțime de elemente „fragile” - comenzile mașinii, programarea și dezvoltarea sunt susceptibile să devină mai multe complex, complexitatea muncii crește, iar probabilitatea de a repara crește . Complexitatea structurii articulațiilor crește semnificativ.

De regulă, mai puține biblioteci disponibile sunt în concordanță cu programarea actuală a limbajului industrial.

Portabilitatea zilnică a programelor pe computere cu o arhitectură și un sistem de comandă diferit (cu excepția celor cu comandă dublă).

Asamblator Turbo (TASM)

Turbo Assembler de la Borland este un asamblator de mare randament, cu capacitatea de a executa comenzi de mare viteză, viteză de asamblare de până la 48.000 de rânduri pe linie (pe un computer IBM PS/2, model 60), combinat cu un asamblator macro de la Microsoft MASM și suplimentar Este posibil să se utilizeze modul de sintaxă extinsă. Indiferent de cunoștințele dvs. de programare, asigurați-vă că apreciați caracteristicile speciale și alte caracteristici reduse care ușurează programarea în asamblare.

Printre astfel de caracteristici, puteți înțelege pe scurt următoarele:

Suport complet pentru procesorul 80386;

verificarea tipului sintactic a fost îmbunătățită;

directive simplificate de atribuire a segmentelor;

management îmbunătățit al listării;

extinderea instrucțiunilor POP și PUSH;

extensii ale operatorului CALL cu argumente și un parametru de limbaj neobligatoriu;

etichete locale;

identificatori locali în stivă și argumente în proceduri;

structuri și organizare;

inserarea directivelor;

Modul QUIRK, care acceptă MASM;

Performanța îmbunătățită extern este egală cu textul de ieșire cu ajutorul unui editor Turbo suplimentar;

a fost introdus un utilitar de generare cu referințe încrucișate (TCREF);

fișiere de configurare și fișiere de comandă.

Turbo Assembler este un asamblator puternic care rulează pe o linie de comandă care preia fișierele de ieșire (fișiere cu extensia *. asm *) și creează module obiect din acestea (fișiere cu extensia *. obj *). După aceasta, puteți utiliza programul Borland TLINK linker. EXE, care oferă o mare flexibilitate de compunere, pentru compunerea modulelor obiect extrase și crearea fișierelor de compilat (fișiere cu extensia *.exe*).

Turbo Assembler de creații pentru roboți cu procesoare din seriile 80x86 și 80x87 (un set suplimentar de instrucțiuni pentru procesoarele din seria 80x86/80x87 este descris în însoțitorii Intel corespunzători).

Turbo Assembler, pe lângă suportul continuu al traducătorului Microsoft, are capabilități suplimentare, combinate într-un mod numit Ideal de către dezvoltatori. Acest mod permite programatorului începător să realizeze un stil mai simplu și mai simplu de dezvoltare a programului. Programele mai avansate scrise în limbaj de asamblare pot profita de capacitățile modului Ideal, cum ar fi adăugarea de structură și combinarea.

O caracteristică importantă a modului Ideal este necesitatea de a verifica tipurile de date, similare datelor de nivel înalt, care vă permite să identificați o mulțime de erori în etapa de difuzare. Printre multe alte avantaje importante ale modului Ideal puteți vedea:

Posibilitatea de a folosi noi nume pentru a desemna membrii diferitelor structuri;

Starea operatorilor HIGH și LOW;

Calculul anticipat al virușilor EQU;

Gestionarea corectă a segmentelor de date partajate de grup;

Directive wiki îmbunătățite;

Rozumne vikoristannya arcuri u virazakh.

Turbo Assembler transmite argumente procedurilor în limbi de nivel înalt pe cadrul stivei, împingând argumente înainte de apelarea procedurii în stivă. Procedurile scrise în limbi de nivel înalt citesc argumentele din stivă după cum este necesar. La ieșire, procedura poate elimina argumente din stivă sau poate elimina operația din procedura care iese.

În mod tradițional, pe lângă combinarea programelor scrise în C++ și asamblare, există o compilare secțională a componentelor ulterioare într-un singur fișier, care este compilat. În acest caz, puteți utiliza compilatorul Borland C++, care folosește Turbo Assembler pentru a traduce programe de asamblare.

Dezvoltarea programului Turbo Assembler include următorii pași:

etapa 1. Pregătirea textului de ieșire al programului și formatarea acestuia ca fișier text (unul sau mai multe) folosind orice editor în format DOS cu extensii *. Asm*.

a 2-a etapă. Asamblând programe din traducătorul Tasm, rezultatul este un fișier obiect cu extensii *. obj*. Dacă un program este format din mai multe fișiere (module), asamblarea acestora se realizează independent unul de celălalt. Dacă în timpul difuzării sunt detectate erori, fișierul obiect nu este creat, dar este generată o notificare despre erori. Recompensele dispar, după care difuzarea se repetă. Fișierul obiect (dublu codificat de programe) nu poate fi lansat pe computer deoarece nu conține informații despre prezența segmentelor de program în memoria computerului.

a 3-a etapă. Compoziția programelor este realizată de linker (editor de linkuri) Turbo Linker și combină modulele obiect într-un singur fișier, care este legat de adresa de pornire a programului. Fișierul formatat are extensia *. exe*. Etapele a 2-a și a 3-a indică procesul de pregătire a fișierului de program final, numit traducere.

Etapa a 4-a implică programe avansate cu ajutorul Turbo Debugger, care va fi instrumentul principal pentru formatele de comandă, codificarea acestora, precum și reprezentarea programelor variabile în memorie.

Sistem de redirecționare a programului

Una dintre funcțiile importante ale unui computer, oricărei alte mașini, este aceea că PC-ul reacționează la intrările netransmise în timpul funcționării. Această proprietate este asigurată pentru fiecare componentă specială a computerului - dispozitivul va fi întrerupt. Întreruperea permite computerului să-și întrerupă activitatea și să treacă la altul fără a fi apelată întrerupere. De exemplu, apăsarea unei taste de pe tastatură.

Prezența înainte de întrerupere rezolvă, de fapt, cea mai dificilă problemă a eficienței computerului nostru. Pe de o parte, am vrut ca computerul să fie ocupat cu munca, așa că ni s-a dat. Pe de altă parte, trebuie să răspundem la oricare dintre comenzile noastre, cum ar fi, de exemplu, folosind o tastatură suplimentară. De parcă computerul ar fi fost construit doar pentru cei care nu ar ezita să le anuleze pe cele care i-au fost atribuite anterior, el nu ar putea răspunde imediat solicitărilor noastre, fără a interfera constant cu funcționarea tastaturii. Reacționează la semnalele care sunt depășite de tastatură, precum și la alte semnale care necesită respect în momentul în care computerul este ocupat cu alte lucrări, sistemul îi permite să întrerupă.

Microprocesorul PC-ului nostru este „în mod natural” capabil să întrerupă o operațiune întreruptă și are o modalitate fiabilă de a salva munca care a fost întreruptă. Pentru care se folosește stiva de microprocesoare. Dacă există o întrerupere, o înregistrare a ceea ce a făcut computerul în acel moment este salvată pe stivă, astfel încât după terminarea întreruperii să ne putem întoarce la locul în care ne-am aflat. Aceasta este una dintre multele moduri de a îngheța stiva, dar este și cea mai importantă. Fără o stivă în care să putem stoca informații despre lucrare, ideea de întrerupere nu ar putea fi realizată.

Mecanism de întrerupere

Întreruperea - un semnal care anunță procesorul despre prezența unui fel. În acest caz, se aplică secvența curentă de comenzi și codul este transmis procesorului de întrerupere, care răspunde la cerere și o servește, după care este procesat codul de întrerupere.

Întreruperea programului – întrerupere sincronă, care se poate face într-un program cu instrucțiuni speciale suplimentare.

Pentru procesele de procesare care sunt generate asincron în raport cu execuția programelor, mecanismul de întrerupere este cel mai potrivit. Întreruperea este posibilă datorită unei situații speciale din sistem și va necesita o reacție imediată. De exemplu, sistemele bine proiectate, cu fiabilitate avansată, vor preveni întreruperile în cazul unui accident în timpul vieții pentru a stabili proceduri de înregistrare în loc de registre și RAM pe un dispozitiv magnetic, astfel încât după reînnoire să fie în viață, să îmi pot continua munca din același loc. .

Pare evident că întreruperile foarte variabile sunt posibile din mai multe motive. Prin urmare, redarea este considerată nu doar așa: i se asociază un număr, care se numește un număr de tipul de redare sau pur și simplu un număr de redare. Numărul individual al întreruperii este asociat unul cu celălalt. Sistemul este capabil să recunoască, când a avut loc o întrerupere, ce număr a fost introdus și începe o procedură corespunzătoare numărului.

Programele pot apela ele însele pentru întreruperi de la un anumit număr. În acest scop, utilizați comanda INT. Aceasta este ceea ce se numește întrerupere de program. Întreruperile programelor sunt asincrone, iar fragmentele interacționează cu programele.

Pe procesoarele cu arhitectură x86, pentru a solicita în mod explicit o întrerupere sincronă, utilizați instrucțiunea Int, al cărei argument este numărul de întrerupere (de la 0 la 255). În calculatoarele IBM PC, procesarea operațiunilor este efectuată de rutinele BIOS, care sunt stocate în ROM și servesc drept interfață pentru accesarea serviciului oferit de BIOS. De asemenea, întreținerea poate fi întreruptă de BIOS-ul plăcilor de expansiune (de exemplu, plăci edge sau video), sistemul de operare și rularea programelor native (aplicații) care sunt prezente permanent în memorie în timpul funcționării altor programe (adică rezidente și programe). În modul real, în modul protejat al procesoarelor x86, programele primare nu pot deservi întreruperile; această funcție este disponibilă doar pentru codul de sistem (sistemul de operare).

MS-DOS este conceput pentru interacțiunea cu modulele și programele sale de aplicație cu numere cuprinse între 20h și 3Fh (numerele sunt în al șaisprezecelea sistem numeric, așa cum este adoptat la programarea asamblatorului x86). De exemplu, accesul la setul principal de funcții MS-DOS este asigurat de instrucțiunea Int 21h (în care numărul funcției și argumentele sunt transmise în registre). Această împărțire a numerelor nu va fi alocată hardware-ului, iar alte programe își pot instala propriile detectoare, le pot înlocui sau înlocui peste detectoarele existente instalate de MS-DOS sau alte programe care trebuie utilizate pentru a schimba funcționalitatea sau extinderea. lista funcțiilor sistemului. De asemenea, este posibil ca virușii să fie corupti.

Funcționarea mecanismului de întrerupere

Leziunea cutanată este identificată după numărul ei. De exemplu, cronometrul, tastatura și imprimanta pot cauza probleme. Înainte de sistemul de bază de intrare/ieșire, programele sale de service sunt împărțite în grupuri, iar tuturor programelor din grup li se atribuie un număr de revizuire.

Când se așteaptă o întrerupere, numărul tabelului este selectat pentru a activa programul secundar de procesare a întreruperilor. Înainte ca un astfel de program să-și înceapă activitatea, mecanismul microprocesorului, care permite întreruperea procesării, elimină o înregistrare din stivă despre munca care a fost efectuată înainte de întrerupere. După aceasta, programul de procesare întrerupere se încheie.

Programul de procesare a întreruperii începe să funcționeze, după ce a efectuat următorii pași față de alții care pot fi întrerupti dintr-o dată, deoarece chiar și operațiuni importante și complexe trebuie finalizate care nu pot fi întrerupte. Instruiți astfel de programe să includă modificarea registrului de segment care accesează memoria, precum și scrierea în stivă a informațiilor suplimentare despre sistem care trebuie să fie salvate pentru informații suplimentare care sunt scrise automat la începutul procesului.

După finalizarea operațiunii, programul de procesare a întreruperilor poate porni din nou alte tipuri de întreruperi și poate termina munca necesară. Când operațiunile de întrerupere sunt finalizate, programul de procesare a întreruperilor este reînnoit. tabără de weekend aparatul în care se afla înainte de întrerupere, iar computerul continuă munca întreruptă.

De exemplu, să ne uităm la programul așa cum este *. exe, după lansarea acestuia, pe ecran apare periodic steagul suveran al Rusiei. Perioada a apărut aproximativ 1 dată la 2 secunde (div. Adunare). Acest program conține un algoritm robotic avansat (Fig. 1):

Postat pe http://www.allbest.ru/

Mic 1. Algoritmul programului robotizat.

Actualizarea software-ului pentru driverul video BIOS este implementată cu ajutorul modificării INT 10h. Când lucrați în modul text, activați următoarele funcții de driver:

02h – setați poziția cursorului;

03h – mutați poziția cursorului;

05h – instalarea magazinului video;

06h - inițializați sau derulați în sus fereastră;

07h - inițializați și derulați în jos fereastra;

09h - introduceți simbolul și atributul la poziția cursorului;

0Ah – introduceți un caracter la poziția cursorului;

0Eh – afișarea unui simbol în modul teletype;

10h, subfuncția 3h - comutare între întuneric/luminozitate;

13h – introduceți un rând în modul teletype.

Pentru funcțiile suplimentare 06h și 07h, ferestre dreptunghiulare colorate de o dimensiune dată sunt create într-o anumită locație de pe ecran. Dacă orice text este afișat în această fereastră, puteți derula în sus și în jos pentru funcții suplimentare.

Funcțiile 09h, 0Ah, 0Eh și 13h servesc la afișarea simbolurilor adiacente și a rândurilor de caractere (într-un ciclu) pe ecran. Afișarea unuia și aceluiași simbol este dată de mai multe ori, care poate fi schimbată atunci când se creează rame și alte ornamente.

Funcția 0Eh răspunde la codurile care controlează următoarele activități. Cursorul se restrânge după afișarea simbolului skinului.

Funcția 13h este destinată afișarii rândurilor din atributele desemnate atât ale simbolului skinului, cât și ale întregului rând. Funcția poate fi specificată în mai multe opțiuni în funcție de codul de mod care este indicat în registrul AL.

Când afișați pe ecran folosind driverul BIOS, trebuie să aveți grijă să nu introduceți Ctrl/C de la tastatură până când programul se termină. Atenție la ciclurile nesfârșite de afișare pe ecran - a scăpa de ele poate însemna repornirea computerului.

Semnalele de la hardware extern (de la temporizatoare, tastaturi, discuri etc.) nu ajung direct la procesor, ci sunt direcționate prin controler, deoarece microcircuitul Intel 8259A este programat. Procesarea întreruperii hardware include în general proceduri pentru controlul controlerului de întrerupere. Organizarea unui sistem de întrerupere hardware astfel încât până la opt circuite de intrare ale controlerului să fie conectate la dispozitive care au semnale de întrerupere. Ieșirea INT a controlerului este conectată la aceeași intrare a microprocesorului. În acest caz, pe lângă semnalul INT, care inițiază procedura de întrerupere în microprocesor, controlerul transmite numărul de vector către microprocesor prin intermediul liniilor de date, prin care este apelat programul de procesare a întreruperii. Numărul vectorului de transmis este confirmat în controler prin adăugarea numărului de bază înregistrat într-unul dintre registre cu numărul liniei de intrare, așa cum este cel mai bine scris. Numărul vectorului de bază este introdus automat în controler în timpul procesului descântec de cob calculator. Controlerul este programat prin porturile 20h și 21h. Deoarece vectorul de bază va fi întotdeauna 8, numărul de vectori alocați conexiunilor hardware sunt în intervalul 8h,..., Fh.

În cazul nostru, este necesar să ne uităm și la întreruperile și semnalele de la temporizatorul sistemului.

Pererirvaniya este o procedură completă pe care computerul o solicită pentru crearea unui departament de cânt. Există întreruperi hardware și software. Întreruperile hardware sunt inițiate de hardware sau placa de sistem, sau cardurile sunt extinse. Acestea pot fi declanșate de un semnal de la microcircuite temporizatoare, un semnal de la imprimantă, apăsarea unei taste de pe tastatură sau din orice alt motiv. Întreruperile hardware nu sunt coordonate cu software-ul. Când are loc o întrerupere, procesorul nu mai funcționează, iese din întrerupere și apoi se învârte în locul greșit. Pentru a putea intoarce exact la locul solicitat al programului, adresa locului (CS: IP) este stocata pe stiva, impreuna cu registrul de ensign. Apoi CS: IP este atribuit adresei programului de procesare a întreruperilor și controlul este transferat acestuia. Programele de procesare a întreruperii se numesc drivere de întrerupere. Acum veți fi completat cu instrucțiunea IRET (Rotate from Reversal), care completează procesul de inversare prin rotirea vechilor valori CS: IP în registrul de ensign, permițând astfel programelor să continue să facă acest lucru. Toate PC-urile IBM folosesc un cip de cronometru 8253 (sau 8254) pentru a acomoda impulsurile de la cipurile de ceas al sistemului. Numărul de cicluri ale anului sistemului este convertit într-un singur impuls, iar secvența acestor impulsuri este pregătită pentru ora desemnată sau pot fi trimise la computerul computerului pentru a genera un sunet cu o frecvență de cânt. Cipul 8253 are trei canale identice independente, fiecare dintre acestea putând fi programat. Cipul 8253 funcționează independent de procesor. Procesorul programează microcircuitul și apoi trece la alte informații. Astfel, 8253 este aniversarea orei reale - își respectă impulsurile indiferent de ceea ce este în computer. Cu toate acestea, intervalul maxim de programare este de aproximativ 1/12 secunde. Pentru a menține intervalele de timp, veți avea nevoie de alte servicii. Din acest motiv, impulsurile de la canalul zero al microcircuitelor temporizatorului se acumulează în memorie, care se află în zona de date BIOS. Această acumulare se numește acumulare de dobi. 18. De 2 ori pe secundă, ieșirea canalului 0 este întreruptă de întreruperi hardware (întreruperi ale temporizatorului), deoarece procesorul încetinește inutil și procesorul funcționează prea mult.

Numărul 0 indică seara 12:00; Când pacientul atinge echivalentul a 24 de ani, valoarea este resetată la zero. A doua oră a duratei este ușor de determinată prin împărțirea indicatorului medicului la 18,2 secunde de piele. Medicul este obligat să participe la majoritatea operațiilor asociate cu ora.

Visnovok

Assembler este un analog simbolic al limbajului mașină. Prin urmare, un program scris în limbaj de asamblare trebuie să reflecte toate caracteristicile arhitecturii microprocesorului: organizarea memoriei, metode de adresare a operanzilor, reguli de selecție a registrelor etc. Prin necesitatea organizării unor astfel de indivizi Asamblatorul este unic pentru tipul de piele al microprocesoarelor.

U tsіy munca de curs S-a predat material teoretic despre limbajul de nivel scăzut - asamblator, avantajele și dezavantajele acestuia, principalele etape ale programării în limbaj de asamblare. Au fost luate în considerare principiile procesării întreruperilor, afișarea și introducerea informațiilor în modurile grafic și text, procesarea notificării temporizatorului sistemului, implementarea algoritmului de alcătuire a sarcinii atribuite, precum și traducerea codului din fișierul de compunere.

Lista de referinte

Kasvands E. G. Introducere în programarea Assembler. Partea 1 - M.: UNITI - DANA, 2006.

Yurov V. Asamblator. Martor special. - St.Petersburg. : Peter, 2007.

Ce este asamblatorul? [Resursă electronică]. - Mod de acces: http://www.assembler.webservis.ru

Programare film Vaulin A.S. carte 5 - M.: Shkola-Press, 2008.

Malyutin E. A. Programare de filme. - M.: Prosvitnitstvo, 2008.

Abel P. Limbajul de asamblare pentru PC IBM și programare / Transl. din engleza Yu. V. Salnikova - M.; Școala Vishcha 2007 – 447 p. : bolnav.

Programabil în limbaj de asamblare. [Resursă electronică]. - Mod de acces: http://www.kalashnikoff.ru

Zubkov S.V. Assembler pentru DOS, Windows și Unix. - M.: INFRA-M, 2009.

Bogumirsky B. Robot eficient pe PC IBM cu Windows 95 St. Petersburg, „Peter”, 2007.

Yurov V., Khoroshenko V. Asamblator - Curs de bază. - St.Petersburg. : Peter, 2007.

supliment

Cod program

; mov AX, date; Inițializare

mov DS, AX; registrul de segmente DS

; Ieșire lizibilă și sigură în locul vectorului 8

mov word ptr old_08h, BX

mov word ptr old_08h+2,ES

; Instalați obobnik pererirvanul nostru new_08h

mov DX, offset new_08h

împingeți DS; Economisiți o oră DS

push CS; Editabil în loc de CS

int 21h; Viklik DOS (funcții 25h)

pop DS; Vidnovim DS

; Rețineți că acțiunea va dura 3 secunde pentru a se finaliza prin simpla trecere în buclă a programului

; O altă filă de program care este activată după 3 s

; Bila Smuha

; smuga albastră

; Chervona Smuha

mov CS: timp, 20

; Analizorul de aplicație este întrerupt ca temporizator,

; se activează de 18, 2 ori pe secundă

împinge AX; Să salvăm doi vikori

împinge BP; în registru

CS: timp; Reduceți la intervalul orar

jnzoutint; Încă nu este 0, ieși din pererivannya

; În loc ca ora să fie schimbată la 0, programul va fi schimbat

mov BP, SP; BP = vârful actual al stivei

mov AX, aripioare offset; Deplasarea punctului de tranziție

mov, AX; /Trimiteți-l la stiva de pe site-ul IP

mov AX, seg fin; /Segment punct de salt

mov, AX; /Trimite yogo la stiva de pe site-ul CS

outint: mov AL, 20h; Comanda /EOI către controlor

afară 20h, AL; / copleși

MOV AX, 0600h; AH=06 (defilare), AL=00 (întregul ecran)

MOV BH, 07; atribut normal

MOV CX, 0000; pozitia sus stanga

MOV DX, 184Fh; poziție dreapta jos

INT 10h; transferul controlului către BIOS

MOV AH, 02; numărul funcției

MOV BH, 00; numărul paginii

MOV DH, 00; numărul rândului

MOV DL, 00; numărul stației

INT 10h; introduceți cursorul

pop BP; /Chiar jignit

pop AX; /registrul de economii

iret; /Ieșind din întrerupere

timp dw 20; /Komіrka pentru o lungă perioadă de timp

; /Câmpuri de date

vechi_08h dd 0; /Computer pentru salvarea vectorului de ieșire

Postat pe Allbest.ru

...

Documente similare

    Evoluția programării noastre de la cel mai de jos nivel până în prezent. Programare de filme de altă generație - asamblator. Limbaj imperativ, funcțional, logic și orientat pe obiecte. Independenta auto. Paradigma de programare.

    prezentare, adaugat 14.10.2013

    Vychennya aspectelor actuale ale limbajului Assembler și EOM zagalom. Pe baza algoritmilor pentru sarcina în cauză, folosind limbajul de programare C, Assembler ROZUM și IBM PC. Îndoire diagrame de flux și programe de rezolvare și scriere bazate pe lista de cuvinte.

    lucru curs, adauga 20.10.2014

    Asamblator de limbaj Vivchennya de nivel scăzut pentru scrierea de programe de bază pentru un add-on pe 16 biți. Dezvoltarea și implementarea algoritmului de ridicare a numerelor la nivelul numerelor deasupra câmpului dincolo de baza 2 (mod 2). Ilustrație a tehnologiei de creare a programelor DOS.

    lucru curs, adauga 08.11.2011

    Cod mașină și asamblator. Programare în prima limbă de cel mai înalt nivel. limbaj de programare FORTRAN. Avantajele și dezavantajele ALGOL. Programe de știință și contabilitate. Principiile de bază care au fost dezvoltate în timpul creării programului de bază.

    lucru curs, adauga 21.06.2014

    Programarea limbajului este un sistem formal de semne destinat înregistrării programelor. Refal ca limbaj algoritmic al funcțiilor recursive. Lisp este un asamblator care lucrează cu structuri de listă. Prolog: înțelegere, caracteristici principale.

    prezentare, completare 22.02.2014

    Caracteristicile asamblatorului - un limbaj de nivel scăzut orientat spre mașină care poate fi folosit pentru a crea completări simple. Comunicarea cu diferite programe. Un format tipic pentru înregistrarea comenzilor, instrucțiunilor și directivelor limbajului de asamblare. Rozrobka gris „Șarpe”.

    lucru curs, adauga 20.07.2014

    Caracteristicile programării noastre: scurtă istorie, cronologie. Principalele tipuri de programare: asamblator; de bază Crearea de formule în Excel. Definiția operatorilor în formule. Funcții utile în Excel. Site-ul web budinku vіdpochinku.

    Raport de practică, completări 06/03/2011

    Introduceți și afișați numerele pentru modulul IO suplimentar care este conectat. Particularități ale lucrului cu matrice uni și bidimensionale. Testarea va deveni steagul. Principii și abilități de lucru cu un compilator și editor. Dezvoltarea de circuite și algoritmi folosind software de asamblare.

    lucru curs, adăugare 02.12.2009

    Variind caracteristicile sistemului de operare, setul de programe care controlează funcționarea programelor de aplicație suplimente de sistem. Descrierea arhitecturii și software-ului sistemelor de operare actuale. Avantajele Assemblerului de programare Movi.

    prezentare, completare 22.04.2014

    Assembler este un analog simbolic al limbajului mașină. Arhitectura microprocesorului: organizarea memoriei, metode de adresare a operanzilor, reguli de alocare a registrelor. Textul programului. Etapele programării în limbajul asamblator, algoritmii fabricii vykonannya.

asamblator

asamblator- programarea limbajului de nivel scăzut. Mova și-a luat numele de la cuvântul asamblator - asamblator. Viniklo era încă în anii 50. ca analog simbolic al limbajului maşinilor
Instrucțiunile de asamblare corespund unu-la-unu instrucțiunilor procesorului și scriu de fapt comenzi și argumente în formă simbolică manuală. De asemenea, asamblatorul asigură conectarea unor părți de programe și date prin etichete, care se adaugă în timpul asamblarii (se creează adrese pentru o etichetă, după care intrarea etichetei este înlocuită cu adresa respectivă).
Fragmentele sistemului de instrucțiuni ale microprocesorului sunt împărțite, iar procesorul conține un set puternic de instrucțiuni de la asamblatorul meu.
Cu ajutorul assemblerului, puteți scrie programe care ar fi imposibil sau chiar dificil de scris programare cu alte limbaje. De exemplu: generatoare de chei (keygen), monitoare de sistem, drivere pentru hardware sau sisteme de operare.
Limbile de nivel înalt ("C", "Pascal", "Delphi", etc.) nu oferă un control fiabil asupra fluxurilor de date, adreselor de memorie sau registrelor procesorului și toate au fost împărțite în diferite tipuri de sisteme de operare, și Un asamblator poate deveni el însuși un asamblator, dar lucrează pe o platformă științifică necunoscută și rulează programe pentru aceeași platformă.
Programele scrise în limbaj de asamblare sunt produse de zeci de ori mai puțin decât programele scrise în limbaje de nivel înalt și rulează de zeci de ori mai mult. Un exemplu ar putea fi sistemul de operare MenuetOS, care este scris în Flat Assembler și se potrivește pe o dischetă (1,44 MB), iar kit-ul include programe de aplicație precum: un editor de cod de asamblare cu plug-in-uri, un robot cu Sistemul de fișiere, screensavere 3D, o serie de jocuri, un vizualizator de imagini, un compilator Flat Assembler, un terminal, un CD player și multe altele. Avantajul constă în faptul că poate fi accesat cu ușurință de pe Internet (la o viteză redusă de conectare).
În momentul de față, cei mai mulți dintre specialiștii în dezvoltare software lucrează cu limbaje de nivel înalt, precum Pascal sau C, care este mai simplu la scrierea programelor, dar cel mai dificil și mai eficient software software este în general sau des scris în assembler howl.

Literatură
1. Peter Abel – Asamblator. Limbaj și programare pentru IBM PC - M., 1999.

asamblator

asamblator(din limba engleză assembler - assembler) - un compilator al textului de ieșire al unui program scris în limbaj de asamblare, într-un program de mașină.
La fel ca limbajul în sine, asamblatorii sunt de obicei specifici unei anumite arhitecturi, unui sistem de operare și unei variante de sintaxă a limbajului. În același timp, există asamblare multiplatformă sau complet universale (mai precis, interconectate-universale, deoarece cele de nivel scăzut nu pot fi scrise cu programe independente de hardware) care pot rula pe platforme diferite și pot opera sisteme valoroase. Printre restul, puteți vedea, de asemenea, un grup de asamblare încrucișate care colectează cod de mașină și module (fișiere) care sunt compilate pentru alte arhitecturi și sisteme de operare.
Asamblarea nu poate fi nici primul, nici ultimul pas în procesul de eliminare a modulului de program care poate fi creat. Astfel, multe compilatoare din programarea de nivel înalt produc rezultatul sub forma unui program de asamblare, pe măsură ce asamblatorul compilează apoi. De asemenea, rezultatul asamblarii poate fi nu un modul propriu-zis, ci un modul obiect, care găzduiește blocuri disparate de cod de mașină și date de program, din care (sau din mai multe module obiect) dincolo de ajutorul unui editor de linkuri poate fi eliminat fișierul. .
Centrele speciale de memorie sunt amplasate direct în procesor. Lucrul cu registre implică multă muncă, nu în ultimul rând cu RAM, iar registrele sunt studiate activ atât în ​​programele de asamblare, cât și în compilatoarele de limbaj de nivel înalt.
Numele registrelor sunt similare cu scopul lor:

EAX/AX/AH/AL (registru baterie) - baterie;
EBX/BX/BH/BL (registru de bază) - registru de bază;
ECX/CX/CH/CL (registru de contor) - medic;
EDX/DX/DH/DL (registru de date) - registru de date;
ESI/SI (registru index sursă) – indice dzherel;
EDI/DI (registru index de destinație) - index al gazdei;
ESP/SP (registru indicator de stivă) – registru indicator de stivă;
EBP/BP (registru indicator de bază) - registru care arată cadrul de bază al stivei.

Comenzi de procesare a rândurilor
Pentru a lucra cu rânduri sau șiruri de simboluri și numere (care sunt pur și simplu evidente, cu matrice de date suplimentare), câteva comenzi speciale sunt transferate către MP:
mișcări - depășirea rândurilor;
cmps – egalizarea a două rânduri;
seas - căutarea unui rând dintr-un element dat;
lods - starea de încărcare a bateriei (registru AL sau AX);
stos - înregistrarea elementului de încărcare a bateriei (registrul AX și AL).

Avantaje

· Limbajul de asamblare vă permite să scrieți cel mai avansat și mai compact cod posibil pentru un anumit procesor.
· Viteza de lucru - pentru optimizarea algoritmului de calcul și/sau utilizarea mai rațională a RAM (de exemplu, deoarece toate datele de ieșire sunt stocate în registrele procesorului, puteți dezactiva cererile de stocare către VP), reorganizarea datelor , calcul tabelar al funcțiilor;
· Obsyag kuda (zokrema rakhunok efektivno vykoristannya rezultate intermediare). Concizia codului promovează adesea fluiditatea aplicațiilor software.
· Asigurarea utilizării maxime a capabilităților specifice unei anumite platforme, care permite, de asemenea, crearea de programe eficiente, inclusiv un consum mai mic de resurse.
· Când este programat în limbaj de asamblare, puteți avea acces direct la hardware, video, porturi I/O, registre de procesor etc. pierde timpul."
· Limbajul de asamblare este adesea dificil de a crea driverele sistemului de operare și nucleul sistemului de operare, dacă este important să utilizați în timp util lucrarea dispozitiv periferic De la procesorul central.
· Limbajul de asamblare este folosit pentru crearea firmware-ului BIOS.
· Cu ajutorul asamblatorului de limbaj, sunt adesea create subprograme dependente de mașină de compilatoare și interpreți de nivel înalt și sunt implementate, de asemenea, o varietate de platforme.
· Pentru programe suplimentare de dezasamblare, puteți înțelege algoritmii de lucru ai următoarelor programe, inclusiv codul mașinii, și în programe complexe non-triviale, ceea ce este și mai dificil.

Nedoliky
· Datorită orientării către mașină (nivel „scăzut”) a limbajului de asamblare, este mai ușor pentru oameni să citească și să înțeleagă programul într-un nou limbaj, comparativ cu programarea limbajului de nivel înalt; Programul este alcătuit dintr-o mulțime de elemente „fragile” - comenzi de mașină, ceea ce înseamnă că programarea și complexitatea vor deveni mai complexe, iar dificultatea și flexibilitatea efectuării ajustărilor vor crește.
· Sunt necesare calificări avansate ale programului pentru a extrage codul explicit: codul scris de un programator mediu de asamblare nu trebuie să apară mai scurt decât originalul girsha pentru cod, care va genera un compilator de optimizare pentru programele de nivel înalt scrise de mine.
· Un program într-un limbaj de nivel înalt poate fi recompilat cu optimizare automată pentru particularitățile noii platforme țintă, iar un program în limbaj de asamblare pe o nouă platformă își poate cheltui avantajul în viteză fără a rescrie manual codul.
· De regulă, mai puține biblioteci disponibile sunt în concordanță cu programarea actuală a limbajului industrial.
· Portabilitatea zilnică a programelor pe computere cu o arhitectură și un sistem de comandă diferit.

nebunie
Un program conceput pentru un tip de asamblator nu poate fi compilat într-un altul fără o reelaborare radicală sau o conversie automată! Pentru a se asigura că mijlocul de asamblare de tip „propriu” evită confuzia, diversitatea și lipsa de personalitate: Cuvinte cheie, în regulile de listare, în biblioteci și fișiere de antet, etc. Cu excepția cazului în care validitatea este specificată în mod explicit, programul trebuie tradus de acesta și numai de acest asamblator pentru orice scop. În caz contrar, pregătiți-vă pentru surmenaj (adică înainte de adaptare). Distincțiile apar cel mai adesea în zonele cele mai necontrolate. Unii asamblatori înțeleg că „mov eax, x” este același cu „mov eax, [x]”, dar nu este același. Duhoarea pute și vezi o mizerie. Nimic încă! Este mult mai rău dacă traducătorul interpretează greșit această construcție ca „mov eax, offset x”, care nu este deloc același! Deci, atunci când transferi programe, trebuie să fii foarte atent.

Complexitatea sistemelor de operare. Programele orientate pe MS-DOS nu numai că nu sunt transportabile, dar nici portabile. Ele se caracterizează prin interacțiune directă cu hardware-ul, disponibil în NT doar de pe piața nucleară, ca să nu mai vorbim de acelea în care codul de 16 biți este accesat din programele pe 32 de biți prin DPMI, dar nu fără câteva trucuri.

Astfel, înainte de a traduce mai întâi un program de asamblare, este necesar să identificăm ce traducător este alocat sistemului de operare! Fragmentele de asamblare, preluate din contextul „nativ”, sunt și mai rele. Este posibil ca în acest articol să fie descrisă o anumită tehnică anti-nazală și să fie generat cod de asamblare, dar nu există nicio modalitate de a o încorpora în programul dumneavoastră. Știm situația, nu-i așa? Traducerea fără întrerupere este imposibilă - traducătorul înjură sălbatic, dar nu pare să se întâmple nimic.

Program asamblat

Pregătire text și date de ieșire pentru programe speciale, numite asamblatori. Programare cu asamblare - convertiți textul programului în formă de comenzi duble, care pot fi configurate de un microprocesor. Dacă sunt detectate erori sintactice, codul rezultat nu va fi generat. Procesul de creare a unui fișier împachetat implică două etape:

Asm --> .obj --> .exe/.dll/.com

În prima etapă (.asm->.obj), procesul de compilare produce fișiere cu cod obiect intermediar din fișierul de asamblare, care pot fi extinse cu .obj (caz în care fișierele inc suplimentare pot fi modificate). Fișierul cu extensions.obj este folosit pentru a optimiza codul mașinii pentru mințile care nu au ajuns din urmă cu modificările sintactice și semantice. Yakshcho in fisier de iesire Cu programul meu de asamblare, sunt detectate daune, apoi programatorul vede o listă de erori detectate, în care erorile sunt indicate cu un număr de rând, unde au fost detectate. Programul trece prin editare și compilare până când toate modificările sunt eliminate din fișierul de ieșire. În această etapă este deja posibilă eliminarea program gata făcut Dar cel mai adesea nu conține componente. Dacă compilatorul, indiferent de motiv (ortografierea incorectă a căilor către un astfel de fișier sau un fișier diferit) nu poate găsi fișierul inc, acesta pare să fie redirecționat și fișierul obj nu va fi șters.

Asamblarea, de regulă, are loc în două etape. În timpul primei treceri sunt traduse comenzi mnemonice, numere zeci și simboluri în codul mașină nativ, se determină cât spațiu ocupă comanda, se identifică numele, se introduc de către corespondent (constante, etichete, modificabile) și tipul acestora Și numărul numeric. valorile sunt înregistrate în tabel. Acest tabel înregistrează unde încep procedurile, adresele mărcilor, adresele de la începutul/sfârșitul segmentelor etc.; într-o altă trecere, adresele sunt furnizate la începutul procedurilor, iar numele mărcilor sunt înlocuite cu adrese.

Rezultatul adunării se numește „fișier obiect”. Ca o capacitate suplimentară, asamblatorul poate crea un fișier pentru lista de programe.

Pentru a extrage fișierele de cod obiect, trebuie să părăsiți programul de asamblare (programul ML.EXE de la Microsoft și TASM.EXE de la Borland), introducând Linie de comanda Denumiți fișierul cu programul text.

Această formă de apel este minim necesară. Pe lângă denumirea unui fișier text, este necesar să specificați opțiunile de asamblare. Pentru informații mai detaliate despre opțiunile programelor de asamblare, vă rugăm să consultați documentația pentru aceste programe.

Compoziția programului

Următoarea etapă (.obj --> .exe/.dll/.com) se numește legare sau compunere și servește la înlocuirea numelor simbolice care sunt modificate de programator cu adrese reale.

Potriviți numărul hexazecimal al fișierului OBJ și EXE cu cel preferat. Fișierul EXE are aceeași secvență de octeți ca și fișierul OBJ. În plus: numele fișierului de asamblare, versiunea de asamblare, „proprietatea” segmentului și așa mai departe.

Aceste informații de „serviciu” sunt destinate acestor tipuri de cazuri dacă doriți să vă colectați dosarul de lucru. Când se dezvoltă adăugiri mari, textul de ieșire constă, de regulă, din mai multe module (fișiere cu texte de ieșire), astfel încât salvarea tuturor textelor într-un singur fișier este greoaie - dificil de navigat.

Modulul skin este compilat direct într-un fișier separat cu cod obiect. Fiecare dintre aceste fișiere are propriile segmente de cod/date/stivă, care sunt apoi combinate într-un singur întreg. Și putem elimina doar un fișier - cu un singur segment de cod/date/stivă. Doar LINK și lucrează: finalizează atribuirea mesajelor de adresă și se conectează după cum este necesar module softwareîntr-una. Și acesta este singurul pe care îl avem și suntem aici.

În plus, modulele noastre necesită adăugarea de cod de mașină la subprograme care implementează diverse funcții standard (de exemplu, cum se calculează funcțiile matematice SIN sau LN). Astfel de funcții sunt localizate în biblioteci (fișiere cu extensii standard .LIB), care fie sunt furnizate imediat de la compilator, fie sunt create independent. Prin urmare, procesul de pregătire include în mod necesar etapa de compunere, dacă toate necunoscutele sunt identificate cu adrese separate asamblate ale variabilelor și funcțiilor foarte modificate.

Procesul de combinare a modulelor obiect într-un singur fișier se realizează folosind un linker sau un program de selecție special (programul LINK.EXE de la Microsoft și TLINK.EXE de la Borland), care leagă modulele obiect și codul mașină. funcții standard, Sunt disponibile în biblioteci, iar rezultatul este un addendum util - un cod personalizat pentru o anumită platformă.

Cod valid - acesta este un program completat cu extensii COM, DLL sau EXE, care poate fi rulat pe un computer cu instalat sistem de operareÎn ce scop a fost creat programul. Numele fișierului care este adăugat este setat la numele primului fișier .OBJ. Pentru a conecta, trebuie să tastați în linia de comandă:

link prog1.obj prog2.obj sau tlink prog1.obj prog2.obj

În loc de fișierul obiect, acesta este analizat de către linker. Aceasta înseamnă că programul are mesaje externe, astfel încât programul poate plasa comenzi pe procedurile de clic într-una din bibliotecile de module obiect (bibliotecă de linkuri). Linkerul recunoaște ceea ce este trimis în fișierul obiect, copiează procedurile necesare din biblioteci, le combină cu fișierul obiect și creează un fișier care este legat (fișier executabil). In yakosti posibilități suplimentare Compozitorul poate crea un fișier de sondaje încrucișate pentru a înlocui planul fișierului extras care este compilat.

Vikorystuvani dzherela
1. https://ua.wikipedia.org/
2. http://natalia.appmat.ru/
3. http://www.codenet.ru/
4. http://wasm.ru/
5. Norton P., Souhe D. Limbajul de asamblare pentru PC-ul IBM. M: Computer, 1992.

 

 

Tse tsikavo: