Madala taseme programmeerimiskeeli kokkupanek. Millal oli kokkupanek (kokkupanek) ja masina keel? Identifikaatorid, täisarvud, sümbolid, kommentaarid, samaväärsus

Programmeerimiskeel

Assembler on madala taseme programmeerimiskeel, mis on vorming masina käsude salvestamiseks, mugav inimese tajumiseks.

Assembleri keele käsud on ühes ühes ühes vastavad protsessori meeskondadele ja on tegelikult mugav sümboolne salvestus (mnemokode) käsud ja nende argumendid. Samuti pakub kokkupanekukeel põhitarkvara abstracts: programmi osade sidumine ja andmed pärast sümboolsete nimede ja direktiivi silte.

Assembler Direktiive võimaldab teil lisada programmi andmeplokid (kirjeldatakse failist selgesõnaliselt või lugeda); korrake teatud arvu kordi teatud fragmenti; kompileerida fragment seisundi järgi; Määrake fragmendi täitmise aadress, muutke koostamise käigus silte väärtusi; Kasutage makro määratlusi parameetritega ja teistega.

Igal protsessormudelil on põhimõtteliselt oma käskude kogum ja kokkupaneku asjakohane keel (või dialekt).

Eelised ja puudused

  • koosteva koodi miinimumsumma (väiksemate käskude arvu kasutamine ja viited mälule). Selle tulemusena - kiire ja väiksem programmi suurus
  • suured koodi mahud, suur hulk täiendavaid väiksemaid ülesandeid
  • halb koodi loetavus, toetusraskused (silumine, võimaluste lisamine)
  • programmeerimisradigmade rakendamise raskused ja muud keerulised konventsioonid, ühise arengu keerukus
  • vähem raamatukogusid saadaval, nende väike ühilduvus
  • otsene juurdepääs seadmetele: I / O Ports, spetsiaalsed protsessoriregistrid
  • võimalus kirjutada ise modifitseeriva koodi (s.o metaprogrammitus ja ilma tarkvara tõlkita)
  • maksimaalne "Fit" jaoks soovitud platvorm (Erijuhiste kasutamine, "raua" tehnilised omadused)
  • teiste platvormide talumatus (va binaarsed ühilduvad).

Süntaks

Üldiselt aktsepteeritud standardi süntaksi kokkupanek keeli ei eksisteeri. Siiski on de facto standardeid - traditsioonilised lähenemisviisid, mida enamik assamblee arendajad on kinni. Peamised teabestandardid on Intel-süntaks ja AT & T-SYNTAX.

Salvestusjuhiste üldine vorm on mõlema standardi puhul sama:

`[Sild:] opcode [operandid] [; kommentaar]`

Välimus on protsessorile otse mnemonic juhised. Sellele võib lisada eesliited (kordused, muutused nagu lahendamine jne). Operandid, konstandid, registri nimed, RAM-i aadressid jne. Inteli ja AT-standardite erinevused puudutavad peamiselt operandi ülekandmise ja nende süntaksi erinevates lahendusmeetodite järjekorda.

Kasutatud mnemoonika on tavaliselt ühesugused kõigi ühe arhitektuuri või arhitektide perekonna protsessorite puhul (töötlejate ja kontrollerite hulgas hästi tuntud - mnemonikate hulgas Motorola, Arm, X86). Neid kirjeldatakse protsessori spetsifikatsioonides.

Näiteks Zilog Z80 protsessor päritud Intel I8080 käsu süsteemi, laiendas seda ja muutis mnemonics (ja registri nimetusi) omal moel. Näiteks muutsin INTEL MOV LD-l. Motorola Firecal protsessorid pärisid Z80 käsu süsteemi, lõikades see alla. Samal ajal tagasi Motorola ametlikult tagasi Intel mnemonics. ja B. sel hetkel Pool kokkutulekud Fireball töötab Intel Mnemonics ja pool Zilog mnemonics.

Direktiiv

Lisaks juhistele võib programm sisaldada direktiive: käske, mida ei saadeta otse masina juhistele ja kompilaatori juhidele. Set ja süntaks erineb oluliselt ja sõltub mitte riistvara platvormi, kuid kompilaatori kasutatud (genereerib dialektide keelte ühe pere arhitektuuride). Komplekti kohaselt saab direktiivid eraldada:

  • andmete määratlemine (konstantide ja muutujate)
  • management organisatsiooni organisatsiooni mälu ja väljundfaili parameetrid
  • kompilaatori töörežiim
  • igasugused abstraktsioonid (s.o kõrgetasemeliste keelte elemendid) - menetluste ja funktsioonide registreerimisest (protseduuriprogrammi paradigmaerimise rakendamise lihtsustamiseks) tingimusstruktuuridele ja tsüklitele (struktuuriprogrammi struktuuri struktuuride struktuuride jaoks)
  • makrod

Termini "kokkupaneku keele päritolu ja kriitika"

Seda tüüpi keeled said oma nime tõlkija nimi (kompilaator) nendest keeltest - kokkupanek (ENG. Assembler - koguja). Viimase nimi on tingitud asjaolust, et esimestel arvutitel ei olnud kõrgema taseme keeli ja ainus alternatiiv programmide loomisele, mis kasutavad kokkupanekut, programmeeriti otse koodidesse.

Vene keedukeel nimetatakse sageli "kokkupanekuks" (ja midagi ühendatud on "kokkupanek"), mis vastavalt sõna inglise keele tõlkele on vale, kuid sobib vene keele reeglitele. Kuid kokkupanek ise (programm) nimetatakse ka lihtsalt "kokkupanekuks", mitte "kokkupanekukeele kompilaator" jne.

Terminit "kokkupanekukeel" kasutamine võib samuti põhjustada eksliku arvamuse olemasolu ühe madala taseme keele olemasolu või vähemalt selliste keelte standardi olemasolu kohta. Kui nimetatakse keel, millele konkreetne programm on kirjutatud, on soovitatav täpsustada, mille jaoks see on ette nähtud arhitektuuri ja selle keele murre on kirjutatud.

Süntaksi elemendid:

Näited:

Tere, Maailm!

Näide Intel x86 (IA32) versioonide näide

mOV AX, CS MOV DS, AX MOV AH, 9 MOV DX, OFFSET HELLO INT 21H XOR AX, AX INT 21H HELLO: DB "HELLO WORLD!", 13, 10 "

Tere, Maailm!

Näide Amiga versioonidele

liikuda. L #dos liikuda. L 4. W, A6 JSR - $ 0198 (A6); Valopenlibrary liikuda. L D0, A6 BEQ. s. Liikuda. L #hloworld, D1 a) MoveQ # 13, D2 JSR - $ 03AE (A6); Wrigechars b) JSR - $ 03B4; Putstr liikuda. L A6, A1 liikumine. L 4. W, A6 JSR - $ 019E (A6); Chereliibrary. Välja RTS DOS DC. b "dos.library", 0 Helloworld DC. B "Tere World!" , $ A, 0

Tere, Maailm!

Näide ataristide versioonidele

liikuda. L #Helloworld, - (A7) Move # 9, - (A7) Trap # 1 Addq. L # 6, A7 Move # 0, - (A7) Trap # 1 Helloworld: DC. B "Tere World!", $ 0D, $ 0A, 0

Tere, Maailm!

Näide Intel x86 (IA32) versioonide näide

Nasma Linuxi kasutab Inteli süntaks. Kompileerimine ja sidumine:

  • nasm -f elf -o hello.o hello.asm
  • ld -o hello hello.o

Jagu. Andmeteaded db "Tere, maailm!", 0xa len ekv $ - msg jaotis. Teksti globaalne _start _start :; Sisenemispunkt Mov EAX, 4; "Kirjutage" System Call MOV EBX, 1 MOV ECX, MSG; Andmete Mov Edx, Len; Andmete kogus int 0x80; Helista Core Mov EAX, 1; "_Exit" System Call Mov Ebx, 0; Tagasi 0 (kõik hea) int 0x80; Helista kernelile

Tere, Maailm!

Näide PDP-8 versioonide kohta

/ - Kommentaarid.

/ Tere maailm kokkupanek DEC PDP-le - 8 * 200 Tere, CLA CLL TLS / TLS määrab prindilipp. TAD CHARAC / loob DCA IR1 Index Register / saada TAD M6 tähemärki / konfigureerida meetri DCA arvu / suurendada tähemärki. Järgmine, tad i ir1 / saada sümbol. JMS-tüüpi / selle tüüp. ISZ-arv / tehke midagi muud? JMP Järgmine / Ei, sisestage teine \u200b\u200bmärk HLT tüüp, 0 / tüüp TSF JMP alamprogrammi. - 1 TLS CLA JMP I tüüpi Charac. / Kasutatakse esialgse väärtuse IR1. 310 / H 305 / E 314 / L 314 / L 317 / O 254 /, 240/327 / W 317 / O 322 / R 314 / L 304 / D 241 /! M6, - 15 Count, 0 IR1 \u003d $ 10

Tere, Maailm!

Näide PDP-11 versioonide kohta

Programm on kirjutatud Macro-11 Macrosembler'ile selle programmi koostamiseks ja käivitamiseks RT-11 OS-käskis:

Macro Tere.

Vead avastatud: 0

Link Hello - Link. Run Hello - Run

Pealkiri Hello World; Nimi. Mcall. Ttyout ,. Välju Hello :: Mov #msg, R1; Stringi esialgne aadress on $ 1: MOVB (R1) +, R0; Me saame järgmise BEQ tehtud sümbol; Kui , tule välja tsükli. Ttyout; Vastasel juhul printige Br 1 $ sümbol; Korrake tsüklit :. Välju MSG :. Asciz / hello, maailm! /; String Tere, maailm! . Lõpeb tere; Tere programmi lõpp

Tere, Maailm!

Näide süsteemi / 360 versioonide näide / 370

IBM System / 360/370/390 põhikomplekti keel.

Exec Assamblee Start Main Balr 2, 0 Seadme \u003d 3203, Control \u003d Jah, Prindi \u003d Jah End Main / * // Exec Lnkedt // Exec / * /

Tere, Maailm!

Näide Apple II versioonide kohta

* Hello World 6502 Apple] [* ******************************** Strout ekv $ db3a ldy #\u003e Tere Lda #< HELLO JMP STROUT HELLO ASC "HELLO WORLD !", 00

Tere, Maailm!

Näide PDP-10 versioonide kohta

CHTTYO - kogu sisend / väljund viiakse läbi I / O kanalite abil. Kõige parem on teha sümboolseid nimesid nende kasutatavate kanalite jaoks ja alustate neid CH-ga. Määrake need nimed Midasoperaatori abil \u003d\u003d.

Kõne on sümboolne nimetus helistada süsteemi kõne. Selle vorming: .call.

Ava avab sisend- / väljundkanali kasutamiseks. Nõuab kahte parameetrit - kanali number ja seadme nimi kuues.

Lose% LSFIL on süsteemi kõne, mis prindib sisendi / väljundi veateate, kui äkki juhtus.

IOT on süsteemi kõne, mis tegeleb sisendi / väljundiga. Parameetrina peate täpsustama kanali ja aadressi, mis sisaldab väljundi sümbolikoodi. Näiteks "H on H.

Pealkiri PrintHello A \u003d 1 CHTTYO \u003d\u003d 1; Kanali väljundiks. Alusta:; TTY kanali avamine. . Helista [Setz? Kuus / avatud / [. UAO, CHTTYO]? [Sixbit / Tty /] ((Setz))]. Kaotada% LSFIL. IOT CHTTYO, ["H]; Prindi Hello World Sümbol .. IOT CHTTYO, [" E]. IOT CHTTYO, ["L]. IOT CHTTYO, [" L]. IOT CHTTYO, [O]. IOT CHTTYO, [^ M]; uue liini sümbol. IOT CHTTYO, [W]. IOT CHTTYO, [O]. IOT CHTTYO, ["R]. IOT CHTTYO, ["L]. IOT CHTTYO, [" d]. Väärtus; Programm, peatus :) Lõpeta Start

Fibonacci numbrid:

Näide MIPS32 versioonide kohta

Marsi emulaator. Kokkuvõte Marsi konsool:

Fibonacci numbrid on: 1 1 2 3 5 8 13 21 34 55 89 144 - Programm on lõppenud jooksva -

Programm kuvab 15 fibonacci numbrit. Numbrite arvu saab muuta jaotises.Data.

Andmepind: .ciiz "pea: .ciiz "Fibonacci numbrid on: n" FIB :.Word 0: 15 Suurus :.Word 15 .Text Main: LA $ T0, FIB LA $ T5, Suurus LW $ T5, 0 ($ T5) Li $ T2, 1 addd.d $ F0, $ F2, $ F4 SW $ T2, 0 ($ T0) SW $ T2, 4 ($ T0) ADDI $ T1, $ T5, - 2 Loop: Lw $ T3, 0 ($ T0) LW $ T4, 4 ($ T0) Lisa $ T2, $ T3, $ T4 SW $ T2, 8 ($ T0) ADDI $ T0, $ T0, 4 ADDI $ T1, $ T1, - 1 BGTZ $ T1, Loop La $ A0, Fib Move $ A1, $ T5 JAL Prindi Li $ V0, 10 Syscall Prindi: Lisa $ T0, $ Zero, $ A0 Lisa $ T1, $ Zero, $ A1 LA $ A0, Head Li $ V0, 4 Syscall Out: LW $ A0, 0 ($ T0) Li $ V0, 1 Syscall La $ A0, Space Li $ V0, 4 SYSSCALL ADI LI $ V0, 1 LA $ A0, ($ T2) Syscall La $ A0, String1 Li $ V0, 4 Syscall Mult $ T1, $ T2 MFLO $ T1 Li $ V0, 1 LA $ A0, ($ T1) Syscall La $ A0, String2 Li $ V0, 4 Syscall Addiu $ T2, $ T2, 1 beq $ T2, 16, Endloop J Loop Endloop: Li $ V0, 10 Sysscall



Kokkupanek

Kokkupanek - madala taseme programmeerimiskeel. Keel sai oma nime Word Assemblerilt - koguja. Seal oli veel 50.. masina keele sümboolse analoogina.
Assembler käsud on üks ühele vastavad protsessori käsud ja tegelikult kujutavad endast mugavat sümboolset salvestamise käskude ja argumentide sümboolset vormi. Samuti tagab kokkupanek programmi osade seondumise ja kogumise käigus tehtud silte andmete seondumise (iga märgi jaoks, arvutatakse aadress, mille järel iga märgistuse sisestamine asendatakse selle aadressiga).
Kuna mikroprotsessori käsu süsteemid erinevad, on iga protsessor oma kogum käsud kokkupanemisel keeles.
Assembleri abil saate kirjutada võimatuks selliseid programme või on väga raske kirjutada teistes keeltes. Näiteks: peamised generaatorid (Keygen), süsteemi monitorid, seadmete draiverid või isegi os.
Kõrgetasemelised keeled ("C", "Pascal", "Delphi" jne) ei anna usaldusväärset kontrolli andmevoode, mälu aadresside või protsessoriregistrite üle ning kõik need töötati välja konkreetse tüübi all Operatsioonisüsteem, kokkupanek võib muutuda samaks assamblendiks, kuid töötavad tundmatu teaduse platvormi ja selle platvormi raames programmide tegemine.
Erinevalt kõrgetasemelistes keeltes kirjutatud programmide programmid viiakse läbi kümnetes aegades ja nad töötavad kümme korda kiiremini. Näide võib olla menutos operatsioonisüsteem, mis on kirjutatud lamedale assambleele ja sobima ühele disketile (1,44 MB) ja komplekt sisaldab rakendusprogramme, näiteks: korduskoodi redaktor Taustavaldusega, töötage koos failisüsteemiga, 3D-ga Ekraanisäästja, mõned mängud, pilte piltide, kompilaatori korterikomplekt, terminal, CD-mängija ja palju muud. Eeliseks on see, et seda saab internetist kiiresti alla laadida (isegi väikese ühenduse kiirusega).
Praegu arenevad enamik tarkvara spetsialiste kõrgetasemelistes keeltes, nagu Pascal või C, mis on programmide kirjutamisel lihtsam, kuid kõige võimsam ja tõhusam tarkvara Täielikult või osaliselt kirjutatud kokkupanekukeeles.

Kirjandus
1. Peter Abeli \u200b\u200b- kokkupanek. IBM PC-i keel ja programmeerimine - M., 1999.

Kokkupanek

Kokkupanek(Inglise keelest. Assamblee - koguja) - koostajakeelses kirjutatud programmi allika tekstikompilaator masina keeles.
Nagu keel ise, on kokkupanekud tavaliselt spetsiifilised konkreetse arhitektuuri, operatsioonisüsteemi ja keele süntaksi versiooni jaoks. Samal ajal on olemas multiplatform või universaalne (täpsemalt piiratud universaalne, sest madal tasetkeelt te ei saa kirjutada riistvara sõltumatute programmide) kokkupanekud, mis võivad töötada erinevate platvormide ja operatsioonisüsteemidega. Viimaste hulgas saate esile tõsta ka ristkomplekti rühma, mis on võimeline masina koodi ja käivitatavate moodulite (faile) kogumiseks teiste arhitektuuride ja operatsioonisüsteemi jaoks.
Assamblee ei pruugi olla esimene ja mitte viimane samm, kuidas saada programmi täitevooduli saamiseks. Seega annavad paljud kõrgetasemeliste programmeerimiskeelte kompilaatorid tulemust koostajakeeles programmi kujul, mida kokkupaneku protsessid tulevikus. Samuti ei pruugi saadud assamblee täita ja objekti moodulit, mis sisaldab masina koodi hajutatud plokke ja programmi andmeid, millest (või mitmetest objektimoodulitest) on tulevikus linkiredaktori abil võimalik saada käivitatava faili abil.
Spetsiaalsed mälu rakud, mis asuvad otse protsessoris. Registritega töötamine toimub palju kiiremini kui RAM-rakkudega, nii et registrid on aktiivselt kasutatud nii programmide programme ja kõrgetasemeliste keelte kompilaatorid.
Registrite nimed pärinevad nende eesmärgist:

EAX / AX / AH / AL (akuregister) - aku;
EBX / BX / BH / BL (baasregister) -Registeerium andmebaas;
ECX / CX / CH / CL (Counter Register) - Counter;
EDX / DX / DH / DL (andmete register) - Data Register;
ESI / SI (lähteindeksi register) - lähteindeks;
EDI / DI (sihtkoha indeksiregister) - vastuvõtjaindeks (saaja);
ESP / SP (Stack Pointer Register) - Stack Pointer Register;
EBP / BP (Alus Pointer Register) - Stack Frame baasi pointer Register.

Ridade töötlemise käsud
Töötada ridade või sümbolite või numbrite ahelatega (s.t.
mOVS - saatmise stringid;
cMPS - kahe rea võrdlus;
seas - search sisse antud elemendi stringis;
lod - aku laadimine (AL või AH registrid) alates liinist;
sTOS - aku stringi salvestamise element (registreerib AH või AL).

Väärikus

· Assembleri keel võimaldab teil kirjutada kiirema ja kompaktsem koodi, mis on selle töötleja jaoks üldiselt võimalik.
· Operatsiooni kiirus - optimeerides arvuti algoritmi ja / või ratsionaalsemat juurdepääsu RAM-ile (näiteks kui kõik lähteandmed hoitakse protsessori registrites, saate välja jätta tarbetut juurdepääsu OP-le), andmete ümberjaotamine, tabeli arvutamise funktsioonid ;
· Koodi maht (kaasa arvatud tõhus kasutamine vahetulemused). Koodimahu vähendamine suurendab sageli ka programmi täitmise kiirust.
· Konkreetse platvormi konkreetsete võimaluste maksimaalse kasutamise tagamine, mis võimaldab teil luua tõhusamaid programme, sealhulgas vähem ressursside intensiivseid.
· Programmeerimine kokkupanekukeel on võimalik otsene juurdepääs seadmetele ja eelkõige I / O sadamatele, protsessoriregistritele jne paljudes operatsioonisüsteemides, otsekontakt registrite registrite registrite taotlusprogrammidest perifeersed seadmed Blokeeritud süsteemi usaldusväärsuse ja erandite "külmumiste" jaoks.
· Assembleri keelt kasutatakse sageli riistvara juhtide ja operatsioonisüsteemi tuumade loomiseks, kui ajutine tööleping on oluline. perifeersed seadmed alates keskprotsessor.
· Assembleri keelt kasutatakse "BIOS-i püsivara" loomiseks.
· Assembleri keele abil luuakse sageli kompilaatorite ja kõrgetasemeliste tõlkide masinast sõltuvate subprogrammide ja platvormide kokkusobivuse rakendamisega.
· Discassembler programmi abil saate aru programmi operatiivseid algoritme uuringus uuringu puudumisel kõrgetasemelise keele nimekirja puudumisel, õppides ainult masina koodeid, kuid keerulistes notariviaalsetes programmides on see väga töömahukas.

Puudused
· Komplekti keele masinoendi ("madal" tase) tõttu on inimene raskem lugeda ja mõista programmi seda võrreldes kõrgetasemeliste programmeerimiskeeltega; Programm koosneb liiga "väikestest" elementidest - masina käsud, vastavalt programmeerimine ja silumine on keerulised, keerukus ja tõenäosus vigade tegemise kasvavad.
· Kvaliteedi koodi saamiseks on vaja suurendada programmeerija kvalifikatsiooni: kood, mis on kirjutatud keskmise programmeerija poolt kokkupaneku keeles, ei ole tavaliselt parem või isegi halvem kui optimeeriva kompilari loodud kood võrreldavate programmide jaoks, mis on kirjutatud kõrgetasemelises keeles.
· Kõrgetasemelise programmi saab uue sihtplatvormi omaduste automaatse optimeerimisega uuesti kompileerida, võib uue platvormi all olev programm kaotada oma eelise kiirusest ilma käsitsi ümberkirjutamiseta.
· Reeglina, vähem raamatukogusid saadaval võrreldes kaasaegsete tööstuslike programmeerimiskeelte.
· Teise arhitektuuri- ja käsu süsteemiga arvutite programmide kaasaskantavus puudub.

Ühilduvus
Programmi, mis on ette nähtud ühe tüüpi kokkupanekut ei saa koostada teise ilma radikaalsete muutmiseta või automaatse konversioonita! Aga isegi "nende" tüüpide seas on partii, disansioon ja palju erinevusi: sisse märksõnadKirjade kujundamise reeglites, kaasasolevate raamatukogude ja päisefailide eeskirjades jne. Kui ainult ühilduvus ei ole selgesõnaliselt, on vaja programmi edastada sama, mis see on ette nähtud. Vastasel juhul saada valmis muudatuste tegemiseks (st vastuvõtmiseks). Erinevused ilmnevad sageli kõige ootamatutes kohtades. Mõned kokkupanekud mõistavad, et "MOV EAX, X" on sama kui "mov EAX, [x]", mõned - ei. Nad komistavad ja väljastavad vea. Aga midagi muud! Palju hullem, kui tõlkija tõlgendab seda disaini vaikselt "Mov EAX, nihuta X", mis ei ole täpselt sama! Nii et programmi ülekandmisel peate olema väga ettevaatlik.

Operatsioonisüsteemide ühilduvus. MS-DOS-orienteeritud programmid, millel ei ole mitte ainult transporditavad, vaid ka talumatused. Nende jaoks on iseloomulik otsene koostoime NT-ga saadaval olevate seadmetega ainult tuumaenergia tasemest, rääkimata sellest, et 16-bitine koodi nimetatakse 32-bitistest rakendustest ainult DPMI kaudu ja siis mitte ilma Truscy kaudu.

Seega on enne kokkupaneku programmi edastamist vaja kindlaks teha, millise tõlkija ja operatsioonisüsteemi see on mõeldud! "Native" kontekstist püütud kokkupaneku fragmentidega on veelgi hullem. Oletame, et mõnes artiklis on kirjeldatud huvitavat anti-ahela vastuvõttu ja antakse kokkupanek koodi, kuid kuidas seda programmis kinnistada - ei ütle. Tuttav olukord, kas pole? Otseülevaade ei ole võimalik - tõlkija on metsikult lõhustuv, kuid midagi ütleb.

Pehme koost

Valmistatud tekst on lähteandmed eriprogrammide jaoks, mida nimetatakse kokkupanekuteks. Assembleri ülesanne on muuta programmi tekst binaaalsete käsude kujul, mida saab teha mikroprotsessori poolt. Kui süntaksi vigu tuvastatakse, ei ole saadud koodi loodud. Käivitatava faili loomise protsess toimub kahes etapis:

ASM -\u003e .obj -\u003e .exe / .dll / .com

Esimeses etapis (.ASM -\u003e .Obj) kokkupanekufailist koostamisel saadakse pikenduslaiendiga objekti koodifailid (täiendavaid inc faile saab kasutada). Fail laiendiga.Obj Sisaldab optimeeritud masina koodi tingimusel, et süntaktilised ja semantilised vead ei ole täidetud. Kui allikafailis avastatakse vead koos programmiga kokkupanekukeelses programmis, annab programmeerija tuvastatud vigade loetelu, milles vead on määratletud rida numbriga, kus nad avastatakse. Programmeerija täidab tsükliliselt redigeerimis- ja koostamismeetmeid, kuni kõik vead kõrvaldatakse lähtefailis. Praeguses etapis on juba võimalik saada valmis programmi, kuid kõige sagedamini puudub mõned komponendid. Kui kompilaator mingil põhjusel (valesti registreeritud tee sellise faili või faili puudu) ei leia Inc-faili, siis hoiatus väljastatakse ja OBJ-fail on vastu võetud.

Komplekt, reeglina toimub kahes vastuvõttudes. Esimesel passis, mnemonilised käsud, nädalas numbrid ja sümbolid sobivate masina koodid on tõlgitud, arvutatud, kui palju käsk on hõivatud asukoha poolt tuvastatud nimed sisestatud kasutaja (konstandid, sildid, muutujad) nende tüüp ja numbriline väärtus on kirjutatud tabelisse. Samas tabelis on see registreeritud, millest tegeleb segmentide algus / lõpu aadresside aadresside, segmentide algus / lõpu aadressid, protseduuride alguse aadressid asendatakse teise läbipääsuga Märgiste nimed asendatakse.

Assamblee tulemusena saadakse nn objekti fail ". Täiendava funktsioonina võib kokkupanek luua programmi nimekirja faili.

Tavaliselt peate objekti koodifailide saamiseks täitma asjakohase kokkupanek programmi (Microsoft ML.exe ja Tasma.exe ja Tasma.exe programmide firma Borland), mis näitab käsurea Faili nimi koos programmi tekstiga.

See väljakutse on minimaalselt vajalik. Välja arvatud nimi tekstifailPeate määrama kokkupaneku võimalusi. Nende programmide dokumentatsioonis tuleks otsida rohkem teavet assamblee programmi võimaluste kohta.

Paigutusprogramm

Järgmine etapp (.Obj -\u003e .exe / .dll / .com) nimetatakse sidemeks või paigutuseks ja pakub programmeerija kasutatava iseloomu nimesid reaalsetele aadressidele.

Võrdle kuueteistkümnendsaali OBJ ja Exe failimis sul on. EXE failil on sama baitide järjestus nagu Obj-failis. Aga teine \u200b\u200bkui see on ikka veel olemas: nimi kokkupandud faili, kokkupanek versioon, "oma" segment, ja nii edasi.

See "teenus" teave nende juhtumite jaoks, kui teie käivitatav fail soovite mitmest koguda. Kui arendate suured rakendused Allikas tekst seisneb reeglina mitme moodulitena (faile allika tekstidega), sest see on ebamugav salvestada kõik tekstid ühes failis - neid on raske navigeerida.

Iga moodul koostatakse objekti koodi eraldi faili. Kõik need failid on ette nähtud koodi / andmete / stack segmendid, mis seejärel tuleb kombineerida ühte. Ja käivitatav fail, mida me peame saama ainult ühe - ühe koodi / andmete / stack segmendiga. See on see link ja teeb: lõpetab aadresside linkide määratlus ja ühendab, kui see on vajalik mitmed tarkvaramoodulid ühes. Ja see meie koos meiega toimub.

Lisaks on vaja lisada masina koodi meie moodulitele, mis rakendavad erinevaid standardseid funktsioone (näiteks pattu või matemaatiliste funktsioonide arvutamine). Sellised funktsioonid sisalduvad raamatukogudes (failid standardse laiendusega. Lib), mis tarnitakse kompilariga või luuakse iseseisvalt. Seetõttu hõlmab ettevalmistusprotsess tingimata paigutuse etappi, kui kõik tundmatud muutujate või funktsioonide aadress on kindlaks määratud.

Objekti moodulite ühendamise protsess ühele failile viiakse läbi spetsiaalse linkeri programmi või kogujaga (Microsofti ja Tlink.exe Company Borland) link.exe programm), mis täidab objekti moodulite ja standardfunktsioonide masina koodi seondumist, leidmist Neid raamatukogudes ja genereerib rakenduse rakendamine on konkreetse platvormi käivitatav kood.

Käivitatav kood on täielik programm koos Com, DLL või Exe Extension, mida saab käivitada arvutis paigaldatud operatsioonisüsteemi, mille jaoks see programm loodi. Käivitava faili nimi määrab esimese OBJ faili. Seoses Te peate valima käsureale:

link prog1.obj prog2.obj või tlink prog1.obj prog2.obj

Objekti faili sisu analüüsitakse linkeriga. See määrab, kas on olemas programm välised lingidSee tähendab, kas programmi Call Command Program sisaldab ühes objekti mooduli raamatukogudest (linkide raamatukogu). Linker leiab need lingid objekti failis, koopiad raamatukogudest vajalikud protseduurid, ühendab need objekti failiga ja loob käivitatava faili (käivitatava faili). Kui lisafunktsioonid Linker võib luua vastu võetud käivitatava faili plaani sisaldava ristliidese faili.

Kasutatud allikad
1. https://ru.wikipedia.org/
2. http://natalia.appmat.ru/
3. http://www.codenet.ru/
4. http://wasm.ru/
5. Norton P., Sauke D. kokkupanek keel IBM PC. M.: Arvuti, 1992.

1. Millal ja kes leiutas perforatsiooni masinad? Milliseid ülesandeid neile lahendati?

2. Mis on elektromehaaniline relee? Millal loodud relee andmetöötlusseadmed? Millist kiirust nad omavad?
3. Kus ja millal oli esimene arvuti ehitatud? Mida see kutsus?
4. Milline on John Von Neumani roll arvuti loomisel?
5. Kes oli esimese kodumaise arvuti disainer?
6. Mis siis elementide alus Loodud esimese põlvkonna masinad? Millised olid nende peamised omadused?
7. Millise elementaarse andmebaasi loodud teise põlvkonna masinate? Millised on nende eelised võrreldes arvuti esimese põlvkonnaga?
8. Mis on integraallülitus? Millal olid esimesed integraallülituste arvutid? Mida nad kutsusid?
9. Millised on uued arvuti kasutamisvaldkonnad kolmanda põlvkonna masinate välimusega?
10. Mis on mikroprotsessor? Millal ja kus oli esimene mikroprotsessor?
11. Mis on mikrovm ja personaalarvuti?
12. Milliseid PC on maailma kõige levinumad?
13. Mis on superarvuti?
14. Mis on klastrite arvutisüsteemid?
15. Milline on viienda põlvkonna arvutite omadus?

Nimetage esimene arvutusseade. Kalkulaator Aritmometer Vene hinded, mis idee panna keskel

19. sajandi inglise matemaatik Charles Babbage?

Idee luua tarkvara hallata loendamise masinmillel on aritmeetiline seade, juhtimisseade, samuti sisend- ja printimisvahend

Loomise idee mobiiltelefon

Arvuti hallatavate robotite loomise idee

Mis aastal ja kus oli esimene arvuti, mis põhineb elektroonilistel lambidel?

1945, USA

1944, Inglismaa

1946, Prantsusmaa

Millised olid kolmanda põlvkonna arvutid loodi?

Integreeritud skeemid

pooljuhid

elektroonilised lambid

superboundi integraallülitused

Mis oli esimese personaalarvuti nimi?

Nimetage arvuti keskseade.

Protsessor

Süsteemiplokk

Toiteallikas

Emaplaat

Protsessor töötleb esitatud teavet:

Sisse kümnendsüsteem Märge

Inglise keeles

Vene keeles

Mootori keeles (binaarkoodis)

Kasutatud numbrilise ja tekstiteabe sisestamiseks

Klaviatuur

Skannerit kasutatakse ...

Piltide ja tekstisõnumite piltide sisestamiseks

Selle jaoks spetsiaalse käepideme joonistamiseks

Kursori liigutamine monitori ekraanil

Holograafilised pildid

10. Millist printeri tüüpi on soovitatav kasutada finantsdokumente printimiseks?

Matrixi printer

Jet Printer

Laserprinter

Mis tüüpi printer on soovitatav kasutada esseede printimiseks?

Matrixi printer

Jet Printer

Laserprinter

Mis tüüpi printer on soovitatav kasutada fotosid printimiseks?

Matrixi printer

Jet Printer

Laserprinter

Arvuti sanitaar- ja hügieeninõudete rikkumise korral võib pakkuda kahjulikku mõju inimeste tervisele ...

Elektroonilise kiirguse toru jälgimine

Monitori vedelkristallide jälgimine

Plasmapaneelid

Kui arvuti on välja lülitatud, kustutatakse kogu teave alates ...

Muutmälu

Kõvaketas

Laserketas

Millises arvutis arvutisse salvestatakse?

Väline mälu;

pROTSESSOR;

Optilistel rajadel on väiksem paksus ja asetatakse tihedalt ...

Digitaalne videomootor (DVD-ketas)

Kompaktne ketas (CD-ketas)

Sisendseadmed sisestavad ...

Väljundseade sisaldab ...

Klaviatuur, hiir, juhtkang, kerge sulgedest, skanner, digitaalne kaameraMikrofon

Heli veerud, monitor, printer, kõrvaklapid

Hdd, protsessor, mälumoodulid, emaplaatdiskett

Programmi nimetatakse ...

Arvutiprogramm suudab juhtida arvuti tööd, kui see on ...

RAM-is

Paindlikul kettal

Kõvakettal

CD-plaadil

Andmed on ...

Käskude järjestus, mida arvuti teostab andmete töötlemise käigus

Digitaalsel kujul esitatud teave ja töödeldakse arvutis

Andmed, millel on nimi ja salvestatud pikaajalises mälus

Fail on ...

Tekst trükitud arvutisse

Digitaalsel kujul esitatud teave ja töödeldakse arvutis

Programm või andmed, millel on nimi ja salvestatud pikaajalises mälus

Paindliku ketta kiire vormindamisega ...

Tühjenda kettakataloog

Kõik andmed kustutatakse

Plaadi defragmentimine toimub

Plaadi pinna kontrollimine

Paindliku ketta täielik vormindamine ...

kõik andmed kustutatakse

teostatakse ketta täielik kontroll.

tühjenda kettakataloog

ketas muutub süsteemseks

Mitme taseme hierarhilises failisüsteemis ...

Failid salvestatakse pesastatud kaustade süsteemis.

Failide salvestatakse süsteemi, mis on lineaarne järjestus

Arvutiseadmete arendamise ajalugu:

1. Nimetage esimene arvutimisseade.
1) ABAK
2) kalkulaator
3) aritmometer
4) Venemaa tulemused

2. Milline idee pandi 19. sajandi keskel English Mathematician Charles Babbage?
1) idee luua tarkvara kontrollitud loendatav masin, millel on aritmeetiline seade, juhtimisseade, samuti sisend- ja printimisvahend
2) idee luua mobiiltelefoni
3) arvuti hallatavate robotite loomise idee
3. Nimetage esimesed programmeerija arvutiautod.
1) Hell Lavley
2) Sergei Lebedev
3) Bill Gates
4) Sophia Kovavavskaya

4. Millisel aastal ja kus oli esimene arvuti, mis põhineb elektroonilistel lambidel?
1) 1945, USA
2) 1950, NSVL
3) 1944, Inglismaa
4) 1946, Prantsusmaa

5. Millised olid kolmanda põlvkonna arvuti loodud?
1) integraallülitused
2) pooljuhid
3) elektroonilised lambid
4) Super-kõrge integraallülitused

6. Mis oli esimene personaalarvuti?
1) Apple II
2) IBM PC
3) Dell.
4) Corvette
Arvuti seade ......................... 15
1. Nimetage arvuti keskseade.
1) protsessor
2) süsteemi plokk
3) toiteallikas
4) emaplaat
2. Kuidas füüsiline teave salvestatud ja edastatakse?
1) arvud;
2) programmide kasutamine;
3) ilmub elektriliste signaalide kujul.

3. Protsessor töötleb esitatud teavet:
1) kümnendnumbrisüsteemis
2) inglise keeles
3) vene keeles
4) Masinal (binaarkoodis)
4. Kasutatud numbrilise ja tekstiteabe sisestamiseks
1) klaviatuur
2) hiir
3) trekball
4) käepide
5. Kõige olulisem omadus Koordinaatide sisendseadmed on resolutsioon, mis on tavaliselt 500 dpi (dot tolli kohta - punktid tolli kohta (1 tolli \u003d 2,54 cm)), mis tähendab ...
1) hiire liigutamisel ühe tolliga liigub hiirekursor 500 punkti võrra
2) Hiire liigutamisel 500 punkti võrra liigub hiirekursor ühe tolli
6. Skannerit kasutatakse ...
1) piltide ja teksti dokumentide sisestamiseks
2) spetsiaalse käepideme joonistamiseks
3) kursori liigutamine monitori ekraanil
4) Holograafiliste piltide saamine
Teabe väljundseadmed ................. 21
1. Milline printeri tüüp on asjakohane kasutada printimiseks finantsdokumente?
1) maatriksprinter
2) tindiprinter
3) Laserprinter
2. Millist printeri tüüpi on soovitatav kasutada abstraktsete printimiseks?
1) maatriksprinter
2) tindiprinter
3) Laserprinter

1. Mis tüüpi printer on soovitatav kasutada fotosid printimiseks?
1) maatriksprinter
2) tindiprinter
3) Laserprinter
2. Arvuti sanitaar- ja hügieeninõudete rikkumise korral võib pakkuda kahjulikku mõju inimeste tervisele ...
1) Monitor elektroonilise kiirguse toru
2) Monitor vedelkristallidel
4) plasmapaneelid
3. Seade, mis annab teavet ja lugemist teavet nimetatakse ...
1) Drive või Drive

4. Kui arvuti on välja lülitatud, kustutatakse kogu teave ...
4) RAM
5) kõvaketas
6) laserketas
7) Dieedid
13. Millises arvutis salvestatakse teavet?
1) väline mälu;
2) jälgimine;
3) protsessor;
2. Optilistel rajadel on väiksem paksus ja asetatakse tihedalt ...
1) Digitaalne videomootor (DVD-Disk)
2) Kompaktne ketas (CD-ketas)
3) diskett
3. Millises ketasteabe salvestatakse kontsentrilistele teedele, millele magnetiseeritud ja mitte-vitrate sektsioonid vahelduvad
1) disketil
2) kompaktsel ketas
3) DVD-plaadil

4. Sisendseadmetes sisalduvad ...

1) kõvaketas, protsessor, mälumoodulid, emaplaat, diskett
5. Väljundiseadmesse kaasas ...
1) klaviatuur, hiir, juhtkang, kerge sulgedest, skanner, digikaamera, mikrofon
2) Heli veerud, monitor, printer, kõrvaklapid
3) kõvaketas, protsessor, mälumoodulid, emaplaat, diskett
6. Programmi nimetatakse ...

7. Arvutiprogramm võib juhtida arvuti tööd, kui see on ...
1) RAM-is
2) paindlikul kettal
3) kõvakettal
4) CD-plaadil
8. Andmed on ...
1) käskjärjestus, mida arvuti andmete töötlemise käigus esineb
2) teave digitaalsel kujul ja töödeldakse arvutis
3) andmed, millel on nimi ja salvestatud pikaajalises mälus
9. Fail on ...
1) Arvutisse trükitud tekst
2) teave digitaalsel kujul ja töödeldakse arvutis
3) programm või andmed, millel on nimi ja salvestatud pikaajalises mälus

10. Paindliku ketta kiire vormindamisega ...
1) Puhastage kettakataloog puhastatakse.
2) Kõik andmed kustutatakse
3) ketta defragmentimine
4) Kontrollige


Kõigepealt me \u200b\u200bmõistame terminoloogiat.

Masina kood - konkreetse arvutusmasina (protsessori) käskude süsteem, mida tõlgendatakse otse protsessorisse. Reeglina on meeskond täisarv, mis on kirjutatud töötleja registrisse. Protsessor loeb seda numbrit ja teostab operatsiooni, mis vastab sellele käsule. Rahvilikult kirjeldatakse seda raamatus, kuidas programmeerijaks saada.

Madala taseme programmeerimiskeel (Madala taseme programmeerimiskeel) on programmeerimiskeel, mis on võimalikult lähedal masina koodide programmeerimisele. Erinevalt masina koodidest vastab iga käsk madalale tasemele mitte-numbrile, kuid käsu lühendatud nimi (mnemoniline). Näiteks lisand on sõna lisamise vähendamine. Seetõttu lihtsustab madala taseme keele kasutamine märkimisväärselt kirjalikult ja lugemisprogramme (võrreldes masina koodide programmeerimisega). Madala tasemekeel on seotud konkreetse protsessoriga. Näiteks, kui kirjutasite PIC-protsessori madala taseme keele programmi, võite olla kindel, et see ei tööta AVR-protsessoriga.

Kõrgetasemeline programmeerimiskeel - See on programmeerimiskeel, võimalikult lähedal inimkeelele (tavaliselt inglise keelde, kuid on programmeerimiskeele riiklikes keeltes, näiteks keel 1c asub vene keeles). Kõrgetasemeline keel on praktiliselt seotud konkreetse protsessoriga või operatsioonisüsteemiga (kui konkreetseid direktiive ei kasutata).

Kokkupanek - See on madala taseme programmeerimiskeel, millel kirjutate oma programme. Iga protsessori puhul on olemas oma kogumiskeel.

Kokkupanek - See on spetsiaalne programm, mis teisendab (koostab) oma programmi lähtetekstid koostajakeelsesse kirjutatavasse faili (faili exe või com laiendiga). Täpne, siis on vaja täiendavaid programme, mis on vajalikud käivitatava faili loomiseks ja mitte ainult kokkupanekuks. Aga sellest hiljem ...

Enamikul juhtudel ütleb kokkupanek ja tähenda "kokkupanekukeel". Nüüd sa tead, et need on erinevad asjad ja ütlevad, et mitte päris õige. Kuigi kõik programmeerijad teid mõistavad.

Oluline!
Erinevalt kõrgetasemelistest keeltest, nagu Pascal, Beysik jne, on iga assamblee jaoks oma assamblee keel. Seda reeglit eristub radikaalselt kõrgetasemeliste keelte kokkupanekukeelega. Programmi allikatekstid (või lihtsalt "allikad"), mis on kirjutatud kõrgetasemelises keeles, saate enamikul juhtudel kompileerida erinevaid töötlejaid ja erinevaid operatsioonisüsteeme. Kokkupanek allikate teha seda palju raskem. Muidugi see erinevus ei ole peaaegu materiaalne erinevatele assambleele, mis on mõeldud samadel töötlejatele. Kuid selle küsimuse fakt on see, et iga protsessori puhul on olemas oma assamblett ja selle kokkupanek keel. Selles mõttes on kõrgetasemelistes keeltes palju lihtsam programmeerida. Kuid kõik naudingud tuleks maksta. Kõrgetasemeliste keelte puhul saame selliseid asju kokku puutuda suurem käivitatav fail, halvim kiirus jne


Selles raamatus räägime ainult programmeerimisest arvutite programmeerimisest Intel protsessoritega (või ühilduva). Selleks, et praktikas kontrollida näiteid raamatus, siis on vaja järgmisi programme (või vähemalt mõned neist):

  1. . Hea programmEriti algajatele. Sisaldab allika redaktorit ja mõnda muud kasulikke asju. Töötab Windowsis, kuigi programmid on kirjutatud DOS-i all. Kahjuks maksab programm raha raha (kuid see on seda väärt))). Üksikasjalikuma teabe saamiseks vaadake veebisaiti http://www.emu8086.com.
  2. - Borlandi turbo kokkupanek. Saate luua programme nii DOS-i kui ka Windowsi jaoks. Samuti väärt raha ja hetkel enam toetatud (ja Borland ei ole olemas). Üldiselt on asi hea.
  3. - Assamblee Microsoft (dešifreeritakse makro kokkupanek, ja mitte Microsoft Assembler, nii palju tähelepanuta) mõelda. Võib-olla kõige populaarsem assambler Intel protsessorite jaoks. Seni toetatud. Tingimuslikult vaba programm. See tähendab, et kui ostate selle eraldi, maksab see raha. Kuid see on saadaval tasuta MSDN abonendid ja siseneb Microsofti Visual Studio tarkvarapaketti.
  4. - kokkupanek Watcom-st. Nagu kõik teised, on eelised ja puudused.
  5. - Sellel on tagasihoidlikud võimalused, kuid tal on suur pluss - siseneb standardse Windowsi komplekti. Otsige seda Windowsi käsk või Windows \\ System32 kausta. Kui te ei leia, siis teiste Windowsi kataloogi kaustades.
  6. Samuti on soovitav. Edastamise filmihaldur, nagu Wolves ülem (VC) või Norton ülem (NC), ei takista. Oma abiga saate näha ka kuueteistkümnendate failikoode, kuid seda ei saa redigeerida. Tasuta kuueteistkümnendad toimetajad internetis on üsna palju. Siin on üks neist: McAfee FileSight V2.1. Sama toimetaja saab kasutada programmide allika tekstidega töötamiseks. Kuid mulle meeldib veel seda teha järgmise toimetajaga:
  7. Tekstiredaktor. Oleme huvitatud teie programmide allikate tekstide kirjutamisest. Ma saan soovitada vaba toimetaja PSPAD, mis toetab paljusid programmeerimiskeeli, sealhulgas kokkupanekukeel.
Kõik käesolevas raamatus esitatud programmid (ja programmi näited) on testitud jõudluse jaoks. Ja see on need programmid, mida kasutatakse selles raamatus esitatud programmide näidete rakendamiseks.

Ja veel - lähtekoodi kirjutatud näiteks EMU8086, on veidi erinev kood kirjutatud näiteks rõivas. Need erinevused täpsustatakse.

Enamik raamatuid näidatud raamatus on kirjutatud. Esiteks, sest see assambler on kõige populaarsem ja veel toetatud. Teiseks, sest tegemist on MSDNiga ja Microsofti Visual Studio tarkvarapaketiga. Noh, kolmandik, sest ma olen õnnelik omanik litsentseeritud koopia masin.

Kui teil on juba ühtegi kokkupanekut, mis ei ole ülaltoodud loendis lisanud, peate oma süntaksist iseseisvalt tegelema ja lugege kasutusjuhendit, et õppida sellega töötama. Kuid käesolevas raamatus esitatud üldised soovitused on õiglased kõikidele (hästi või peaaegu igale) kokkupanekule.

Selleks, et masin teostaks isiku meeskondi riistvaratasemel, on vaja täpsustada teatavat tegevuste jada "Nolikovi ja üksuste" keeles. Selle ettevõtte assistent on kokkupanek. See on utiliit, mis töötab käskude ülekandmisega masina keelele. Programmi kirjutamine on siiski väga aeganõudev ja keeruline protsess. See keel ei ole mõeldud kopsude ja lihtsate toimingute loomiseks. Praegu kasutati kõiki kasutatavaid programmeerimiskeelt (kokkupanek töötab hästi), et kirjutada erilisi tõhusaid ülesandeid, mis mõjutavad tugevalt riistvara toimimist. Peamine eesmärk on luua mikrokomandi ja väikesed koodid. See keel annab rohkem võimalusi kui näiteks Pascal või C.

Assembleri keele lühikirjeldus

Kõik programmeerimiskeeled on jagatud tasemest: madal ja kõrge. Komplekti "perekonna" süntaktiline süsteem erineb selles, et see ühendab korraga kõige levinumate ja kaasaegsemate keelte eeliseid. Teiste, nende sugulaste ja asjaoluga, et arvutisüsteemi saab täielikult ära kasutada.

Kompleri eristusvõime on lihtsus kasutada. See erineb nendest, kes töötavad ainult kõrge tasemega. Kui võtate arvesse sellist programmeerimiskeelt, toimib kokkupanek kaks korda kiirem ja parem. Selleks, et kirjutada valguse programmi selles, liiga palju aega ei vaja.

Lühidalt keele struktuuri kohta

Kui me räägime üldiselt keele toimimise töö ja struktuuri kohta, võite öelda kindlasti, et selle käsud vastavad täielikult protsessori meeskondadele. See tähendab, et kokkupanemine kasutab mnemokodesi, mis on kõige mugavam isik salvestada.

Erinevalt teistest programmeerimiskeeltest kasutab kokkupanek teatud silte mälurakkude salvestamiseks aadresside asemel. Need tõlgitakse nn direktiividesse. Need on suhtelised aadressid, mis ei mõjuta protsessori toimimist (ei tõlgita masina keelde) ja vajalikud programmeerimiskeskkonna tunnustamiseks.

Iga protsessori joone puhul on selle olukorraga iseseisv korrektne protsess, sealhulgas tõlgitud

Komplekti keel on mitmeid süntakse, mida arutatakse artiklis.

Plussid keele

Kõige olulisem ja mugavam kohandamine kokkupanekukeel on see, et on võimalik kirjutada mis tahes programmi protsessor, mis on väga kompaktne. Kui kood osutub tohutuks, siis mõned protsessid ümbersuunamised ram. Samal ajal teevad nad kõike kiiresti ja ebaõnnestumisteta, kui muidugi kontrollivad nad kvalifitseeritud programmeerijat.

Juhid, operatsioonisüsteemid, BIOS, kompilaatorid, tõlgid jne - See on kõik kokkupanekukeeles programm.

Kui kasutate desamblerit, mis teeb masina tõlge ühes tõlke, on võimalik kergesti aru saada, kuidas üks või muu süsteemi ülesanne töötab, isegi kui selgitust ei ole. See on siiski võimalik ainult siis, kui programmid on kerged. Kahjuks ei ole üsna raske mõista.

Miisi keelde

Kahjuks on algaja programmeerijad (ja sageli spetsialistid) keelt raskelt lahti võtta. Kokkupanek nõuab täpsem kirjeldus Vajalik meeskond. Tänu sellele, et teil on vaja kasutada masina käske, kasvab vigade tõenäosus ja täitmise keerukus.

Et kirjutada isegi kõige rohkem lihtne programmProgrammeerija peab olema kvalifitseeritud ja selle teadmiste tase on üsna kõrge. Keskmine spetsialist, kahjuks kirjutab sageli halbu koode.

Kui platvorm, mille programmi luuakse uuendatakse, siis kõik käsud tuleb kopeerida käsitsi - see nõuab keelt ise. Assembler ei toeta protsesside toimimise automaatse reguleerimise funktsiooni ja asendage kõik elemendid.

Keelerühmad

Nagu juba eespool mainitud, on iga protsessor oma käskude kogum. Kõigi tüüpide kõige lihtsamad elemendid on järgmised koodid:


Direktiivide kasutamine

Mikrokontrollerite programmeerimine keeles (kokkupanek See võimaldab ja suurepäraselt hakkab toimivate funktsioonidega kõige madalama tasemega enamikul juhtudel edukalt lõpeb. Kõige parem on kasutada piiratud ressursiga töötlejaid. 32-bitiste seadmete jaoks see keel Sobib ideaalselt. Sageli koodid näete direktiive. Mis see on? Ja mida kasutatakse?

Kõigepealt tuleb rõhutada asjaolu, et direktiivid ei edastata masina keelele. Nad reguleerivad kompilaatori jõudlust. Erinevalt meeskonnad, need parameetrid erinevad funktsioonidErinevad tänu erinevatele protsessoritele, kuid teise tõlkija kulul. Peamiste direktiivide hulka saab eraldada järgmiselt:


nime päritolu

Tänu keele nimele - "kokkupanek"? Me räägime tõlkijast ja kompilarist, mis toodavad ka andmete krüpteerimist. Inglise assendrist ei tähenda midagi muud kui kollektorit. Programmi ei kogutud käsitsi, kasutati automaatset struktuuri. Pealegi on praegu kasutajad ja spetsialistid kustutasid mõistete vahe. Sageli kokkupanek Call programmeerimiskeeli, kuigi see on lihtsalt utiliit.

Tänu üldise aktsepteeritud kogumise nime tõttu on mõnedel ekslik lahendus, et on olemas üks madala taseme keel (või selle standardnormid). Selleks, et programmeerija mõista, milline struktuur on umbes, on vaja täpsustada, mille jaoks kasutatakse platvormi üks või mõnda muud kokkupanekukeele.

Makrofid

Suhteliselt hiljuti loodud kokkupanekukeelsed keeled on Macrosses. Nad hõlbustavad nii õigekirja ja programmi täitmist. Tänu nende kohalolekule täidab tõlkija kirjaliku koodi aegadel kiiremini. Tingimusliku valiku loomisel saate kirjutada tohutu meeskondade ploki ja makrode kasutamist on lihtsam kasutada. Nad lülituvad kiiresti meetmete vahel, kui tingimus või mittetäitmine on täitmine.

Makro-keeledirektiivide kasutamisel saab programmeerija koguja makrosid. Mõnikord saab seda laialdaselt kasutada ja mõnikord vähendatakse selle funktsionaalseid funktsioone ühe käsuga. Nende kohalolek kood hõlbustab sellega tööd, muudab selle arusaadavamaks ja visuaalsemaks. Siiski peaks olema tähelepanelik olla tähelepanelik - mõnel juhul makrosid vastupidi halvendasid olukorda.