Nízkoúrovňové programovací jazyky assembler. Kdy byl assembler (assembler) a jazyk stroje? Identifikátory, celá čísla, symboly, komentáře, ekvivalence

Programovací jazyk

Assembler je programovací jazyk s nízkou úrovní, který je formát pro záznamy záznamu, vhodné pro lidské vnímání.

Příkazy jazyků assembleru jsou jedno v jednom odpovídají týmům procesoru, a ve skutečnosti jsou vhodnou symbolickou formou záznamu (MNemokode) příkazů a jejich argumenty. Také assembler jazyk poskytuje základní software abstrakce: závazné části programu a dat po značkách se symbolickými názvy a směrnicí.

Směbcové směrnice umožňují zahrnout datové bloky v programu (popsané explicitně nebo číst ze souboru); opakujte určitý fragment zadaného počtu časů; kompilovat fragment podle stavu; Nastavte adresu provádění fragmentu, během procesu kompilace změňte hodnoty štítků; Použijte makra definice s parametry a dalšími.

Každý model procesoru má v zásadě svůj vlastní soubor příkazů a příslušný jazyk (nebo dialekt) assembleru.

Výhody a nevýhody

  • minimální množství nadbytečného kódu (použití menšího počtu příkazů a odkazů na paměť). Výsledkem je - vysokorychlostní a menší velikost programu
  • velké objemy kódu, velký počet dalších drobných úkolů
  • Špatný čitelnost kódu, potíže s podporou (ladění, přidávání příležitostí)
  • obtížnost provádění programových paradigmatu a jiných komplexních konvencí, složitosti společného rozvoje
  • méně dostupné knihovny, jejich malá kompatibilita
  • přímý přístup k zařízení: I / O porty, speciální registry procesoru
  • schopnost psát samo-modifikační kód (tj. MetaProgramming, a bez potřeby softwarového tlumočníka)
  • maximální "fit" požadovaná platforma (Využití speciálních instrukcí, technických vlastností "železa")
  • intolerance na jiné platformy (kromě binárních kompatibilních).

Syntax

Obecně uznávaný standard pro syntaxi jazyků assembler neexistuje. Existují však de facto standardy - tradiční přístupy, které většina montážních vývojářů dodržují. Hlavními informačními standardy jsou Intel-Syntaxe a AT & T-Syntaxe.

Obecný formát návodu k záznamu je stejný pro obě normy:

`[Tag:] opcode [operandy] [; komentář]`

Vzhled je přímo mnoMonic instrukcí pro procesor. Předpony (opakování, změny, jako je adresování atd.), Lze do ní přidat. Jako operandy, konstanty, registrovat jména, adresy v paměti RAM atd. Rozdíly mezi Intel a AT & T standardy se týkají především pořadí přenosu operandů a jejich syntaxe s různými metodami adresování.

Použitá mnemonika jsou obvykle stejná pro všechny procesory jedné architektury nebo rodiny architektů (mezi známými - mNemonics procesorů a regulátorů Motorola, Arm, X86). Jsou popsány v procesorových specifikacích.

Například procesor ZILOG Z80 zdědil příkazový systém Intel i8080, rozšířil jej a změnil mnemonici (a registrační označení) svým vlastním způsobem. Například jsem změnil Intel Mov na LD. Motorola ohnivé koule procesory zdědili velitelský systém Z80 a odřízli ji. Společnost Motorola zároveň se oficiálně vrátila do Intel MNEMONICS. a b. tento moment Poloviční sestavy pro ohnivá koule pracuje s Intel MNEMONIMS a napůl s Zilogem MNEMONIKA.

Směrnice

Kromě pokynů může program obsahovat směrnice: příkazy, které nejsou zasílány přímo na instrukce stroje a manažerům kompilátoru. Sada a syntaxe se budou významně lišit a nezapíná se z hardwarové platformy, ale z použitého kompilátoru (generování dialektů jazyků v jedné rodině architektur). Jako sada mohou být přiděleny směrnice:

  • definování dat (konstanty a proměnné)
  • Řízení organizace organizace v parametrech paměti a výstupních souborů
  • způsobu provozu kompilátoru
  • všechny druhy abstrakcí (tj. Prvky jazyků na vysokých úrovních) - od registrace postupů a funkcí (pro zjednodušení provádění postupu programování procedury) na podmíněné struktury a cykly (pro strukturní stavební programování)
  • makros

Původ a kritika termínu "assembler jazyk"

Tento typ jazyků obdržel svůj název z překladatele (kompilátor) z těchto jazyků - assembler (eng. Assembler - sběratel). Jméno druhé je způsoben skutečností, že v prvních počítačích nebyly žádné vyšší úrovně, a jedinou alternativou k vytvoření programů pomocí assembleru byla programování přímo v kódu.

Montážní jazyk v ruštině se často nazývá "assembler" (a něco spojeného s ním je "assembler"), což je podle anglického překladu slova nesprávné, ale vejde do pravidel ruského jazyka. Samotný assembler je však také nazýván jednoduše "assembler", a ne "kompilátor pro montážní jazyk" atd.

Využití termínu "assembler jazyk" může také způsobit chybný názor na existenci jediného jazyka nízké úrovně, nebo alespoň standard pro tyto jazyky. Při jmenování jazyka, na kterém je napsán specifický program, je vhodné upřesnit, pro které architektura je určena a na tom, jaký dialekt jazyka je napsán.

Syntaxe prvky:

Příklady:

Ahoj světe!

Příklad pro verze Intel X86 (IA32)

mOV DS, CS MOV DS, AX MOV AH, 9 MOV DX, OFFSET HELLO INT 21H XOR AX, AX INT 21H 21H Dobrý den: DB "Ahoj World!", 13, 10, "$"

Ahoj světe!

Příklad pro verze Amigy

hýbat se. L #dos pohyb. L 4. W, A6 JSR - $ 0198 (A6); Oldopenlibrárský pohyb. L D0, A6 BEQ. s. Pohybovat se. L #HLOWORDLD, D1 A) Moveq # 13, D2 JSR - $ 03AE (A6); Writechars b) JSR - 03b4; Putstr tah. L A6, A1 pohyb. L 4. W, A6 JSR - $ 019E (A6); CloseLibrary. Out RTS DOS DC. b "DOS.LIBRARY", 0 HELLOWORLD DC. B "Ahoj World!" , $ A, 0

Ahoj světe!

Příklad pro verze ataristů

hýbat se. L #HLOWORDLD, - (A7) Přesunutí # 9, - (A7) Trap # 1 addq. L # 6, A7 TOWE # 0, - (A7) Trap # 1 Helloworld: DC. B "ahoj svět!", $ 0d, $ 0a, 0

Ahoj světe!

Příklad pro verze Intel X86 (IA32)

Nasm Linux používá Syntaxe Intel Syntaxe. Kompilace a propojení:

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

Sekce. Data MSG DB "Ahoj, World!", 0xa Len Equ $ - MSG sekce. Text Global _start _start :; Vstupní bod MOV EAX, 4; Systémová volání "WRITE" MOV EBX, 1 MOV ECX, MSG; Ukazatel na data MOV EDX, LEN; Množství dat Int 0x80; Call Core MOV EX, 1; Systémový hovor "_Exit" MOV EBX, 0; Návrat 0 (vše dobré) int 0x80; Volání jádra

Ahoj světe!

Příklad pro verze PDP-8

/ - komentáře.

/ Ahoj World On Assembler pro DEC PDP - 8 * 200 Dobrý den, CLA CLL TLS / TLS Nastaví vlajku tisku. TAD CHARAC / Vytvoří index DCA IR1 Register / pro přijímání znaků TAD M6 / Konfigurace měřiče pro znaky DCA Count / Enhance. Dále, Tad I IR1 / Získejte symbol. JMS typ / jeho typ. Isz počítat / udělat něco jiného? JMP NEXT / NE, zadejte jiný znak HLT typu, 0 / typ TSF JMP podprogram. - 1 TLS CLA JMP I typu CharAc ,. / Používá se jako počáteční hodnota IR1. 310 / h 305 / E 314 / L 314 / L 317 / O 254 /, 240/327 / W 317 / O 322 / R 314 / L 304 / D122 / R 314 / L 304 / d 241 /! M6, - 15 počet, 0 ir1 \u003d $ 10

Ahoj světe!

Příklad pro verze PDP-11

Program je napsán na makro-11 makroassembler ke kompilaci a spuštění tohoto programu v příkazu RT-11 OS:

Makro Dobrý den.

Zjištěné chyby: 0

Link Dobrý den - odkaz. Spustit hello - běh

Hlava Hello World; Název. Mcall. Ttyout ,. EXIT HELLO :: MOV #MSG, R1; Počáteční adresa řetězce je $ 1: MOVB (R1) +, R0; Dostaneme následující symbol provedené v Beq; Pokud nula, vyjdete z cyklu. Ttyout; Jinak vytiskněte symbol BR 1 $; Opakujte cyklus :. Exit MSG :. Asciz / Ahoj, Svět! /; String Dobrý den, svět! . Ukončit hello; Konec programu HELLO

Ahoj světe!

Příklad pro verze systému / 360, systém / 370

IBM System / 360/370/390 Základní montážní jazyk.

// Exec Sestava Start Hlavní BALR 2, 0 Použití *, 2 Open Print Print MVC Buf, HW TISK TISK Zavřít Tisk EOJ HW DC CL132 "HELLO WORLD" BUF DS CL132 Tisk DTFPR Ioarea1 \u003d BUF, Devaddr \u003d Syslst, blksize \u003d 132, * Zařízení \u003d 3203, Control \u003d Ano, Printov \u003d Ano Konec Hlavní / * // Exec Lnkedt // Exec / * / &

Ahoj světe!

Příklad pro verze Apple II

* Ahoj svět pro 6502 Apple] [* ******************************** Strouží equ $ db3a ldy #\u003e ahoj lda #< HELLO JMP STROUT HELLO ASC "HELLO WORLD !", 00

Ahoj světe!

Příklad pro verze PDP-10

CHTTYO - Veškerý vstup / výstup se provádí pomocí I / O kanálů. Nejlepší je vytvořit symbolické názvy pro ty kanály, které používáte, a spusťte je CH. Definujte tyto názvy pomocí operátora MIDAS \u003d\u003d.

Volání je symbolický označení pro volání systémového volání. Jeho formát :.Call.

Otevřete Otevře se vstupní / výstupní kanál pro použití. Vyžaduje dva parametry - číslo kanálu a název zařízení na Sixbit.

Ztratit% lsfil je systémový hovor, který vytiskne chybová zpráva vstupu / výstupu, pokud se najednou stalo.

IOT je systémové volání, které se skutečně zabývají vstupem / výstupem. Jako parametr musíte zadat kanál a adresu obsahující kód symbolů pro výstup. Například, "H představuje H.

Název Printhello A \u003d 1 CHTTTYO \u003d\u003d 1; Kanál pro výstup. Start :; Otevírání tty kanál. . Volejte [Setz? Sixbit / Open / [. Uao, CHTTTYO]? [Sixbit / TTY /] ((SETZ))]. Ztratit% lsfil. IOT CHTTYO, ["H]; TISK Ahoj Světový symbol .. IOT CHTTYO, [E]. IOT CHTTYO, ["L]. IOT CHTTYO, [L]. IOT CHTTYO, [O]. IOT CHTTYO, [^ m]; symbol nové čáry. Iot CHTTYO, [W]. IOT CHTTYO, [O]. IOT CHTTYO, ["R]. IOT CHTTTYO, [L]. IOT CHTTYO, ["D]. Hodnota; Program, Stop :) Konec Start

Fibonacci čísla:

Příklad pro verze MIPS32

Emulátor Marsu. Závěr kláves Mars:

Čísla fibonacci jsou: 1 1 2 3 5 8 13 21 34 55 89 144 - Program je ukončen běh -

Program zobrazí 15 čísel fibonacci. Počet čísel lze změnit v sekci.Data.

Datový prostor: .asciiz "" Head: .asciiz "Čísla fibonacci jsou: n" FIB: .word 0: 15 Velikost: .word 15 .text MAIN: LA $ T0, FIB LA $ T5, Velikost 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) Přidat $ 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 TISK LI $ V0, 10 SYSCALL TISK: Přidat $ T0, $ ZERO, $ A0 Přidat $ 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 SYSCALL ADDI LI $ V0, 1 LA $ A0, ($ T2) SYSCALL LA $ A0, String1 Li $ v0, 4 SysScall Multi $ T1, $ T2 MFLO $ T1 Li $ v0, 1 LA $ A0, ($ T1) SysScall La $ A0, String2 Li $ v0, 4 SysCall Addiu $ T2, $ T2, 1 BEQ $ T2, 16, Endloop J smyčka Endloop: Li $ v0, 10 SyScall



Assembler

Assembler - programovací jazyk s nízkou úrovní. Jazyk dostal své jméno ze slovní assembler - sběratele. Bylo další 50. místo. jako symbolický analog jazyka stroje.
Příkazy assembler jsou jedno, které odpovídají příkazům procesoru a ve skutečnosti představují pohodlnou symbolickou formu záznamů a argumentů. Assembler také zajišťuje vazbu částí programu a data ze značek prováděných během sestavy (pro každou značku, adresa se vypočítá, po které je každý záznam štítku nahrazen touto adresou).
Vzhledem k tomu, mikroprocesorové příkazové systémy se liší, každý procesor má svůj vlastní soubor příkazů v jazyce assembleru.
S pomocí assembleru můžete psát takové programy, které jsou nemožné, nebo je velmi obtížné psát v jiných jazycích. Například: generátory klíčů (keygen), monitory systému, řidiče pro zařízení nebo dokonce os.
Jazyky na vysoké úrovni ("C", "Pascal", "Delphi" atd.) Neposkytují spolehlivou kontrolu nad datovými toky, paměťovými adresami nebo registry procesoru, stejně jako všechny z nich byly vyvinuty v rámci konkrétního typu Operační systém, assembler se může stát stejným assemblerem, ale pracuje na neznámé vědecké platformě a programy pod touto platformou.
Programy na assembleru, na rozdíl od programů napsaných v jazycích na vysokých úrovních, jsou prováděny v desítkách krát méně a pracují desetkrát rychleji. Příkladem může sloužit jako operační systém menuetos, který je napsán na ploché assembler a zapadá na jednu disketu (1.44 MB) a souprava obsahuje aplikační programy, například: editor sestavy kód s podsloučnou osobou, práce se systémem souborů, 3D Screensaver, některé hry, fotorektory obrázků, kompilátor plochý assembler, terminál, CD přehrávač a mnoho dalšího. Výhodou je, že lze rychle stáhnout z internetu (i s malou rychlostí připojení).
V současné době se většina softwarových specialistů vyvíjí v jazycích na vysoké úrovni, jako je Pascal nebo C, což je snazší při psaní programů, ale nejsilnější a nejúčinnější software Plně nebo částečně napsané v jazyce assembleru.

Literatura
1. Peter Abel - assembler. Jazyk a programování pro IBM PC - M., 1999.

Assembler

Assembler(Z angličtiny. Assembler - sběratel) - zdrojový kompilátor programu napsaného v jazyce assembleru v jazyce stroje.
Stejně jako samotný jazyk jsou sestavy obvykle specifické pro konkrétní architekturu, operační systém a verzi syntaxe jazyka. Současně existuje multiplatformní nebo univerzální (přesněji, omezený univerzální, protože v jazyce nízké úrovně nemůžete napsat hardware-nezávislé programy) Sestavníky, které mohou pracovat na různých platformách a operačních systémech. Mezi posledně uvedené můžete také zvýraznit skupinu cross-assembler schopnou sbírat strojní kódy a spustitelné moduly (soubory) pro jiné architektury a operační systémy.
Shromáždění nemusí být první a ne poslední krok na cestě k získání výkonného modulu programu. Proto mnoho kompilátorů z programovacích jazyků na vysoké úrovni vydávají výsledek ve formě programu v jazyce assembleru, který procesy assembler v budoucnu. Výsledná sestava nemusí být také provedena a objektový modul obsahující rozptýlené bloky kódu stroje a programová data, ze kterých (nebo z několika objektových modulů) v budoucnu pomocí editoru Link lze získat spustitelný soubor.
Speciální paměťové buňky umístěné přímo v procesoru. Práce s registrů se provádí mnohem rychleji než s buňkami RAM, takže registry jsou aktivně používány jak v programech v jazyce assembleru a kompilátoři jazyků na vysoké úrovni.
Jména registrů pocházejí z jejich účelu:

EAX / AX / AH / AL (akumulátorový registr) - baterie;
EBX / BX / BH / BH / BL (základní rejstřík) -register databáze;
ECX / CX / CH / CL (čítač) - čítač;
EDX / DX / DH / DL (datový registr) - datový registr;
ESI / SI (zdrojový index registr) - zdrojový index;
EDI / DI (cílový registr indexu) - index přijímače (příjemce);
ESP / SP (Stack ukazatele registru) - zaregistrování ukazatele zásobníku;
EBP / BP (základní ukazatele registru) - Zápis rámečku Základní ukazatel ukazatele.

Příkazy zpracování řádků.
Pracovat s řádky nebo řetězy symbolů nebo čísel (tj. Jednoduše řečeno, s řadou libovolných dat) v MP Existuje řada speciálních příkazů:
mOVS - posílání řetězců;
cMPS - srovnání dvou řádků;
moře - hledat v řetězci daného prvku;
lODS - Loading baterie (Registry AL nebo AH) z řádku;
sTOS - Record Element řetězce z baterie (registrů AH nebo AL).

Důstojnost

· Jazyk assembler vám umožňuje napsat nejrychlejší a nejkompaktnější kód, který je obecně možný pro tento procesor.
· Rychlost provozu - optimalizací výpočetního algoritmu a / nebo více racionální přístup k paměti RAM (například pokud jsou všechna zdrojová data uložena v register procesoru, můžete vyloučit zbytečný přístup k OP), redistribuci dat, funkce výpočetní techniky ;
· Objem kódu (včetně efektivního použití mezilehlé výsledky). Snížení objemu kódu také často zvyšuje rychlost provádění programu.
· Zajištění maximálního využití specifických možností specifické platformy, které také umožňuje vytvářet efektivnější programy, včetně méně náročných zdrojů.
· Programování v jazyce assembleru je možné přímý přístup k zařízení a zejména I / O porty, rejstříky procesoru atd. V mnoha operačních systémech, přímý kontakt z aplikačních programů pro registry registrů periferní zařízení Blokovány pro spolehlivost systému a výjimek "zamrzne".
· Jazyk assembleru je často používán k vytváření hardwarových ovladačů a jádra operačního systému, pokud je důležitá dočasná pracovní smlouva. příslušenství z centrální procesor.
· Jazyk assembleru se používá k vytvoření "firmwaru BIOS".
· S pomocí jazyka assembleru se často vytváří podprogramy závislé na stroji a vysoké úrovni tlumočníků a je implementována kompatibilita platformy.
S pomocí programu Disassembler můžete pochopit provozní algoritmy programu ve studiu v nepřítomnosti výpisu na jazyce na vysoké úrovni, studovat pouze strojní kódy, ale ve složitých netriviálních programech je to velmi, velmi pracné.

nevýhody
· Na základě orientace stroje ("nízká" úroveň) jazyka assembleru je obtížnější číst a pochopit program na něm ve srovnání s programovacími jazyky na vysoké úrovni; Program se skládá z příliš "malých" prvků - povelů, resp. Programování a ladění jsou komplikované, složitost a pravděpodobnost tvorby chyb roste.
Zvýšená kvalifikace programátoru je nutná k získání kódu kvality: kód napsaný průměrným programátorem v jazyce assembleru je obvykle lepší ani horší než kód generovaný optimalizačním kompilátorem pro srovnatelné programy napsané v jazyce na vysoké úrovni.
· Program na vysoké úrovni lze rekompilovat automatickou optimalizací pro funkce nové cílové platformy, program v jazyce assembleru na nové platformě může ztratit svou výhodu při rychlosti bez ručního přepisování kódu.
· Zpravidla je k dispozici méně knihoven ve srovnání s moderními průmyslovými programy jazyky.
· V počítačích není přenositelnost programů s jinou architekturou a příkazovým systémem.

Kompatibilita
Program určený pro jeden typ assembleru nemůže být sestaven na jiném bez radikální změny nebo automatické konverze! Ale i mezi sestavy "Jejich" typu "Jejich" je dávka, disaginion a mnoho rozdílů: v klíčová slova, v pravidlech pro návrh výpisu, v dodaných knihovnách a souborech záhlaví atd. Pokud není explicitně pouze kompatibilita, je nutné vysílat program se stejným způsobem jako assembler, pro který je určen. Jinak se připravte na změny (to znamená přijetí). Rozdíly se často projevují v těch nečekaných místech. Některé sestavy chápou, že "MOV EAX, X" je stejný jako "MOV EAX, [X]", někteří - ne. Klopýtávají a vydávají chybu. Ale nic jiného! Mnohem horší, když překladatel tiše interpretuje tento design jako "MOV EAX, offset X", což není úplně to samé! Takže při přenosu programu musíte být velmi a velmi opatrní.

Kompatibilita operačních systémů. MS-DOS orientované programy bez nejen přepravitelných, ale také intolerance. Pro ně je charakteristická přímá interakce S vybavením dostupným v NT pouze z jaderné úrovně, nemluvě o tom, že 16bitový kód je volán z 32bitových aplikací pouze prostřednictvím DPMI a pak ne bez trusu.

Takže před vysíláním programu assembler je nutné identifikovat, pro který překladatel a operační systém je určen! S fragmenty assembler, ulovených z "nativního" kontextu, jsou ještě horší. Předpokládejme, že v některém článku je popsána zajímavá recepce proti smyčku a je uveden kodex assembler, ale jak jej vkládat do programu - neříká. Známá situace, že? Přímé vysílání není možné - překladatel je divoce štěpný, ale nic neříká.

Měkká sestava

Připravený text je zdrojová data pro speciální programy nazývané sestavy. Úkolem assembler je převést text programu do formy binárních příkazů, které mohou provádět mikroprocesor. Pokud jsou zjištěny chyby syntaxe, výsledný kód nebude vytvořen. Proces vytváření spustitelného souboru dochází ve dvou fázích:

Asm -\u003e .Obj -\u003e .exe / .dll / .com

V první fázi (.asm -\u003e .Obj) ze souboru assembleru kompilací se získají soubory kódu meziprodukty, které mají rozšíření rozšíření rozšíření (další soubory Inc). Soubor s rozšířením.Obj obsahuje optimalizovaný kód stroje za předpokladu, že syntaktické a sémantické chyby nebyly splněny. Pokud jsou chyby detekovány ve zdrojovém souboru s programem v jazyce Assembler, pak programátor poskytuje seznam chyb zjištěných, ve kterém jsou chyby zadány s číslem řádku, ve kterém jsou zjištěny. Programátor cyklicky provádí akce editace a kompilace, dokud nejsou všechny chyby eliminovány ve zdrojovém souboru. V této fázi je již možné získat hotový program, ale nejčastěji postrádá některé komponenty. Pokud kompilátor z nějakého důvodu (nesprávně zaregistrován cestu k takovému souboru nebo chybí soubor) Nelze najít soubor Inc, pak je vydán varování a je přijat soubor Obj.

Montáž, zpravidla probíhá ve dvou recepcích. Na prvním průchodu, mnoMonic příkazy, týdenní čísla a symboly v příslušných kódech strojů jsou přeloženy, vypočteno, kolik je příkaz obsazen umístěním, zjištěná jména zadaná uživatelem (konstanty, tagy, proměnné) jejich typ a číselná hodnota je napsáno do stolu. Ve stejné tabulce je zaznamenán, z nichž se zabývá postupy, adresy štítků, jsou substituovány adresy začátku / konce segmentů atd., Jsou substituovány adresy začátku postupů, jsou nahrazeny druhou pasáží , názvy štítků jsou nahrazeny.

V důsledku shromáždění se získá tzv. "Objektový soubor". Jako další funkce může assembler vytvořit soubor programu.

Obvykle získáte soubory kódu objektů, musíte provést příslušný program Assembler (Microsoft Ml.exe a programy Tasm.exe společnosti Borland), označující příkazový řádek Název souboru s textem programu.

Tato výzva je minimálně nezbytná. Kromě jména textový souborMusíte zadat možnosti sestavení. Více informací o možnostech montážního programu by měly být vyhledávány v dokumentaci těchto programů.

Rozvržení program

Další etapa (.Obj -\u003e .exe / .dll / .com) se nazývá propojení nebo rozložení a slouží k nahrazení názvů znaků používaných programátorem na reálné adresy.

Porovnat hexadecimální obsah obj a Exe soubor.které máš. Soubor EXE má stejný posloupnost bajtů jako v souboru Obj. Ale jiné než to je stále přítomen: název sestaveného souboru, montážní verzi, "vlastní" segment a tak dále.

Tato služba "informace určené pro tyto případy, kdy váš spustitelný soubor chcete sbírat z několika. Při vývoji velké aplikace Zdrojový text se skládá z pravidle z několika modulů (soubory se zdrojovými texty), protože je nepohodlné ukládat všechny texty v jednom souboru - jsou obtížné navigovat.

Každý modul je zkompilován do samostatného souboru s kódem objektu. Každá z těchto souborů je předepsána jejich segmenty kódů / dat / zásobníků, které pak musí být kombinovány do jednoho. A spustitelný soubor, který musíme získat pouze jeden - s jedním kódem / datovým segmentem. Je to tento odkaz a dělá: Definuje definici odkazů adres a spojených, pokud je požadována, několik softwarových modulů v jednom. A tohle se provádí s námi.

Kromě toho je nutné přidat kódu stroje na naše moduly, které implementují různé standardní funkce (například výpočtu matematických funkcí SIN nebo LN). Tyto funkce jsou obsaženy v knihovnách (soubory se standardním rozšířením. Lib), které jsou buď dodávány s kompilátorem, nebo jsou vytvořeny samostatně. Proces přípravy proto nutně zahrnuje stadium rozvržení, když jsou všechny neznámé definovány, když je určena adresa sbalených proměnných nebo funkcí.

Proces kombinování objektových modulů k jednomu souboru se provádí speciálním linkerovým programem nebo sběratelem (program Link.exe společnosti Microsoft a TLink.exe Company Borland), který provádí vazbu objektových modulů a strojního kódu standardních funkcí, nalezení v knihovnách a generuje zpracovatelnou aplikaci je spustitelný kód pro konkrétní platformu.

Spustitelný kód je kompletní program s příponou COM, DLL nebo EXE, které lze spustit v počítači s nainstalovaným operačním systémem, pro který byl tento program vytvořen. Název spustitelného souboru bude nastaven prvním souborem .Obj. Pro propojení musíte vytočit na příkazovém řádku:

link Prog1.Obj Prog2.obj nebo Tlink Prog1.Obj Prog2.Obj

Obsah souboru objektů je analyzován linker. Určuje, zda existuje program externí odkazyTo znamená, zda program volání programu obsahuje v jednom z knihoven modulu objektů (Link Library). Linker najde tyto odkazy v souboru objektů, zkopíruje potřebné postupy z knihoven, kombinuje je s souboru objektů a vytvoří spustitelný soubor (spustitelný soubor). Tak jako další funkce Linker může vytvořit soubor zesítění obsahujícího plán přijatého spustitelného souboru.

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., SaKe D. Jazyk assembler pro IBM PC. M.: Počítač, 1992.

1. Kdy a kdo byl vynalezen počítat perforační stroje? Jaké úkoly byly vyřešeny na nich?

2. Co je to elektromechanické relé? Kdy byly vytvořeny relé výpočetní techniky? Jakou rychlost mají?
3. Kde a kdy byl postaven první počítač? Co to bylo?
4. Jaká je role Johna von Neuman při vytváření počítače?
5. Kdo byl návrhář prvního domácího počítače?
6. Na co. prvek základny Vytvořeno první generační stroje? Jaké byly jejich hlavní vlastnosti?
7. Na které základní databázi vytvořila druhé generační stroje? Jaké jsou jejich výhody ve srovnání s první generací počítače?
8. Co je integrovaný obvod? Kdy byly první počítače na integrovaných obvodech? Co říkali?
9. Jaké jsou nové oblasti aplikace počítače vznikly vzhledem třetích generačních strojů?
10. Co je mikroprocesor? Kdy a kde byl vytvořen první mikroprocesor?
11. Co je to mikroevm a osobní počítač?
12. Jaké typy PC jsou ve světě nejčastější?
13. Co je to superpočítač?
14. Co je clustered PC Systems?
15. Jaká je funkce pátých generačních počítačů?

Pojmenujte první počítačové zařízení. Anack kalkulačka aritmometr ruské skóre, který nápad předložil ve středu

19. století anglický matematik Karla Babbage?

Myšlenka vytvořit software spravovaný počítací strojMající aritmetické zařízení, řídicí zařízení, stejně jako vstupní a tiskové zařízení

Myšlenka vytvořit mobilní telefon

Myšlenka vytvořit roboty spravované počítačem

Jaký rok a kde byl první počítač založený na elektronických lampách?

1945, USA

1944, Anglie

1946, Francie

Jaký základ byly vytvořeny počítače třetí generace?

Integrované schémata

polovodiče

elektronické lampy

superbound integrované obvody

Jaký byl název prvního osobního počítače?

Pojmenujte centrální zařízení počítače.

procesor

Systémová jednotka

Zdroj napájení

Základní deska

Procesor zpracovává informace uvedené informace:

V desetinný systém Poznámka

V angličtině

V Rusku

V jazyce motoru (v binárním kódu)

Zadání číselných a textových informací

Klávesnice

Skener slouží pro ...

Zadání obrázků obrázků a textových dokumentů

Pro kreslení na to zvláštní rukojeť

Přesunutí kurzoru na obrazovce monitoru

Holografické obrazy

10. Jaký typ tiskárny je vhodné použít finanční dokumenty k tisku?

Matrix tiskárna

Trysková tiskárna

Laserová tiskárna

Jaký typ tiskárny je vhodné použít k tisku eseje?

Matrix tiskárna

Trysková tiskárna

Laserová tiskárna

Jaký typ tiskárny je vhodné použít fotografie pro tisk?

Matrix tiskárna

Trysková tiskárna

Laserová tiskárna

S nedodržením hygienických a hygienických požadavků počítače může být poskytnut škodlivý účinek na lidské zdraví ...

Monitor na elektronické radiace

Monitor na tekutých krystalech

Plazmové panely

Když je počítač vypnutý, všechny informace jsou vymazány z ...

Paměť s náhodným přístupem

Pevný disk

Laserový disk

Ve kterém počítači je uložen v počítači?

Externí paměť;

pROCESOR;

Optické dráhy mají menší tloušťku a umístěny těsněji na ...

Digitální video engine (DVD disk)

Kompaktní disk (disk CD)

Vstupní zařízení Zadejte ...

Výstupní zařízení obsahuje ...

Klávesnice, myš, joystick, světle peří, skener, digitální fotoaparátMikrofon

Zvukové sloupce, monitor, tiskárna, sluchátka

HDD., procesor, paměťové moduly, základní deskadisketa

Program se nazývá ...

Počítačový program Může spravovat práci počítače, pokud je to ...

V ramě

Na flexibilním disku

Na pevném disku

Na disku CD - Disk

Data jsou ...

Posloupnost příkazů, které počítač provádí během zpracování dat

Informace uvedené v digitální podobě a zpracovávány v počítači

Data s názvem a uloženy v dlouhodobé paměti

Soubor je ...

Text vytištěný na počítači

Informace uvedené v digitální podobě a zpracovávány v počítači

Program nebo data mají název a uloženy v dlouhodobé paměti

S rychlým formátováním flexibilního disku ...

Vymazat adresář disku

Všechna data jsou vymazána

Defragmentace disku se provádí

Ověření povrchu disku

S plným formátováním flexibilního disku ...

všechna data jsou vymazána

provádí se kompletní kontrola disku.

vymazat adresář disku

disk se stává systémovým

Ve víceúrovňovém hierarchickém souborovém systému ...

Soubory jsou uloženy v systému vnořených složek.

Soubory jsou uloženy v systému, který je lineární sekvencí

Historie vývoje výpočetní techniky:

1. Jméno první výpočetní zařízení.
1) Abak.
2) kalkulačka
3) aritmometr.
4) Ruské skóre

2. Jaký nápad byl předložen v polovině 19. století anglický matematika Charles Babbage?
1) Myšlenka vytvořit software řízený počítatelný stroj, který má aritmetické zařízení, řídicí zařízení, stejně jako vstupní a tiskové zařízení
2) Myšlenka vytvořit mobilní telefon
3) Myšlenka vytvořit roboty spravované počítačem
3. Pojmenujte první programátorové počítačové počítače.
1) peklo Lavley
2) Sergey Lebedev
3) Bill Gates
4) Sophia Kovalevskaya

4. V kterém roce a kde byl první počítač založený na elektronických lampách?
1) 1945, USA
2) 1950, SSSR
3) 1944, Anglie
4) 1946, Francie

5. Jaký základ byl vytvořen počítač třetí generace?
1) Integrované obvody
2) Semiconductors.
3) elektronické lampy
4) Super-vysoké integrované obvody

6. Jaký byl první osobní počítač?
1) Apple II
2) IBM PC
3) Dell.
4) Corvette
Počítačové zařízení ......................... 15
1. Pojmenujte centrální zařízení počítače.
1) Procesor.
2) Systémový blok
3) napájení
4) Základní deska
2. Jak jsou fyzické informace v počítači zaznamenány a přenášeny?
1) čísla;
2) pomocí programů;
3) se zobrazí ve formě elektrických signálů.

3. Procesor zpracovává informace uvedené informace:
1) V desetinném číselném systému
2) v angličtině
3) v ruštině
4) na stroji (v binárním kódu)
4. Zadejte používané číselné a textové informace
1) klávesnice
2) myš
3) trekball.
4) rukojeť
5. Nejdůležitější charakteristika Souřadnicová vstupní zařízení jsou rozlišení, která je obvykle 500 dpi (tečka na palec - tečky na palec (1 palec \u003d 2,54 cm)), což znamená ...
1) Při pohybu myši na jeden palec se ukazatel myši pohybuje o 500 bodů
2) Při pohybu myši o 500 bodů se ukazatel myši pohybuje jeden palec
6. Scanner se používá pro ...
1) Zadání obrázků a textových dokumentů
2) Pro kreslení na něj zvláštní rukojeť
3) Přesunutí kurzoru na obrazovce monitoru
4) Získání holografických obrazů
Informační výstupní zařízení ................. 21
1. Jaký typ tiskárny je vhodné použít finanční dokumenty pro tisk?
1) Tiskárna matice
2) Inkoustová tiskárna
3) Laserová tiskárna
2. Jaký typ tiskárny je vhodné použít k tisku abstraktů?
1) Tiskárna matice
2) Inkoustová tiskárna
3) Laserová tiskárna

1. Jaký typ tiskárny je vhodné použít fotografie pro tisk?
1) Tiskárna matice
2) Inkoustová tiskárna
3) Laserová tiskárna
2. V případě nedodržení hygienických a hygienických požadavků počítače může být poskytnut škodlivý účinek na lidské zdraví ...
1) Monitor na elektronické radiace
2) Monitor na tekutých krystalech
4) Plazmové panely
3. Zařízení, které poskytuje záznam a čtení informací, se nazývá ...
1) Drive nebo Drive

4. Když je počítač vypnutý, všechny informace jsou vymazány z ...
4) RAM.
5) pevný disk
6) laserový disk
7) diety
13. Ve kterém počítači je uložen pro informace?
1) externí paměť;
2) monitor;
3) procesor;
2. Optické koleje mají menší tloušťku a umístěte těsněji na ...
1) Digitální video engine (DVD - Disk)
2) Kompaktní disk (disk CD - disk)
3) Disketa
3. Na které informace o disku jsou skladovány na soustředných cestách, na kterých se magnetizované a nevodové sekce alternativně
1) Na disketě
2) Na kompaktním disku
3) Na DVD - Disk

4. Ve vstupních zařízeních vkládají ...

1) pevný disk, procesor, paměťové moduly, základní deska, disketa
5. Ve výstupních zařízeních v ceně ...
1) klávesnice, myš, joystick, lehký peří, skener, digitální fotoaparát, mikrofon
2) Zvukové sloupce, monitor, tiskárna, sluchátka
3) pevný disk, procesor, paměťové moduly, základní deska, disketa
6. Program se nazývá ...

7. Počítačový program může pracovat s pracím počítače, pokud je ...
1) v beran
2) Na flexibilním disku
3) Na pevném disku
4) na disku CD - Disk
8. Data jsou ...
1) příkazová sekvence, kterou počítač provádí během procesu zpracování dat
2) Informace uvedené v digitální podobě a zpracovávané v počítači
3) Data s názvem a uloženy v dlouhodobé paměti
9. Soubor je ...
1) Text vytištěný na počítači
2) Informace uvedené v digitální podobě a zpracovávané v počítači
3) Program nebo data mají název a uloženy v dlouhodobé paměti

10. S rychlým formátováním flexibilního disku ...
1) Vyčistěte adresář disku.
2) Všechna data jsou vymazána
3) Defragmentace disku
4) Zkontrolujte


Chcete-li začít, rozumíme terminologii.

Kód počítače - Systém příkazů konkrétního výpočetní techniky (procesor), který je interpretován přímo do procesoru. Tým je pravidlem, je to celé číslo, které je zapsáno do registru procesoru. Procesor přečte toto číslo a provádí operaci, která odpovídá tomuto příkazu. Populární je popsáno v knize, jak se stát programátorem.

Nízký programovací jazyk (Low-Level programovací jazyk) je programovací jazyk, co nejblíže programování ve strojových kódech. Na rozdíl od strojních kódů, v jazyce nízké úrovně, každý příkaz odpovídá non-číslo, ale zkrácený název příkazu (mnemonic). Příkaz Přidat je například snížením z přidání aplikace. Použití jazyka nízké úrovně proto výrazně zjednodušuje programy psaní a čtení (ve srovnání s programováním ve strojových kódech). Jazyk nízké úrovně je vázán na konkrétní procesor. Například, pokud jste napsali program v jazyce nízké úrovně pro procesor PIC, můžete si být jisti, že nebude fungovat s procesorem AVR.

Programovací jazyk na vysoké úrovni - Jedná se o programovací jazyk, co nejblíže k lidskému jazyku (obvykle do angličtiny, ale existují programovací jazyky v národních jazycích, například jazyk 1C je založen v ruštině). Vysoký jazyk je prakticky není vázán na konkrétní procesor nebo operačnímu systému (pokud nejsou použity specifické směrnice).

Samostatný jazyk - Jedná se o programovací jazyk s nízkou úrovní, na kterém napíšete své programy. Pro každý procesor je zde vlastní montážní jazyk.

Assembler - Jedná se o speciální program, který převádí (kompiluje) zdrojové texty vašeho programu napsaného v jazyce assembleru do spustitelného souboru (soubor s příponou EXE nebo COM). Chcete-li být přesné, pak jsou zapotřebí další programy pro vytvoření spustitelného souboru, a ne jen assembler. Ale o tom později ...

Ve většině případů, assembler říká a naznačují "assembler jazyk". Nyní víte, že se jedná o různé věci, a tak neříkej ne. Ačkoli vám všichni programátoři pochopí.

DŮLEŽITÉ!
Na rozdíl od jazyků na vysoké úrovni, jako je Pascal, Beysik atd., Je zde vlastní montážní jazyk pro každý assembler. Toto pravidlo se radikálně odlišuje jazykem assembleru z jazyků na vysoké úrovni. Zdrojové texty programu (nebo jednoduše "zdroje") zapsané v jazyce na vysoké úrovni, můžete ve většině případů zkompilovat různé kompilátory pro různé procesory a různé operační systémy. S zdroje assembler, aby to bylo mnohem obtížnější. Tento rozdíl je samozřejmě téměř hmatatelný pro různé assembler, které jsou určeny pro stejné procesory. Ale faktem, že pro každý procesor je jeho vlastní assembler a její assembler jazyk. V tomto smyslu je mnohem snazší program v jazycích na vysokých úrovních. Všechny potěšení by však měly být zaplaceny. V případě jazyků na vysoké úrovni můžeme setkat se s takovými věcmi jako větší spustitelný soubor, nejhorší rychlost atd.


V této knize budeme hovořit pouze o programování pro počítače s procesory Intel (nebo kompatibilní). Aby bylo možné v praxi, zkontrolujte příklady uvedené v knize, budete potřebovat následující programy (nebo alespoň některé z nich):

  1. . Dobrý programzejména pro začátečníky. Zahrnuje zdrojový editor a některé další užitečné věci. Pracuje v systému Windows, i když programy jsou napsány v rámci DOS. Program stojí za to peníze (ale stojí to za to)). Podrobnosti naleznete v webu http://www.emu8086.com.
  2. - Turbo assembler z Borlandu. Programy pro systémy Dos i pro Windows můžete vytvářet programy. Také stojí za to peníze a v tuto chvíli již není podporován (a Borland neexistuje). Obecně je věc dobrá.
  3. - Assembler od společnosti Microsoft (Dešifrovaný jako makro assembler, a ne Microsoft Assembler, tolik nezasvěcených). Možná nejoblíbenější assembler pro procesory Intel. Podporovány zatím. Podmíněně volný program. To znamená, že pokud jej koupíte samostatně, bude to stát peníze. Ale je k dispozici zdarma MSDN předplatitele a vstupuje do softwarového balíčku Visual Studio od společnosti Microsoft.
  4. - Assembler z WATCOM. Stejně jako ostatní mají výhody a nevýhody.
  5. - Má skromné \u200b\u200bmožnosti, ale má velké plus - vstupuje do standardní sady Windows. Vyhledejte jej do složky Windows nebo Windows System32. Pokud nenajdete, pak v jiných složkách adresáře Windows.
  6. Je také žádoucí mít nějaké. Disionální filmový manažer, jako je velitel Wolves (VC) nebo Norton Commander (NC), nebrání. S jejich pomocí, můžete také vidět hexadecimální kódy souborů, ale nelze editovat. Zdarma hexadecimální editory na internetu jsou velmi mnoho. Zde je jeden z nich: McAfee FileInspight v2.1. Stejný editor lze použít k práci se zdrojovými texty programů. Nicméně, líbí se mi to udělat s následujícím editorem:
  7. Textový editor. Máme zájem o psaní zdrojových textů vašich programů. Můžu doporučit volný editor PSPAD, který podporuje mnoho programovacích jazyků, včetně jazyka assembleru.
Všechny programy uvedené v této knize (a příklady programu) jsou testovány na výkon. A jsou tyto programy, které se používají k implementaci příkladů uvedených programů v této knize.

A přesto - zdrojový kód napsaný, například pro EMU8086, bude mírně odlišný od kódu napsaného, \u200b\u200bnapříklad pro Tasm. Budou specifikovány tyto rozdíly.

Většina programů uvedených v knize je napsána. Nejprve, protože tento assembler je nejoblíbenější a stále podporován. Za druhé, protože je dodáván s MSDN as Softwarovým balíčkem Microsoft Visual Studio. No, ve třetím, protože jsem šťastný majitel licencované kopie MASM.

Pokud již máte nějaký assembler, který nezahrnuje v seznamu uvedeném seznamu, budete muset samostatně řešit jeho syntaxe a přečíst si uživatelskou příručku, abyste se naučili, jak s ním pracovat. Obecná doporučení uvedená v této knize bude však spravedlivá pro každou (dobře nebo téměř pro všechny) assembler.

Aby se stroj mohl provést týmy osoby na úrovni hardwaru, je nutné určit určitý posloupnost akcí v jazyce "Nolikov a jednotek". Asistent v tomto podnikání bude assembler. Jedná se o nástroj, který pracuje s přenosem příkazů do jazyka stroje. Psaní programu je však velmi časově náročný a komplexní proces. Tento jazyk není určen k vytvoření plic a jednoduchých akcí. V tuto chvíli, jakýkoliv programovací jazyk (assembler Works Fine) umožňuje psát speciální efektivní úkoly, které silně ovlivňují provoz hardwaru. Hlavním účelem je vytvořit mikrokomband a malé kódy. Tento jazyk dává více příležitostí než například Pascal nebo C.

Stručný popis jazyků assembler

Všechny programovací jazyky jsou rozděleny z úrovní: nízká a vysoká. Každý ze syntaktického systému "rodiny" montáže je odlišný v tom, že se jedná o některé výhody nejběžnějších a moderních jazyků. S ostatními, jejich příbuznými a skutečností, že počítačový systém může být plně použit.

Výrazný rys kompilátoru je jednoduchost k použití. Rozlišuje se od těch, které pracují pouze s vysokou úrovní. Pokud vezmete v úvahu jakýkoliv takový programovací jazyk, montážní funkce funguje dvakrát rychleji a lépe. Aby bylo možné napsat světelný program v něm, příliš mnoho času nebude potřebovat.

Stručně o struktuře jazyka

Pokud budeme mluvit obecně o práci a struktuře fungování jazyka, můžete říci, že jeho příkazy plně odpovídají týmům procesoru. To znamená, že assembler používá mnoMokodes, nejvhodnější osoba k záznamu.

Na rozdíl od jiných programovacích jazyků, assembler používá určité značky pro záznam paměťových buněk namísto adres. Jsou přeloženy do takzvaných směrnic. Jedná se o relativní adresy, které nemají vliv na provoz procesoru (nejsou přeloženy do jazyka stroje) a nezbytné k rozpoznání programového prostředí.

Pro každou řadu procesoru je s touto situací vlastní správný způsob, včetně přeložených

Jazyk assembleru má několik syntaxe, které budou diskutovány v článku.

Plody jazyka

Nejdůležitější a nejpohodlnější přizpůsobení jazyka assembleru bude možné napsat jakýkoliv program pro procesor, který bude velmi kompaktní. Pokud se kód ukáže být obrovský, pak některé procesy přesměrují rAM. Zároveň dělají všechno rychle a bez selhání, pokud samozřejmě neřídí kvalifikovaný programátor.

Ovladače, operační systémy, BIOS, kompilátory, tlumočníci atd. - To je vše program v jazyce assembleru.

Při použití Disassembler, který dělá překlad ze stroje v jednom, je možné snadno pochopit, jak jeden nebo jiný systém úkol funguje, i když neexistuje žádné vysvětlení. To je možné pouze v případě, že programy jsou světlo. Bohužel, v netriviálních kódech, to je poměrně těžké pochopit.

Nevýhody

Bohužel, začínající programátoři (a často profesionálové) jsou obtížné rozebírat jazyk. Sestarbler vyžaduje detailní popis Nezbytný tým. Vzhledem k tomu, že potřebujete používat povely strojů, pravděpodobnost chybných akcí a složitost provádění roste.

Aby bylo možné napsat i ty nejvíce jednoduchý programProgramátor musí být kvalifikován a jeho úroveň znalostí je poměrně vysoká. Průměrný specialista, bohužel, často píše špatné kódy.

Pokud je platforma, pro kterou je program vytvořen, musí být všechny příkazy zkopírovány ručně - to vyžaduje samotný jazyk. Sestava nepodporuje funkci automatické regulace provozu procesů a nahradí všechny prvky.

Týmy jazyka

Jak již bylo uvedeno výše, každý procesor má svůj vlastní soubor příkazů. Nejjednodušší prvky, které jsou rozpoznány jakýmkoliv typy, jsou následující kódy:


Použití směrnic

Programování mikrokontroléry v jazyce (Assembler To umožňuje a dokonale kopíruje s funkcí) nejnižší úrovně ve většině případů, že je úspěšně končí. Nejlepší je používat procesory s omezeným zdrojem. Pro 32bitové vybavení tento jazyk Dokonale vejde. Často v kodexech můžete vidět směrnice. Co je to? A co se používá?

Chcete-li začít, je nutné zdůraznit skutečnost, že směrnice nejsou převedeny do jazyka stroje. Regulují výkon kompilátoru. Na rozdíl od týmů, tyto parametry, které mají různé funkceDíky různým procesorům, ale na úkor jiného překladatele. Mezi hlavní směrnice mohou být přiděleny takto: \\ t


Původ jména

Vzhledem k názvu jazyka - "assembler"? Mluvíme o překladateli a kompilátoru, který také vyrábíme šifrování dat. Z anglického assembleru znamená nic jiného než sběratele. Program nebyl odebrán ručně, byla použita automatická struktura. Kromě toho, v tuto chvíli, uživatelé a odborníci vymazali rozdíl mezi termíny. Často montážní volání programovací jazyky, i když je to jen užitek.

Vzhledem k obecně přijímanému sběrném jménu mají některé chybné řešení, že existuje jediný jazyk nízké úrovně (nebo standardní normy). Aby programátor pochopil, o čem je struktura, je nutné upřesnit, pro které je použita platforma jedna nebo jiný jazyk assembleru.

Makrofs.

Jazyky assembler, které jsou vytvořeny relativně nedávno mají makrosy. Usnadňují pravopis a realizaci programu. Díky své přítomnosti překladatel provede písemný kód občas rychleji. Při vytváření podmíněné volby můžete napsat obrovský blok týmů a je snazší používat makra. Budou rychle přepínat mezi akcemi, pokud je podmínka nebo nesplnění plnění.

Při použití maker-jazykových směrnic, programátor přijímá makra assembler. Někdy to může být široce používán, a někdy jeho funkční funkce jsou redukovány na jeden příkaz. Jejich přítomnost v kódu s nimi usnadňuje práci, je srozumitelnější a vizuální. Mělo by však být pozorné, že by měl být pozorný - v některých případech makra naopak zhoršuje situaci.