Nízkoúrovňové programovacie jazyky. Kedy bol assembler (assembler) a počítačový jazyk? Identifikátory, celé čísla, symboly, komentáre, rovnocennosť

Programovací jazyk

Assembler je nízkoúrovňový programovací jazyk, ktorý je formát pre záznamové príkazy, výhodné pre ľudské vnímanie.

Príkazy Assembler Languages \u200b\u200bsú jedným z jedných zodpovedať procesorovým tímom a v skutočnosti sú vhodnou symbolickou formou nahrávania (mnemokode) príkazov a ich argumentov. Jazyk Assembler poskytuje aj základné softvérové \u200b\u200babstrakcie: viazanie častí programu a dát po tagoch \u200b\u200bso symbolickými menami a smernicou.

Smernice Assembler vám umožňujú zahrnúť dátové bloky v programe (explicitne alebo čítať zo súboru); opakujte určitý fragment špecifikovaného počtu času; kompilovať fragment podľa stavu; Nastavte vykonanie adresy fragmentu, zmeňte hodnoty štítkov počas procesu kompilácie; Použite Makro definície s parametrami a inými.

Každý model procesora má v zásade vlastný súbor príkazov a príslušný jazyk (alebo dialektu) Assembler.

Výhody a nevýhody

  • minimálne množstvo redundantného kódu (použitie menšieho počtu príkazov a odkazov na pamäť). Ako výsledok - vysoká rýchlosť a menšia veľkosť programu
  • veľké objemy kódov, veľký počet ďalších menších úloh
  • zlá čitateľnosť kódu, obtiažnosť podpory (ladenie, pridanie príležitostí)
  • Ťažkosti s implementáciou programovacích paradigiem a iných zložitých dohovorov, zložitosť spoločného rozvoja
  • k dispozícii je menej knižníc, ich malá kompatibilita
  • priamy prístup k zariadeniu: I / O porty, špeciálne registre procesora
  • schopnosť napísať samo-modifikačný kód (t.j. metaprogramovanie a bez potreby tlmočníka softvéru)
  • maximálne "fit" pre požadovaná platforma (Používanie špeciálnych pokynov, technických vlastností "železa")
  • intolerancie na iné platformy (okrem binárnych kompatibilných).

Syntax

Všeobecne uznávaný štandard pre syntaxe jazykov assembler neexistuje. Existujú však de facto normy - tradičné prístupy, že väčšina vývojárov assemblerov sú dodržané. Hlavnými informáciami sú Intel-Syntax a AT & T-Syntax.

Všeobecný formát návodu na nahrávanie je rovnaký pre oba štandardy:

`[Tag:] opcode [operandy] [; Komentár]`

Vzhľad je priamo mnemonický pokyny pre procesor. Predpony (opakovanie, zmeny, ako napríklad adresovanie atď.) Je možné pridať k nemu. Ako operandy, konštanty, názvy registrov, adresy v pamäte RAM, atď Rozdiely medzi normami Intel a AT & T sú predovšetkým poradie prevodu operandov a ich syntaxe s rôznymi metódami adresovania.

Použité Mnemonics sú zvyčajne rovnaké pre všetky procesory jednej architektúry alebo rodiny architektov (medzi dobre známou - mnemonics procesorov a regulátorov Motorola, ARM, X86). Sú opísané v špecifikáciách procesora.

Napríklad procesor Zilog Z80 zdedil systém príkazového systému Intel I8080, rozšíril ho a zmenil Mnemonics (a registráciu označenie) na vlastnú cestu. Napríklad som zmenil Intel MOV na LD. Motorola Fireball procesory zdedili systém Command Z80, rezanie ho. Zároveň sa Motorola oficiálne vrátila do Intel Mnemonics. a B. tento moment Polovica montáž pre ohnivé gule pracuje s Intel Mnemonics a polovica s Zilog Mnemonics.

Smernica

Okrem pokynov môže program obsahovať smernice: príkazy, ktoré nie sú odoslané priamo na pokyny na obsluhu a manažérov kompilátora. Súprava a syntax sa výrazne líši a nezahŕňajú z hardvérovej platformy, ale z použitého kompilátora (generovanie dialektu jazykov v jednej rodine architektúr). Ako sada, je možné vyčleniť smernice:

  • definovanie údajov (konštanty a premenné)
  • riadenie organizácie organizácie v parametroch pamäte a výstupného súboru
  • spôsob prevádzky kompilátora
  • všetky druhy abstrakcií (t.j. prvky jazykov na vysokej úrovni) - od registrácie postupov a funkcií (na zjednodušenie vykonávania postupu programovania paradigmy) na podmienečné štruktúry a cykly (pre štruktúrovanie konštrukčného programovania)
  • makrá

Pôvod a kritika pojmu "Jazyk Assembler"

Tento typ jazykov dostal svoje meno z názvu prekladateľa (kompilátor) z týchto jazykov - assembler (Eng. Assembler - Collector). Názov tohto je spôsobený tým, že na prvých počítačoch neboli žiadne jazyky na vyššej úrovni, a jediná alternatíva k vytvoreniu programov s použitím Assembler sa naprogramovala priamo v kódoch.

Montážneho jazyka v ruštine sa často nazýva "Assembler" (a niečo spojené s ním je "Assembler"), ktorý je podľa anglického prekladu slova nesprávny, ale zapadá do pravidiel ruského jazyka. Avšak samotný assembler (program) sa tiež nazýva jednoducho "assembler", a nie "assembler Language Compiler", atď.

Použitie termínu "Assembler Language" môže tiež spôsobiť chybné stanovisko k existencii jedného jazyka s nízkou úrovňou, alebo aspoň štandard pre takéto jazyky. Keď je pomenovaný jazyk, na ktorom je napísaný špecifický program, odporúča sa špecifikovať, pre ktorú je architektúra určená a na akom dialete jazyka je napísaný.

Prvky syntaxe:

PRÍKLADY:

Ahoj, svet!

Príklad pre verzie Intel X86 (IA32)

mOV AX, CS MOV DS, AXOV MOV AH, 9 MOV DX, OFFUNT Ahoj Int 21h Xor Ax, AX Int 21h Dobrý deň: DB "Hello World!", 13, 10, "$"

Ahoj, svet!

Príklad pre verzie AMIGA

pohybovať. L #dos sa pohybujú. L 4. W, A6 JSR - $ 0198 (A6); Oldopenlibrary. L d0, A6 Beq. s. Ťah. L #hlloworld, D1 A) MoveQ # 13, D2 JSR - $ 03AE (A6); WriteChars b) jsr - $ 03B4; Putstr. L A6, A1 ťah. L 4. W, A6 JSR - $ 019E (A6); Schôdza. OUT RTS DOS DC. b "DOS.Library", 0 Helloworld DC. B "Ahoj svet!" , $ A, 0

Ahoj, svet!

Príklad pre verzie ataristu

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

Ahoj, svet!

Príklad pre verzie Intel X86 (IA32)

Nasm Linux používa spoločnosť Intel Syntax. Kompilácia a prepojenie:

  • nam -f elf -o hello.o ahoj.asm
  • ld -o ahoj ahoj.o

Časť. Data Msg DB "Ahoj, Svet!", 0xa Len EQU $ - Msg Section. Text Global _start _Start:; Vstupný bod MOVA EAX, 4; "Napíšte" systémový hovor MOV EBX, 1 MOVE ECX, MSG; Ukazovateľ na dátový MOV EDX, LEN; Množstvo údajov Int 0x80; Call Core MOV EAX, 1; "_Exit" Systémový hovor MOV EBX, 0; Návrat 0 (všetko dobré) int 0x80; Zavolajte jadra

Ahoj, svet!

Príklad pre verzie PDP-8

/ - Komentáre.

/ Ahoj Svet na assembler pre DEC PDP - 8 * 200 Dobrý deň, CLA CLL TLS / TLS Nastaví tlačovú vlajku. Tad Charac / vytvorí register indexu DCA IR1 / Ak chcete prijímať znaky TAD M6 / Konfigurovať merač pre počítať / zvýšiť znaky DCA. Ďalej, TAD I IR1 / Získajte symbol. Typu JMS / jeho typ. ISZ COUNT / Robte niečo iné? JMP NEXT / NO, zadajte ďalší znak HLT typ, 0 / typ TSF JMP Subroutine. - 1 TLS CLA JMP I Zadajte Charac ,. Ako počiatočná hodnota 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 Počet, 0 IR1 \u003d $ 10

Ahoj, svet!

Príklad pre verzie PDP-11

Program je napísaný na MACRO-11 MACROASSEMBER na kompiláciu a spustenie tohto programu v príkazovom príkazu RT-11 OS:

Makro Ahoj.

Chyby zistené: 0

Link Hello - Link. Spustiť HELLO - RUN

Názov Hello Svet; Názov. Mcall. ,. EXIT HELLO :: MOV #MSG, R1; Počiatočná adresa reťazca je $ 1: MOVB (R1) +, R0; Dostaneme nasledujúci beq Symbol; Ak sa nulová, vyjde z cyklu. Ttyout; Inak vytlačte BR 1 $ symbol; Opakovaný cyklus vykonal :. Ukončiť MSG :. ASCIZ / Ahoj, Svet! /; String Ahoj, Svet! . Ukončiť ahoj; Program Hello

Ahoj, svet!

Príklad pre verzie systému / 360, systém / 370

IBM System / 360/370/390 Základný jazyk assembler.

// EXEC MONTÁŽ ŠTARTOVATEĽA MAIN BALR 2, 0 Používanie *, 2 otvorené tlač MVC Buf, HW Dajte Print Close Print EOJ HW DC CL132 "Ahoj World" Buf DS CL132 Print DTFPR IoreaEA1 \u003d Buf, DevAdzdr \u003d SYSLST, BLKSIZE \u003d 132, * ZARIADENIE \u003d 3203, CONTROL \u003d ÁNO, PRINTOV \u003d ÁNO END END / * // EXEC LNKEDT // EXEC / * / &

Ahoj, svet!

Príklad pre verzie Apple II

* Ahoj Svet pre 6502 Apple] [* ******************************** Strout EAV $ DB3A LDY #\u003e Ahoj LDA #< HELLO JMP STROUT HELLO ASC "HELLO WORLD !", 00

Ahoj, svet!

Príklad pre verzie PDP-10

Chttyo - všetky vstupy / výstup sa vykonáva pomocou I / O kanálov. Najlepšie je urobiť symbolické názvy pre tieto kanály, ktoré používate, a spustiť ich s ch. Definujte tieto mená pomocou operátora MiDas \u003d\u003d.

Hovor je symbolickým označením na zavolanie systému. Jeho formát: .call.

Otvorte otvorí vstupný / výstupný kanál na použitie. Vyžaduje dva parametre - číslo kanálu a názov zariadenia v Sixbit.

Stratiť% LSFIL je systémový hovor, ktorý vytlačí chybové hlásenie vstupu / výstupu, ak sa to zrazu stalo.

IOT je systémový hovor, ktorý je skutočne zapojený do vstupu / výstupu. Ako parameter, musíte zadať kanál a adresu obsahujúcu kód symbolu pre výstup. Napríklad, "H predstavuje H.

TITLE PRINTHELLO A \u003d 1 CHTTYO \u003d\u003d 1; Kanál pre výstup. Štart:; Otvorenie TTY kanálu. . Zavolajte [Setz? Sixbit / Open / [. Uao, chttyo]? [Sixbit / tty /] ((SETZ))]. Stratiť% lsfil. IOT CHTTYO, [H], tlačil Ahoj Svetový symbol .. iot chttyo, ["e]. Iot chttyo, ["l]. Iot chttyo, [" l]. Iot chttyo, [o]. Iot chttyo, [^ m]; symbol novej línie. Iot chttyo, [w]. Iot chttyo, [o]. Iot chttyo, ["r]. Iot chttyo, ["l]. Iot chttyo, [" d]. Hodnota; Program, zastávka :) Koniec Štart

Fibonacci čísla:

Príklad pre verzie MIP32

Emulátor Mars. Závery Mars Console:

Čísla Fibonacci sú: 1 1 2 3 5 8 13 21 34 55 89 144 - Program je hotový

Program zobrazí 15 čísiel Fibonacci. Počet čísel je možné zmeniť v sekcii Section.DATA.

Dátový priestor: .SIZIZ "" Hlava:. "Čísla Fibonacci sú: n" Fib :.Word 0: 15 Veľkosť: .word 15 .Text Main: La $ T0, Fib La $ T5, veľkosť LW $ T5, 0 ($ T5) Li $ T2, 1 add.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) Pridať $ T2, $ T3, $ T4 SW $ T2, 8 ($ T0) Addi $ T0, $ T0, 4 Addi $ T1, $ T1, - 1 BGTZ $ T1, LOOP LA A0, FIB Pohybujte $ A1, $ T5 JAL Print Li $ V0, 10 SYSCALL PRINT: Pridať $ T0, $ Zero, $ A0 Pridať $ T1, $ Zero, $ A1 La $ A0, Head Li $ V0, 4 SYSCALL OUT: LW $ A0, 0 ($ T0) Li $ V0, 1 SYSCALLA LA $ A0, SPACE LI $ V0, 4 SYSCALLED ADDI LI $ V0, 1 la $ A0, ($ T2) Syscall La A0, String1 Li $ V0, 4 String MULT $ T1, $ T2 MFLO $ T1 Li $ V0, 1 la $ A0, ($ T1) SYSCALLA LA $ A0, String2 Li $ v0, 4 Syscall Addiu $ T2, $ T2, 1 Beq $ T2, 16, Endloop J Loop Endloop: Li $ V0, 10 V systéme



Assembler

Assembler - Nízkoúrovňový programovací jazyk. \\ T Jazyk dostal svoje meno zo slova assembler - zberateľ. Tam bolo ďalšie 50. ako symbolický analóg jazyka stroja.
Príkazy Assembler sú jeden, kto zodpovedá príkazom procesora av skutočnosti predstavujú pohodlnú symbolickú formu záznamových príkazov a argumentov. Assembler tiež zaisťuje viazanie častí programu a dáta z značiek vykonaných počas montáže (pre každú značku, pričom adresa sa vypočíta, potom, čo sa táto záznam štítku nahradí touto adresou).
Vzhľadom k tomu, mikroprocesorové príkazové systémy sa líšia, každý procesor má vlastnú sadu príkazov v jazyku assembler.
Pomocou assembler môžete takéto programy písať, ktoré sú nemožné, alebo je veľmi ťažké písať v iných jazykoch. Napríklad: Kľúčové generátory (keygen), systémové monitory, ovládače pre zariadenia alebo dokonca operačný systém.
Jazyky na vysokej úrovni ("C", "Pascal", "DELPHI", atď.) Neposkytujú spoľahlivé riadenie nad dátovými tokmi, adresy pamäte alebo registre procesorov, ako aj všetky boli vyvinuté v rámci konkrétneho typu Operačný systém, Assembler sa môže stať rovnakým assemblerom, ale pracuje na neznámejšej vedeckej platforme a robiť programy podľa tejto platformy.
Programy na assembler, na rozdiel od programov napísaných v jazykoch na vysokej úrovni, sa vykonávajú v desiatok krát menej, a pracujú desaťkrát rýchlejšie. Príklad môže slúžiť ako operačný systém MeneeTOS, ktorý je napísaný na plochom assembler a na jednej diskete (1,44 MB) a súprava obsahuje aplikačné programy, ako napríklad: editor montážneho kódu s podsvietením, práca so súborovým systémom, 3D Šetrič obrazovky, niektoré hry, Klikniteor obrázky, kompilátora Flat Assembler, terminál, CD prehrávač a mnoho ďalšieho. Výhodou je, že je možné rýchlo stiahnuť z internetu (aj s malou rýchlosťou pripojenia).
V súčasnosti sa väčšina špecialistov softvéru rozvíja v jazykoch na vysokej úrovni, ako je Pascal alebo C, ktorý je jednoduchšie pri písaní programov, ale najsilnejšie a efektívnejšie softvér Úplne alebo čiastočne napísané v jazyku Assembler.

Literatúra
1. Peter Abel - Assembler. Jazyk a programovanie pre IBM PC - M., 1999.

Assembler

Assembler(Z angličtiny. Assembler - Zberateľ) - Zdrojový text kompilátor programu napísaný v jazyku assemblerov, v jazyku stroja.
Rovnako ako samotný jazyk, zostavovače sú zvyčajne špecifické pre špecifickú architektúru, operačný systém a verziu syntaxe jazyka. Súčasne existujú multiplatform alebo univerzálne (presnejšie, obmedzené-universal, pretože v jazyku s nízkou úrovňou nemôžete písať montážne programy nezávislých hardvéru), ktoré môžu pracovať na rôznych platformách a operačných systémoch. Medzi druhé, môžete tiež zvýrazniť skupinu Cross-Assembler, ktorá je schopná zbierať počítačový kód a spustiteľné moduly (súbory) pre iné architektúry a OS.
Zhromaždenie nemusí byť prvým a nie posledným krokom na spôsobe získania výkonného modulu programu. Mnohí kompilátori z programovacích jazykov na vysokej úrovni teda vydávajú výsledok vo forme programu v jazyku Assembler, ktoré procesy assembler v budúcnosti. Výsledná montáž sa tiež nesmie vykonať, a objektový modul obsahujúci rozptýlené bloky stroja kódu a programové údaje, z ktorých (alebo z niekoľkých modulov objektov) v budúcnosti pomocou editora Link je možné získať spustiteľným súborom.
Špeciálne pamäťové bunky umiestnené priamo v procesore. Práca s registrmi sa vykonáva oveľa rýchlejšie ako pri RAM bunkách, takže registre sa aktívne používajú v programe v jazyku assembler a kompilátorov jazykov na vysokej úrovni.
Mená registrov pochádzajú z ich účelu:

EAX / AX / AH / AL (Akumulátorový register) - Batéria;
Databáza EBX / BX / BH / BL (základný register);
ECX / CX / CH / CL (Counter Register) - pult;
EDX / DX / DH / DL (dátový register) - dátový register;
ESI / SI (zdrojový register zdrojov) - zdrojový index;
EDI / DI (Register cieľového indexu) - Index prijímača (príjemca);
ESP / SP (Ukazovateľ Ukazovateľ zásobníka) - Ukazovateľ zásobníka;
EBP / BP (REGISTRÁCIA BASE UPOZORNENIE) - REGISTRÁCIA POTRUBNÉHO POTRUČNOSTI.

Príkazy spracovania riadkov
Pracovať s radmi alebo reťazami symbolov alebo číslic (t.j. jednoducho povedané, s množstvom ľubovoľných údajov) v MP je množstvo špeciálnych príkazov:
presunie reťazcov;
cMP - porovnanie dvoch riadkov;
moria - vyhľadávanie v reťazci daného prvku;
lODS - Batériové zaťaženie (AL alebo AH registre) z riadku;
sTOS - Záznamový prvok reťazca z batérie (registry AH alebo AL).

Dôstojnosť

· Assembler Language vám umožňuje písať najrýchlejší a najviac kompaktný kód, ktorý je všeobecne možné pre tento procesor.
· Rýchlosť prevádzky - optimalizáciou výpočtového algoritmu a / alebo väčšieho racionálneho prístupu k RAM (napríklad ak sú všetky zdrojové údaje uložené v registroch procesora, môžete vylúčiť zbytočný prístup k OP), redistribúciu údajov, tabuľkových počítačov ; \\ T
· Kódový objem (vrátane efektívneho používania medziprodukty). Zníženie objemu kódu tiež často zvyšuje rýchlosť vykonávania programu.
· Zabezpečenie maximálneho využívania špecifických možností špecifickej platformy, ktoré vám tiež umožňuje vytvoriť efektívnejšie programy, vrátane menej náročných zdrojov.
· Programovanie v jazyku Assembler je možné priamy prístup k zariadeniu, a najmä I / O porty, registre procesora, atď. V mnohých operačných systémoch, priamy kontakt z aplikačných programov pre registre registre periférne zariadenie Zablokované pre spoľahlivosť systému a výnimiek "zamrznutí".
· Assembler Language sa často používa na vytváranie jadra hardvéru a operačného systému, keď je dôležitá dohoda o dočasnej práce. periférne zariadenia z centrálny procesor.
· Jazyk Assembler sa používa na vytvorenie "bios firmware".
· Pomocou jazyka assembler sa často vytvárajú podprogramy prepojených strojov a tlmočníkov na vysokej úrovni a je implementovaná kompatibilita platforiem.
· S pomocou programu DisasseMbler, môžete pochopiť operačné algoritmy programu podľa štúdia v neprítomnosti zápisu na jazyku na vysokej úrovni, študovať iba strojové kódy, ale v zložitých netrivových programoch je to veľmi, veľmi pracné.

nevýhody
· Na základe orientácie stroja ("nízka" úroveň) jazyka assembler, osoba je ťažšie čítať a porozumieť programu na ňom v porovnaní s programovacími jazykmi na vysokej úrovni; Program pozostáva z "malých" prvkov - príkazov stroja, resp. Programovanie a ladenie sú komplikované, zložitosť a pravdepodobnosť tvorby chýb rastú.
· Zvýšená kvalifikácia programátora je potrebná na získanie kódu kvality: kód napísaný priemerným programátorom v jazyku Assembler nie je zvyčajne lepší alebo ešte horší ako kód generovaný optimalizáciou kompilátorov pre porovnateľné programy napísané v jazyku na vysokej úrovni.
· Program na vysokej úrovni môže byť prekompilovaný s automatickou optimalizáciou pre funkcie novej cieľovej platformy, program v jazyku assemblerov na novej platforme môže stratiť svoju výhodu pri rýchlosti bez ručného prepisovania.
· Spravidla, menej knižníc, ktoré sú k dispozícii v porovnaní s modernými priemyselnými programovacími jazykmi.
· Neexistuje prenosnosť programov na počítačoch s inou architektúrou a príkazovým systémom.

Kompatibilita
Program určený pre jeden typ assembler nie je možné zostaviť na inú bez radikálnej zmeny alebo automatickej konverzie! Ale aj medzi montážmi "Ich" typu je šaržová, disaginská a mnoho rozdielov: v kľúčové slová, Vo pravidlách pre návrh zoznamu, v dodávaných knižniciach a súboroch hlavičky atď. Ak nie je explicitná iba kompatibilita, je potrebné vysielať program s tým istým ako assembler, pre ktorý je určený. V opačnom prípade sa pripravte na zmeny (to znamená adoptovanie). Rozdiely sa často prejavujú v najčistejších miestach. Niektorí montovateľom pochopia, že "MOV EAX, X" je rovnaký ako "MOV EAX, [X]", niektoré - nie. Zakopávajú a vydávajú chybu. Ale nič iné! Oveľa horšie, keď prekladateľ ticho interpretuje tento dizajn ako "MOV EAX, OFFNÁLNA X", ktorý nie je presne to isté! Pri prevode programu musíte byť veľmi a veľmi opatrní.

Kompatibilita operačných systémov. MS-DOS-orientované programy bez nielen nie sú prepravné, ale aj neznášanlivosť. Charakteristika priama interakcia S vybavením dostupným v NT len z jadrovej úrovne, nehovoriac o tom, že 16-bitový kód sa volá z 32-bitových aplikácií len cez DPMI, a potom nie bez Turscy.

Tak, pred vysielaním programu Assembler, je potrebné identifikovať, pre ktorý prekladateľ a operačný systém je určený! S fragmentmi assembler, chytil z "natívneho" kontextu, ešte horšie. Predpokladajme, že v určitom článku je popísaný zaujímavý príjem proti slučke a je uvedený kód assembler, ale ako ho vložiť do svojho programu - nehovorí. Známa situácia, nie? Priame vysielanie nie je možné - prekladateľ je divoko štiepny, ale nič nehovorí.

Mäkká zostava

Pripravené texty sú zdrojové údaje pre špeciálne programy nazývané montážne. Úlohou assembler je previesť text programu do formy binárnych príkazov, ktoré môžu vykonávať mikroprocesor. Ak sa zistí chyby syntaxe, výsledný kód nebude vytvorený. Proces vytvorenia spustiteľného súboru sa vyskytuje v dvoch etapách:

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

V prvej fáze (.ASM -\u003e .OBJ) Z súboru Assembler kompilácie kompilácie sa získajú medziľahlé súbory objektu, ktoré majú rozšírenie rozšírenia (môžu byť použité ďalšie súbory Inc). Súbor s extension.obj obsahuje optimalizovaný strojový kód za predpokladu, že syntaktické a sémantické chyby neboli splnené. Ak sú chyby zistené v zdrojovom súbore s programom v jazyku assembler, potom programátor poskytuje zoznam chýb zistených, v ktorých sú chyby špecifikované s číslom riadku, v ktorom sú zistené. Programátor cyklicky vykonáva činy editácie a kompilácie, kým sa v zdrojovom súbore odstránia všetky chyby. V tomto štádiu je už možné získať pripravený program, ale najčastejšie chýba niektoré komponenty. Ak kompilátor z akéhokoľvek dôvodu (nesprávne zaregistroval cestu k takémuto súboru alebo súbor chýba) nie je možné nájsť súbor Inc, potom sa vydá upozornenie a prijíma sa súbor OBJ.

Zhromaždenie sa spravidla uskutočňuje v dvoch recepciách. Pri prvom priechode sú mnemonické príkazy, týždenné čísla a symboly v príslušných strojových kódoch preložené, vypočítané, koľko je príkaz obsadený umiestnením, zistené mená zadané užívateľom (konštanty, značky, premenné) ich typ a číselnú hodnotu je napísané do tabuľky. V tej istej tabuľke sa zaznamená, z ktorého sa zaoberá postupy, adresa štítkov, adresy začiatku / konca segmentov atď. Sú substituované, adresy začiatku postupov sú nahradené druhou pasážou , mená štítkov sú nahradené.

V dôsledku zostavy sa získa takzvaný "objektový súbor". Ako dodatočná funkcia môže Assembler vytvoriť súbor podľa zoznamu programu.

Zvyčajne, na získanie súborov kódových súborov, musíte vykonať príslušný program Assembler (Microsoft ML.EXE a TASM.EXE programy spoločnosti Borland), čo označuje v príkazový riadok Názov súboru s textom programu.

Táto výzva je minimálne nevyhnutná. S výnimkou názvu textový súborMusíte špecifikovať možnosti montáže. Viac informácií o možnostiach montážneho programu by sa mali požadovať v dokumentácii týchto programov.

Program rozloženia

Ďalšia etapa (.obj -\u003e .exe / .dll / .com) sa nazýva prepojenie alebo usporiadanie a slúži na výmenu názvov znakov používaných programátorom na skutočné adresy.

Porovnať hexadecimálny obsah obj a Exe súborktoré ste dostali. EXE súbor má rovnakú sekvenciu bajtov ako v súbore obj. Ale iné, než je stále prítomné: názov zostaveného súboru, verzia assembler, "vlastný" segment, a tak ďalej.

Táto "servis" informácie určené pre tie prípady, keď váš spustiteľný súbor chcete zbierať z niekoľkých. Pri vývoji veľké aplikácie Zdrojový text spočíva v pravidle, z niekoľkých modulov (súborov so zdrojovými textami), pretože je nepohodlné uložiť všetky texty v jednom súbore - je ťažké navigovať.

Každý modul je zostavený do samostatného súboru s objektovým kódom. Každý z týchto súborov je predpísaný ich kódové / dátové / stohové segmenty, ktoré potom musia byť kombinované do jedného. A spustiteľný súbor musíme získať len jeden - s jedným segmentom kódu / dátového / zásobníka. Je to toto prepojenie a robí: dokončí definíciu adresných odkazov a spája, ak sa vyžaduje, niekoľko softvérových modulov v jednom. A toto s nami sa vykonáva.

Okrem toho je potrebné pridať strojový kód do našich modulov, ktoré implementujú rôzne štandardné funkcie (napríklad počítacie s hriechom alebo LN matematických funkcií). Takéto funkcie sú obsiahnuté v knižniciach (súbory so štandardným rozšírením. Lib), ktoré sú buď dodávané s kompilátorom, alebo sú vytvorené nezávisle. Proces prípravy preto nevyhnutne obsahuje etapu rozloženia, ak sú definované všetky neznáme, keď sa určí adresa zrútených premenných alebo funkcií.

Proces kombinácie objektov modulov na jeden súbor sa vykonáva špeciálnym programovým programom alebo zberateľom (link.exe program spoločnosti Microsoft a Tlink.exe Company Borland), ktorá vykonáva väzbu modulov objektov a strojového kódu štandardných funkcií, V knižniciach a vytvára funkciu, aplikácia je spustiteľný kód pre konkrétnu platformu.

Spustiteľný kód je kompletný program s rozšírením COM, DLL alebo EXE, ktorý je možné spustiť na počítači s inštalovaným operačným systémom, pre ktorý bol tento program vytvorený. Názov spustiteľného súboru bude nastavený prvým .obj súborom. Pre prepojenie musíte vytočiť príkazový riadok:

odkaz prog1.obj prog2.obj alebo tlink prog1.obj prog2.obj

Obsah objektu súboru je analyzovaný linkerom. Určuje, či existuje program vonkajšie odkazyTo znamená, či programový program Call Call obsahuje v jednom z knižníc modulov objektov (Knižnica Link). Linker nájde tieto odkazy v súbore objektu, skopíruje potrebné postupy z knižníc, kombinuje ich s súborom objektov a vytvorí spustiteľný súbor (spustiteľný súbor). Ako pridané vlastnosti Linker môže vytvoriť súbor cross-link obsahujúci plán prijatého spustiteľného súboru.

Použité zdroje
1. https://ru.wikipedia.org/
2. http://natalia.appmat.ru/
3. http://www.codenet.ru/
4. http://wasm.ru/
5. Norton P., Sauke D. Assembler Jazyk pre IBM PC. M.: Computer, 1992.

1. Kedy a kto bol vynájdený počítanie perforačníckych strojov? Aké úlohy boli na nich vyriešené?

2. Čo je elektromechanické relé? Keď boli vytvorené počítačové počítače relé? Akú rýchlosť vlastnili?
3. Kde a kedy bol postavený prvý počítač? Čo to bolo?
4. Aká je úloha Johna Von Neuman pri vytváraní počítača?
5. Kto bol návrhárom prvého domáceho počítača?
6. Na čo základňa prvok Vytvorené stroje prvej generácie? Aké boli ich hlavné charakteristiky?
7. Na ktorej elementárnej databáze vytvorila stroje druhej generácie? Aké sú ich výhody v porovnaní s prvou generáciou počítača?
8. Čo je integrovaný obvod? Kedy boli prvé počítače o integrovaných obvodoch? Čo si volali?
9. Aké sú nové oblasti aplikácie počítača vznikli s výskytom strojov tretích generácií?
10. Čo je mikroprocesor? Kedy a kde bol vytvorený prvý mikroprocesor?
11. Čo je mikroevm a osobný počítač?
12. Aké typy PC sú najčastejšie na svete?
13. Čo je superpočítač?
14. Čo je to klastrované PC systémy?
15. Aká je funkcia piateho generácie počítačov?

Názov prvého výpočtového zariadenia. Aback Calculator Arithmometer Ruské skóre, ktoré nápad predložil v strede

19. storočia Anglický matematik Charles Charles Babbage?

Myšlienka vytvárania softvéru spravovaná počítanieMať aritmetické zariadenie, riadiace zariadenie, ako aj vstupné a tlačové zariadenie

Myšlienka vytvárania mobilný telefón

Myšlienka vytvárania robotov riadených počítačom

Aký rok a kde bol prvý počítač založený na elektronických svietidlách?

1945, USA

1944, Anglicko

1946, Francúzsko

Akým spôsobom boli vytvorené tretie generácie počítače?

Integrované schémy

polovodiče

elektronické svietidlá

integrované obvody

Aký bol názov prvého osobného počítača?

Názov centrálneho zariadenia počítača.

CPU

Systémová jednotka

Zdroj

Základná doska

Procesor spracováva informácie uvedené:

V desatinný systém Poznámka

V angličtine

V ruštine

V jazyku motora (v binárnom kóde)

Zadanie použitých numerických a textov

Klávesnica

Skener sa používa na ...

Ak chcete zadať obrázky obrázkov a textových dokumentov

Pre kreslenie na ňom špeciálnu rukoväť

Presunutie kurzora na obrazovke monitora

Holografické obrázky

10. Aký typ tlačiarne je vhodné použiť finančné dokumenty na tlač?

Tlačiareň Matrix

Tlačiareň

Laserova tlačiareň

Aký typ tlačiarne je vhodné použiť na tlač eseje?

Tlačiareň Matrix

Tlačiareň

Laserova tlačiareň

Aký typ tlačiarne je vhodné použiť fotografie na tlač?

Tlačiareň Matrix

Tlačiareň

Laserova tlačiareň

S nedodržiavaním sanitárnych a hygienických požiadaviek počítača môže byť poskytnutý škodlivý vplyv na ľudské zdravie ...

Monitor na elektronickej žiarečnej trubici

Monitor na tekutých kryštáloch

Plazmové panely

Keď je počítač vypnutý, všetky informácie sa vymažú od ...

Náhodný vstup do pamäťe

Pevný disk

Laserový disk

V ktorom počítači je uložený v počítači?

Externá pamäť;

cPU;

Optické stopy majú menšiu hrúbku a umiestnené pevne na ...

Digitálny video motor (DVD disk)

Kompaktný disk (CD - disk)

Vstupné zariadenia Zadajte ...

Výstupné zariadenie zahŕňa ...

Klávesnica, myš, joystick, ľahké perie, skener, digitálny fotoaparátMikrofón

Zvukové stĺpce, monitor, tlačiareň, slúchadlá

Hdd, procesor, pamäťové moduly, základná doskadisketa

Program sa nazýva ...

Počítačový program Môže riadiť prácu počítača, ak je ...

V RAM

Na flexibilnom disku

Na pevnom disku

Na disku CD

Údaje sú ...

Postupnosť príkazov, ktoré počítač vykonáva počas spracovania údajov

Informácie prezentované v digitálnej forme a spracované na počítači

Údaje s názvom a uložené v dlhodobej pamäti

Súbor je ...

Text vytlačený na počítači

Informácie prezentované v digitálnej forme a spracované na počítači

Alebo údaje s názvom a uložené v dlhodobej pamäti

S rýchlym formátovaním flexibilného disku ...

Vymazať adresár disku

Všetky údaje sa vymažú

Vykonáva sa defragmentácia disku

Overenie povrchu disku

S plnou formátovaním flexibilného disku ...

všetky údaje sa vymažú

vykonáva sa úplná kontrola disku.

vymazať adresár disku

disk sa stáva systémovým

V multi-úrovni hierarchického systému ...

Súbory sú uložené v systéme vnorených priečinkov.

Súbory sú uložené v systéme, ktorý je lineárnou sekvenciou

História vývoja počítačových zariadení:

1. Meno prvé výpočtové zariadenie.
1) Abak
2) kalkulačka
3) arithmometer
4) Ruské skóre

2. Aká myšlienka bola predložená v polovici 19. storočia angličtina matematika Charles Babbage?
1) Myšlienka vytvárania softvéru ovládaného počítača s aritmetickým zariadením, riadiacim zariadením, ako aj vstupným a tlačovým zariadením
2) Myšlienka vytvárania mobilného telefónu
3) Myšlienka vytvárania robotov riadených počítačom
3. Pomenujte prvé programátorové výpočtové stroje.
1) Hell Lavley
2) Sergey Lebedev
3) Bill Gates
4) Sophia Kovalevskaya

4. V ktorom roku a kde bol prvý počítač založený na elektronických svietidlách?
1) 1945, USA
2) 1950, ZSSR
3) 1944, Anglicko
4) 1946, Francúzsko

5. Akým spôsobom bol vytvorený počítač tretej generácie?
1) Integrované obvody
2) polovodiče
3) Elektronické svietidlá
4) Super-Vysoké integrované obvody

6. Aký bol prvý osobný počítač?
1) Apple II
2) IBM PC
3) Dell.
4) Corvette
Počítačové zariadenie ......................... 15
1. Názov centrálneho zariadenia počítača.
1) procesor
2) Systémový blok
3) Napájanie
4) základná doska
2. Ako zaznamenali a prenášajú fyzické informácie v počítači?
1) obrázky;
2) Používanie programov;
3) Zdá sa, že vo forme elektrických signálov.

3. Spracovanie procesorov Predložené informácie:
1) V systéme desatinného čísla
2) v angličtine
3) v ruštine
4) na stroji (v binárnom kóde)
4. Zadanie použitých numerických a textov
1) klávesnica
2) myš
3) Trekball
4) Rukoväť
5. Najdôležitejšia charakteristika Súradnicové vstupné zariadenia sú rozlíšenie, ktoré je zvyčajne 500 dpi (bodka na palec - bodky na palec (1 palec \u003d 2,54 cm)), čo znamená ...
1) Pri pohybe myši na jeden palec sa ukazovateľ myši pohybuje o 500 bodov
2) Pri pohybe myši o 500 bodov sa ukazovateľ myši pohybuje jeden palec
6. Skener sa používa na ...
1) Ak chcete zadať obrázky a textové dokumenty
2) Na kreslenie na ňom špeciálnu rukoväť
3) Presunutie kurzora na obrazovke monitora
4) Získanie holografických obrázkov
Informačné výstupné zariadenia ................. 21
1. Aký typ tlačiarne je vhodné použiť finančné dokumenty na tlač?
1) Matrix tlačiareň
2) atramentová tlačiareň
3) laserová tlačiareň
2. Aký typ tlačiarne je vhodné použiť na tlač abstraktov?
1) Matrix tlačiareň
2) atramentová tlačiareň
3) laserová tlačiareň

1. Aký typ tlačiarne sa odporúča používať fotografie na tlač?
1) Matrix tlačiareň
2) atramentová tlačiareň
3) laserová tlačiareň
2. V prípade nedodržania sanitárnych a hygienických požiadaviek počítača môže byť poskytnutý škodlivý vplyv na ľudské zdravie ...
1) monitor na elektronickej žiarečnej trubici
2) monitor na tekutých kryštáloch
4) Plazmové panely
3. Zariadenie, ktoré poskytuje vstup a čítanie informácií, sa nazýva ...
1) Drive alebo Drive

4. Keď je počítač vypnutý, všetky informácie sa vymažú od ...
4) RAM
5) Pevný disk
6) Laserový disk
7) Diéty
13. V ktorom počítač sa ukladá na informácie?
1) Externá pamäť;
2) monitor;
3) procesor;
2. Optické stopy majú menšiu hrúbku a sú umiestnené pevne na ...
1) Digitálny video motor (DVD - disk)
2) Kompaktný disk (CD - disk)
3) disketa
3. Na ktorých informáciách disku sú uložené na sústredných cestách, na ktorých sa striedajú magnetizované a necitlivé časti
1) Na diskete
2) Na kompaktnom disku
3) Na DVD - disk

4. Vo vstupných zariadeniach zahrnuté ...

1) Pevný disk, procesor, pamäťové moduly, základná doska, disketa
5. Vo výstupnom zariadení je zahrnuté ...
1) Klávesnica, myš, joystick, ľahké perie, skener, digitálny fotoaparát, mikrofón
2) Zvukové stĺpce, monitor, tlačiareň, slúchadlá
3) Pevný disk, procesor, pamäťové moduly, základná doska, disketa
6. Program sa nazýva ...

7. Počítačový program môže riadiť prácu počítača, ak je ...
1) v RAM
2) Na flexibilnom disku
3) Na pevnom disku
4) Na CD - disk
8. Údaje sú ...
1) Príkazová sekvencia, ktorú počítač vykonáva počas procesu spracovania údajov
2) Informácie prezentované v digitálnej forme a spracované na počítači
3) údaje s názvom a uložené v dlhodobej pamäti
9. Súbor je ...
1) Text vytlačený na počítači
2) Informácie prezentované v digitálnej forme a spracované na počítači
3) Program alebo údaje s názvom a uložené v dlhodobej pamäti

10. S rýchlym formátovaním flexibilného disku ...
1) Vyčistite adresár disku.
2) Všetky údaje sa vymažú
3) Defragmentácia disku
4) Skontrolujte


Ak chcete začať, chápeme terminológiu.

Kódový kód - systém príkazov konkrétneho výpočtového stroja (procesor), ktorý je interpretovaný priamo do procesora. Tím je spravidla celé číslo, ktoré je zapísané do registra procesora. Procesor číta toto číslo a vykonáva operáciu, ktorá zodpovedá tomuto príkazu. Populárne toto je opísané v knihe Ako sa stať programátorom.

Nízkozdvižný programovací jazyk (Low-Level Programovací jazyk) je programovací jazyk čo najbližšie k programovaniu v programových kódoch. Na rozdiel od počítačových kódov, v jazyku s nízkou úrovňou, každý príkaz zodpovedá nečresleniu, ale skrátenému menu príkazu (mnemic). Napríklad príkaz pridať je zníženie z pridávania slov. Preto použitie jazyka s nízkou úrovňou výrazne zjednoduší písanie a čítanie programov (v porovnaní s programovaním v programových kódoch). Jazyk nízkej úrovne je viazaný na konkrétny procesor. Napríklad, ak ste napísali program v jazyku s nízkou úrovňou pre procesor PIC, môžete si byť istí, že nebude fungovať s procesorom AVR.

Programovací jazyk na vysokej úrovni - Ide o programovací jazyk, čo najbližšie k ľudskému jazyku (zvyčajne do angličtiny, ale napríklad programovacie jazyky v národných jazykoch, napríklad jazyk 1C je založený v ruštine). Jazyk na vysokej úrovni prakticky nie je viazaný na konkrétny procesor alebo operačný systém (ak sa nepoužívajú osobitné smernice).

Jazyk - Jedná sa o programovací jazyk s nízkou úrovňou, na ktorom píšete svoje programy. Pre každý procesor existuje vlastný assembler jazyk.

Assembler - Toto je špeciálny program, ktorý konvertuje (kompiluje) zdrojových textov vášho programu napísaného v jazyku Assembler do spustiteľného súboru (súbor s exe alebo rozšírením COM). Ak chcete byť presné, potom sú potrebné ďalšie programy na vytvorenie spustiteľného súboru a nie len assembler. Ale o tom neskôr ...

Vo väčšine prípadov Assembler hovorí a naznačuje "assembler jazyk". Teraz viete, že to sú rôzne veci a tak hovoria, že nie sú úplne správne. Hoci všetci programátori vám pochopia.

DÔLEŽITÉ!
Na rozdiel od jazykov na vysokej úrovni, ako je Pascal, Beysik, atď., Je tu vlastný montážny jazyk pre každý assembler. Toto pravidlo je radikálne vyznačuje jazykom assembler z jazykov na vysokej úrovni. Zdrojové texty programu (alebo jednoducho "zdroje") napísané v jazyku na vysokej úrovni, vo väčšine prípadov môžete kompilovať rôznych kompilátorov pre rôzne procesory a rôzne operačné systémy. S assembler zdrojmi, aby to bolo oveľa ťažšie. Tento rozdiel je samozrejme takmer nie je hmatateľný pre rôzne assedbler, ktoré sú určené pre rovnaké procesory. Skutočnosť, že vec je, že pre každý procesor je jeho vlastný assembler a jeho assembler jazyk. V tomto zmysle je oveľa jednoduchšie programovať v jazykoch na vysokej úrovni. Všetky potešenie by sa však mali zaplatiť. V prípade jazykov na vysokej úrovni môžeme naraziť na také veci ako zväčšiť spustiteľný súbor, najhoršia rýchlosť atď.


V tejto knihe budeme hovoriť len o programovaní počítačov s procesormi Intel (alebo kompatibilné). Aby sme v praxi v praxi skontrolovali príklady uvedené v knihe, budete potrebovať nasledujúce programy (alebo aspoň niektoré z nich):

  1. . Dobrý programnajmä pre začiatočníkov. Zahŕňa zdrojový editor a niektoré ďalšie užitočné veci. Pracuje v systéme Windows, hoci programy sú napísané pod DOS. Bohužiaľ, program stojí peniaze (ale stojí za to za to)). Podrobnosti nájdete na stránke http://www.emu8086.com.
  2. - Turbo Assembler z Borland. Môžete vytvoriť programy pre DOS aj pre systém Windows. Sledujte aj peniaze a momentálne už nie je podporované (a Borland neexistuje). Vo všeobecnosti je vec dobrá.
  3. - Assembler od spoločnosti Microsoft (dešifrovaný ako makro assembler, a nie Microsoft Assembler, čo je mnohé neinifikované) myslieť. Možno najobľúbenejší assembler pre procesory Intel. Podporované doteraz. Podmienečne voľný program. To znamená, že ak ho kúpite samostatne, bude to stáť peniaze. Je to však voľné odberače MSDN a vstupuje do softvéru Visual Studio Software od spoločnosti Microsoft.
  4. - Assembler z Watcom. Rovnako ako všetky ostatné, má výhody a nevýhody.
  5. - Má skromné \u200b\u200bmožnosti, ale má veľký plus - vstupuje do štandardného systému Windows. Pozrite sa na to v priečinku Windows Command alebo Windows System32. Ak nenájdete, potom v iných priečinkoch systému Windows Directory.
  6. Je tiež žiaduce mať nejaké. Správca diferencií, ako je veliteľ vločiek (VC) alebo veliteľ Norton (NC), nebráni. Pomocou ich pomoci môžete vidieť aj hexadecimálne kódy súborov, ale nie je možné ho upravovať. Voľný hexadecimálny redaktori na internete sú dosť veľa. Tu je jeden z nich: McAfee Fileinsight v2.1. Rovnaký editor môže byť použitý na prácu so zdrojovými textami programov. Páči sa mi však viac, aby som to urobil s nasledujúcim editorom:
  7. Textový editor. Máme záujem o písanie zdrojových textov vašich programov. Môžem odporučiť editor PSPAD, ktorý podporuje mnoho programovacích jazykov, vrátane jazyka assembler.
Všetky programy prezentované v tejto knihe (a príklady programu) sú testované na výkon. A to sú tieto programy, ktoré sa používajú na implementáciu príkladov programov uvedených v tejto knihe.

A napriek tomu - zdrojový kód napísaný, napríklad pre EMU8086, sa bude mierne odlišný od písomného kódu, napríklad pre Tasm. Tieto rozdiely budú špecifikované.

Väčšina programov uvedených v knihe je napísaná. Po prvé, pretože tento assembler je najobľúbenejší a stále podporovaný. Po druhé, pretože sa dodáva s MSDN a softvérovým balíkom Microsoft. No, v treťom, pretože som šťastný majiteľ licencovanej kópie posytstva.

Ak už máte akékoľvek assembler, ktorý nie je zahrnutý do zoznamu uvedeného vyššie, budete musieť nezávisle zaoberať svojou syntaxou a prečítať si užívateľskú príručku, aby ste sa naučili, ako s ním pracovať. Všeobecné odporúčania uvedené v tejto knihe budú však spravodlivé pre akékoľvek (dobre alebo takmer pre všetky) assembler.

Aby stroj mohol vykonávať tímy osoby na hardvérovej úrovni, je potrebné špecifikovať určitú sekvenciu akcií v jazyku "Nolikov a jednotiek". Asistent v tomto podnikaní bude assembler. Toto je nástroj, ktorý pracuje s prenosom príkazov do jazyka stroja. Písanie programu je však veľmi časovo náročný a komplexný proces. Tento jazyk nie je určený na vytvorenie pľúc a jednoduchých akcií. V súčasnosti vám akýkoľvek použitý programovací jazyk (Assembler Works Fine) vám umožňuje písať špeciálne efektívne úlohy, ktoré silne ovplyvňujú prevádzku hardvéru. Hlavným účelom je vytvoriť mikrokomán a malé kódy. Tento jazyk poskytuje viac príležitostí ako napríklad Pascal alebo C.

Stručný opis Jazyky assembler

Všetky programovacie jazyky sú rozdelené z úrovní: nízke a vysoké. Ktorýkoľvek zo syntaktického systému "rodiny" assembler je odlišný v tom, že spája naraz niektoré výhody najbežnejších a moderných jazykov. S ostatnými, ich príbuznými a skutočnosťou, že počítačový systém je možné úplne použiť.

Charakteristickým znakom kompilátora je jednoduchosť na použitie. To sa líši od tých, ktorí pracujú len s vysokou úrovňou. Ak beriete do úvahy akýkoľvek takýto programovací jazyk, funkcie assembler je dvakrát rýchly a lepší. S cieľom napísať svetelný program v ňom, príliš veľa času nebude potrebovať.

Stručne o štruktúre jazyka

Ak hovoríme všeobecne o práci a štruktúre fungovania jazyka, môžete si uistiť, že jeho príkazy plne zodpovedajú tímom procesorov. To znamená, že Assembler používa Mnemokodes, najpohodlnejšia osoba na zaznamenávanie.

Na rozdiel od iných programovacích jazykov, Assembler používa určité značky na nahrávanie pamäťových buniek namiesto adresy. Sú preložené do tzv. Sú to relatívne adresy, ktoré neovplyvňujú prevádzku procesora (nie je preložené do zariadenia stroja) a potrebné rozpoznať samotné programovacie prostredie.

Pre každú riadku procesora je jej vlastná s touto situáciou správne bude akýkoľvek proces, vrátane preložených

Jazyk Assembler má niekoľko syntaxí, ktoré budú diskutované v článku.

Plusy jazyka

Najdôležitejšou a pohodlnou adaptáciou jazyka assembler bude, že je možné napísať akýkoľvek program pre procesor, ktorý bude veľmi kompaktný. Ak sa kód ukáže, že je obrovský, potom niektoré procesy presmeruje ram. Zároveň robia všetko rýchlo a bez zlyhaní, pokiaľ samozrejme kontrolujú kvalifikovaný programátor.

Vodiči, operačné systémy, BIOS, kompilátory, tlmočníci atď. - Toto je všetko v jazyku Assembler.

Pri použití disassembler, ktorý robí preklad zo stroja v jednom, je možné ľahko pochopiť, ako jedným alebo iným systémom systému funguje, aj keď nie je vysvetlenie. Toto je však možné len vtedy, ak sú programy svetlo. Bohužiaľ, v netriviálnych kódoch je dosť ťažké pochopiť.

Nevýhody

Nanešťastie, nováčikoví programátori (a často profesionáli), je ťažké demontovať jazyk. Assembler vyžaduje detailný popis Potrebný tím. Vzhľadom k tomu, že potrebujete používať príkazy stroja, rastie pravdepodobnosť chybných akcií a zložitosť vykonávania.

S cieľom napísať aj najviac jednoduchý programProgramátor musí byť kvalifikovaný a jeho úroveň vedomostí je pomerne vysoká. Priemerný špecialista, bohužiaľ, často píše zlé kódy.

Ak je platforma, pre ktorú je vytvorený program, aktualizovaný, potom musia byť všetky príkazy manuálne kopírovať - \u200b\u200bto vyžaduje samotný jazyk. Assembler nepodporuje funkciu automatickej regulácie prevádzky procesov a nahradiť akékoľvek prvky.

Tímy jazyka

Ako už bolo uvedené vyššie, každý procesor má vlastnú sadu príkazov. Najjednoduchšie prvky, ktoré sú uznané akýmikoľvek typmi, sú tieto kódy:


Použitie smerníc

Programovanie mikrokontroléry v jazyku (Assembler to umožňuje a dokonale zvládne s funkciou) najnižšej úrovne vo väčšine prípadov, je úspešne končí. Najlepšie je použiť procesory s obmedzeným zdrojom. Pre 32-bitové vybavenie tento jazyk Dokonale zapadá. Často v kódoch môžete vidieť smernice. Čo to je? A čo sa používa?

Ak chcete začať, je potrebné zdôrazniť, že smernice nie sú prenesené do jazyka stroja. Regulujú výkon kompilátorov. Na rozdiel od tímov, tieto parametre, ktoré majú rôzne funkcieVďaka rôznym procesorom, ale na úkor iného prekladateľa. Medzi hlavné smernice možno prideliť takto: \\ t


Pôvod mena

Kvôli názvu jazyka - "Assembler"? Hovoríme o prekladateľovi a kompilátorovi, ktorý tiež produkuje šifrovanie údajov. Z anglického assemblera neznamená nič iné ako kolektor. Program nebol zozbieraný manuálne, použila sa automatická štruktúra. Okrem toho, v súčasnosti, užívatelia a špecialisti vymazali rozdiel medzi podmienkami. Často Assembler Call Programovacie jazyky, aj keď je to len nástroj.

Vzhľadom na všeobecne akceptovaný zberný názov majú niektoré chybné riešenie, ktoré existuje jediný jazyk s nízkou úrovňou (alebo štandardné normy pre ňu). Aby programátor pochopil, akú štruktúru je o tom, je potrebné špecifikovať, pre ktorú sa použije platforma jeden alebo iný jazyk asistenta.

MACROFS

Assembler Jazyky, ktoré sú vytvorené relatívne nedávno majú makrosy. Uľahčujú pravopisu aj vykonávanie programu. Vďaka svojej prítomnosti prekladateľ vykoná písomný kód občas rýchlejšie. Pri vytváraní podmienečnej voľby môžete napísať obrovský blok tímov a je ľahšie používať makrá. Rýchli sa prepínajú medzi akciami, ak je stav alebo nesplnenie splnenia.

Pri použití makroangentických smerníc prijímateľom prijímajúci montážne makrá. Niekedy to môže byť široko používané a niekedy sa jeho funkčné funkcie sú znížené na jeden príkaz. Ich prítomnosť v Kódexe uľahčuje prácu s ním, robí to zrozumiteľnejšie a vizuálne. Avšak, malo by byť pozorné byť pozorné - v niektorých prípadoch makrá, naopak, situáciu zhoršuje.