Programski jezici sa niskim nivoom. Kada je bio sastavljanje (sastavljanje) i jezik mašine? Identifikatori, cijeli brojevi, simboli, komentari, ekvivalentnost

Programski jezik

Assembler je program za programiranje niskog nivoa, koji je format za snimanje strojnih naredbi, pogodno za ljudsku percepciju.

Naredbe za assembilkualni jezik su jedan u jednom odgovarati timovima procesora i u stvari su prikladni simbolični oblik snimanja (Mnemokode) naredbi i njihovih argumenata. Također, jezik assemblera pruža osnovne sažetke softvera: obvezujući dijelove programa i podataka nakon oznaka sa simboličkim imenima i direktivom.

Direktive o assemBleru omogućavaju vam da u programu uključite blokove podataka u program (opisano izričito ili čitanje iz datoteke); ponovite određeni fragment navedenog broja vremena; sastaviti fragment pod uslovom; Podesite adresu izvršenja fragmenta, promijenite vrijednosti naljepnica tokom postupka kompilacije; Koristite makro definicije s parametrima i drugim.

Svaki model procesora u principu ima svoj skup naredbi i odgovarajući jezik (ili dijalekt) montaže.

Prednosti i nedostaci

  • minimalni iznos suvišnog koda (upotreba manjih naredbi i reference na memoriju). Kao rezultat - veliku brzinu i manju veličinu programa
  • veliki sveski za kodeks, veliki broj dodatnih manjih zadataka
  • loša čitljivost koda, podrška poteškoća (uklanjanje pogrešaka, dodavanje mogućnosti)
  • poteškoće s provođenjem programskih paradigmi i bilo koje druge složene konvencije, složenost zajedničkog razvoja
  • na raspolaganju je manje biblioteka, njihova mala kompatibilnost
  • direktan pristup opremi: I / O portovi, specijalni procesorski registri
  • mogućnost pisanja samo-modifikacijskog koda (I.E. MetaProgramming i bez potrebe za softverskim tumačem)
  • maksimalno "fit" za Željena platforma (upotreba posebnih uputstava, tehničkih karakteristika "željeza")
  • netolerancija na druge platforme (osim binarnog kompatibilnog).

Sintaksa

Opšte prihvaćeni standard za sintaksu jezika sa montaža ne postoji. Međutim, postoje de facto standardi - tradicionalni pristupi koje se najviše pridržavaju većine programera sastavljača. Glavni informativni standardi su Intel-sintaksa i AT & T-sintaksa.

Opći format za snimanje uputstava je isti za oba standarda:

`[Tag:] Opkod [operands] [; komentar]`

Izgled je direktno mnemonična uputstva procesoru. Mogu se dodati prefiksi (ponavljanja, promjene kao što su adresiranje itd.). Kao operandi, konstanti, registracija, adresa u RAM-u itd. Razlike između Intela i AT & T standarda su uglavnom redoslijed prijenosa operanda i njihove sintakse s različitim metodama adresiranja.

Korišćene menemonike obično su iste za sve procesore jedne arhitekture ili porodice arhitekata (među poznatim - Mnemonike prerađivača i kontrolera Motorola, ruku, X86). Opisani su u specifikacijama procesora.

Na primjer, Zilog Z80 procesor naslijedio je naredbeni sistem Intel I8080, proširio ga i promijenio mnemoničku (i registrirati oznake) na svoj način. Na primjer, promijenio sam Intel Mock na LD. Motorola Fireball procesori naslijedili su Z80 naredbeni sistem, rezanje. Istovremeno, Motorola se službeno vratila u Intel Mnemoniku. i B. ovaj trenutak Pola sklopnika za vatrene kugle radi sa Intelom mnemonikom, a polovina sa Zilog Mnemonikom.

Direktiva

Pored uputa, program može sadržavati direktive: naredbe koje se ne šalju izravno na upute za strojeve i menadžere prevodilaca. Set i sintaksa značajno će se razlikovati i ovisi o hardverskoj platformi, već iz korištenog prevodilaca (generiranje dijalekata jezika unutar jedne porodice arhitekture). Kao skup, direktive se mogu dodijeliti:

  • definisanje podataka (konstanti i varijable)
  • upravljanje organizacijom organizacije u parametrima memorije i izlaznih datoteka
  • način rada prevodilaca
  • sve vrste apstrakcija (I.E., Elementi jezika na visokom nivou) - od registracije procedura i funkcija (za pojednostavljenje provedbe paradigme programiranja postupka) uslovnim strukturama i ciklusima (za strukturu strukturnog programiranja)
  • macros

Podrijetlo i kritika izraza "Assemblemer jezik"

Ova vrsta jezika primila je ime iz imena prevoditelja (prevodilac) sa ovih jezika - sastavljanje (eng. Assembler - kolektor). Naziv potonjeg je zbog činjenice da na prvim računarima nije bilo jezika višeg nivoa, a jedina alternativa stvaranju programa koji koriste assembler programira se direktno u kodovima.

Jezik montaže na ruskom često se naziva "Assembler" (i nešto povezano s njim je "Assembler"), koji je, prema engleskom prevodu Riječ, netačan, ali se uklapa u pravila ruskog jezika. Međutim, sami sakupljanje (program) se naziva i "Assembler", a ne "prevodilac jezika sastavljača" itd.

Upotreba izraza "Assemblemer jezik" može uzrokovati pogrešno mišljenje o postojanju jednog jezika niskog nivoa, ili barem standarda za takve jezike. Kada se naziva jezik na kojem je napisan određeni program, preporučljivo je navesti, za koju je arhitektura namijenjena i na koji je napisan dijalekt jezika.

Elementi sintakse:

Primjeri:

Zdravo svijete!

Primjer za verzije Intela X86 (IA32)

mOV AX, CS MOV DS, AX MOV AH, 9 MOV DX, Offset Hello Int 21h Xor AX, AX INT 21h Pozdrav: DB "Hello World!", 13, 10, "$"

Zdravo svijete!

Primjer za verzije Amige

pomicanje. L #dos premještanje. L 4. W, A6 JSR - 0198 dolara (A6); OllopenLibrary potez. L D0, A6 BEQ. s. Potez. L #helloworld, d1 a) momak q # 13, D2 JSR - $ 03AE (A6); Writechars B) JSR - 03B4 USD; Putstr Pomicanje. L A6, A1 potez. L 4. W, A6 JSR - 019E (A6); Closelnibrarna. Out RTS DOS DC. b "dos.library", 0 Helloworld DC. B "Hello World!" , $ A, 0

Zdravo svijete!

Primjer za verzije atarica

pomicanje. L #Helloworld, - (A7) Pomicanje # 9, - (A7) Zamka br. 1 dodajte. L # 6, a7 pomak # 0, - (a7) zamka # 1 Helloworld: DC. B "Hello World!", 0D, $ 0A, 0

Zdravo svijete!

Primjer za verzije Intela X86 (IA32)

NASM Linux koristi Intel Sintaksa. Kompilacija i povezivanje:

  • nasm -F Elf -o Hello.o Hello.asm
  • lD -O Hello Hello.o

Odjeljak. Podaci MSG DB "Zdravo, svijet!", 0xa LEN EQU $ - MSG odjeljak. Tekst global _start _start :; Ulazna tačka Mov TAX, 4; "Pisanje" sistemskog poziva MOV EBX, 1 MOV ECX, MSG; Pokazivač na Data Mov EDX, LEN; Iznos podataka INT 0x80; Nazovite Core Mov EAX, 1; "_Exit" sistemski poziv mov EBX, 0; Povratak 0 (sve dobro) INT 0x80; Nazovite kernel

Zdravo svijete!

Primjer za verzije PDP-8

/ - Komentari.

/ Hello World on Assembler za pastor za prosil - 8 * 200 HELLO, CLA CLL TLS / TLS postavlja ispisnu zastavu. Tad Charac / Stvara DCA IR1 indeks Registar / za primanje TAD M6 znakova / Konfiguriranje brojila za DCA brojanje / poboljšanje znakova. Dalje, Tad i IR1 / Nabavite simbol. JMS tip / njegov tip. ISZ broji / uradi nešto drugo? JMP Next / Ne, unesite drugi znak HLT tip, 0 / tip TSF JMP podprogram. - 1 TLS CLA JMP I Tip Charac ,. / Koristi se kao početna vrijednost IR1. 310 / h 305 / E 314 / L 314 / L 317 / O 254 /, 240/327 / Š 317 / O 322 / R 314 / L 304 / D 241 /! M6, - 15 Broj, 0 IR1 \u003d 10 USD

Zdravo svijete!

Primjer za verzije PDP-11

Program je napisan na Macro-11 Macroassembler da sastavi i pokrene ovaj program u naredbi RT-11 OS:

Makro Pozdrav.

Otkrivene greške: 0

Link Hello - link. Pozdravite se - trčite

Naslov Hello World; Ime. McAll. TTTYOUT ,. Izlaz Pozdrav :: MOV #MSG, R1; Početna adresa niza je 1 USD: movb (R1) +, R0; Dobijamo Sledeći Exit Symbol; Ako je nula, izađite iz ciklusa. TTTYOUT; Inače ispisati BR 1 $ simbol; Ponovite ciklus Gotovo :. Izlazi iz MSG :. ASCIZ / HELLO, SVIJET! /; String Hello, World! . Kraj zdravo; Kraj Hello programa

Zdravo svijete!

Primjer za verzije sistema / 360, sustav / 370

IBM sistem / 360/370/390 osnovni jezik sa sklopom.

// EXEC montaž započinje main balr 2, 0 koristeći *, 2 Otvoreni print MVC Buf, HW Put Ispis Zatvori Print Eoj HW DC CL132 "Hello World" Buf DS CL132 Print DTFPR IOAREA1 \u003d BUF, DEVADDR \u003d SYSLST, BLKSIZE \u003d 132, * Uređaj \u003d 3203, Control \u003d Da, PrintOv \u003d da krajnji / * // exec lnkedt // exec / * / &

Zdravo svijete!

Primjer za verzije Apple II

* Hello World za 6502 Apple] [* ******************************** Strout Equ $ DB3A Ldy #\u003e Pozdrav Lda #< HELLO JMP STROUT HELLO ASC "HELLO WORLD !", 00

Zdravo svijete!

Primjer za verzije PDP-10

CHTTYO - Sav ulaz / izlaz vrši se koristeći I / O kanale. Najbolje je napraviti simbolična imena za one kanale koje koristite i započnite ih sa Ch. Definirajte ta imena pomoću Midas operatera \u003d\u003d.

Poziv je simbolična oznaka za poziv sistemskog poziva. Njegov format: .call.

Otvoreno otvara kanal za ulaz / izlaz za upotrebu. Zahtijeva dva parametra - broj kanala i naziv uređaja u SixBitu.

Lose% LSFIL je sistemski poziv koji ispisuje poruku o ulaznom / izlazu, ako se odjednom dogodilo.

IOT je sistemski poziv koji je zapravo uključen u ulaz / izlaz. Kao parametar, morate odrediti kanal i adresu koja sadrži kôd simbola za izlaz. Na primjer, "H predstavlja H.

Naslov Printhello A \u003d 1 chttyo \u003d\u003d 1; Kanal za izlaz. Početak :; Otvaranje TTY kanala. . Pozovite [Setz? Sixbit / Open / [. Uao, chttyo]? [Sixbit / TTY /] ((SETZ))]. Izgubiti% LSFIL. Iot chttyo, ["h]; ispisati Hello World Symbol .. iot chttyo, [" e]. Iot chttyo, ["l]. Iot chttyo, [" l]. Iot chttyo, [o]. Iot chttyo, [^ m]; Simbol nove linije. Iot chttyo, [w]. Iot Chttyo, [o]. Iot chttyo, ["r]. Iot chttyo, ["l]. Iot chttyo, [" d]. Vrijednost; Program, Stop :) Kraj početak

Fibonaccije brojevi:

Primjer za verzije MIPS32

Mars emulator. Zaključak MARS CONSOLE:

Fibonaccki brojevi su: 1 1 2 3 5 8 13 21 34 55 89 144 - Program je završen trčanje -

Program prikazuje 15 Fibonaccki brojevi. Broj brojeva može se mijenjati u odjeljku.Data.

Prostor podataka: .asciiz "" glava: .asciiz "Fibonaccijevni brojevi su: \\ n" Fib: .word 0: 15 Veličina: .word 15 .text Main: LA $ t0, FIB LA $ T5, Veličina LW $ T5, 0 ($ T5) LI $ T2, 1 dodatak.d $ F0, $ F2, $ F4 SW $ T2, 0 ($ T0) SW $ T2, 4 ($ t0) Addi $ T1, $ T5, - 2 petlje: LW $ T3, 0 ($ T0) LW $ T4, 4 ($ t0) Dodajte $ T2, $ T3, $ T4 SW $ T2, 8 ($ t0) Addi $ t0, $ t0, 4 addi $ T1, $ T1, - 1 BGTZ $ T1, Loop LA A0, FIB Pomaknite $ A1, $ T5 JAL Ispis LI V0, 10 syscall Print: Dodaj $ t0, $ nula, $ A0 Dodajte $ T1, $ nula, $ A1 LA $ A0, Head Li $ v0, 4 syscall out: lw $ a0, 0 ($ t0) li $ V0, 1 syscall la a0, svemir li $ v0, 4 syscall 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 Syscall



Montaža

Montaža - Programski jezik niskog nivoa. Jezik je dobio ime iz riječi sa montaža - sakupljač. Bilo je još 50. kao simboličan analog jezika mašine.
Komande za assempler su jedna do jedan koji odgovaraju naredbima procesora i u stvari predstavljaju prikladan simboličan oblik naredbi i argumenata snimanja. Također, sklopljenje osigurava obvezujuće dijelove programa i podatke iz oznaka koje se izvode tijekom montaže (za svaku oznaku adresa se izračunava, nakon čega se svaki unos naljepnice zamijeni ovom adresom).
Budući da se mikroprocesorski komandni sustavi razlikuju, svaki procesor ima svoj skup naredbi na montažnom jeziku.
Uz pomoć montaže, možete napisati takve programe koji su nemogući ili je vrlo teško pisati na drugim jezicima. Na primjer: ključni generatori (Keygen), monitori sustava, upravljački programi za opremu ili čak oS.
Jezici na visokom nivou ("C", "Pascal", "Delphi", itd.) Ne pružaju pouzdanu kontrolu nad tokovima podataka, adrese memorije ili registara procesora, kao i sve njih razvijene u određenoj vrsti Operativni sistem, sklopnik može postati isti sklopnik, ali radi na nepoznatoj naučnoj platformi i izradu programa pod ovom platformom.
Programi na assedniku, za razliku od programa napisanih na jezicima na visokom nivou, vrše se u desetinama vremena manje, a oni rade deset puta brže. Primjer može poslužiti kao operativni sistem Menuetos, koji se napisuje na ravnom sklopu i uklapa se na jednu disketu (1,44 MB), a komplet uključuje aplikacijske programe, kao što su: urednik montaže sa pozadinskim sastojakom, rade s datotečnim sustavom, 3D Screensaver, neke igre, slikovitoru slika, prevodilac ravnog sklopa, terminala, CD playera i još mnogo toga. Prednost je što se može brzo preuzeti s interneta (čak i s malom brzinom veze).
Trenutno većina stručnjaka za softver razvija se na jezicima na visokom nivou, poput Pascal ili C, što je lakše kada piše programe, ali najmoćniji i efikasniji i efikasniji softver U potpunosti ili djelomično napisano na jeziku antemera.

Literatura
1. Peter Abel - sastavljanje. Jezik i programiranje za IBM PC - M., 1999.

Montaža

Montaža(Sa engleskog. Assembler - sakupljač) - Kolektor izvornog teksta programa napisanog na montažnom jeziku, na jeziku mašine.
Kao i sam jezik, sastavnici su obično specifični za određenu arhitekturu, operativni sistem i sintaksu verziju jezika. Istovremeno, postoji višestruko ili univerzalno (tačnije, ograničeno-univerzalno, jer na jeziku niskog nivoa ne možete pisati programe za hardverske indefornte) sakupljači koji mogu raditi na različitim platformama i operativnim sistemima. Među potonjem možete istaknuti i grupu unakrsnog sklopa sposobnog za prikupljanje strojnih koda i izvršnih modula (datoteka) za ostale arhitekture i OS.
Skupština možda nije prvi, a ne zadnji korak na putu za dobijanje programa Izvršni modul. Dakle, mnogi prevodilaci sa visokog programskih jezika daju rezultat u obliku programa na jeziku sa assempleksa, koji u budućnosti procesi montaže. Također, rezultirajuća skupština ne može se izvršiti, a objektni modul koji sadrži raštrkane blokove mašinskog koda i programskih podataka iz kojih (ili iz nekoliko objekata) u budućnosti koristeći entitor veze mogu se dobiti izvršnim datotekama.
Posebne memorijske ćelije koje se nalaze direktno u procesoru. Rad sa registrima vrši se mnogo brže nego s RAM ćelijama, tako da se registri aktivno koriste kako u programima na jeziku sa montaža i prevodiocima jezika na visokom nivou.
Imena registara potječu iz njihove svrhe:

EAX / AX / AH / AL (Registar akumulatora) - baterija;
EBX / BX / BH / BH / BH (BASE Registriranje) -registrova baza podataka;
ECX / CX / CH / CL (Registar brojača) - brojač;
EDX / DX / DH / DL (Registar podataka) - Registar podataka;
ESI / SI (Registar izvornog indeksa) - Indeks izvora;
EDI / DI (Registar odredišta indeksa) - indeks prijemnika (primalac);
Esp / sp (Registar begaškog pokazivača) - Registar pokazivača snopa;
EBP / BP (BP (registar baznog pokazivača) - Registar beza slaganja okvira Pokazivač.

Naredbe za obradu redova
Raditi sa redama ili lancima simbola ili brojeva (I.E., jednostavno govoreći, sa nizom proizvoljnih podataka) u MP-u postoji niz posebnih naredbi:
pominovi - Slanje žica;
cMPS - poređenje dviju linija;
mora - pretražite u nizu datog elementa;
lods - Učitavanje baterije (Al ili AH registri) od linije;
sTOS - Snimite element niza iz baterije (registri Ah ili Al).

Dostojanstvo

· Jezik sastavljača omogućava vam da napišete najbrži i najkompaktniji kod koji je općenito moguć za ovaj procesor.
· Optimizacija računarskog algoritma i / ili racionalnijem pristupu RAM-u (na primjer, ako se svi izvorni podaci pohranjuju u procesorske registre, možete isključiti nepotreban pristup funkcijama računanja ;
· Volumen koda (uključujući efikasnu upotrebu intermedijarni rezultati). Smanjenje količine koda također često povećava brzinu izvršenja programa.
· Osiguravanje maksimalne upotrebe specifičnih mogućnosti određene platforme, što vam takođe omogućava stvaranje efikasnijih programa, uključujući manje intenzivne resurse.
· Programiranje na jeziku anteme je moguće direktan pristup opremi, a posebno, I / O portovi, prerađivači itd. U mnogim operativnim sistemima, direktan kontakt iz aplikacijskih programa za registre za registre periferna oprema Blokiran za pouzdanost sustava i izuzetaka "zamrzavanja".
· Assembler jezik se često koristi za stvaranje hardverskih upravljačkih programa i jezgre operativnog sistema kada je važan privremeni radni sporazum. periferni uređaji od centralni procesor.
· Jezik sastavljača koristi se za kreiranje "BIOS firmvera".
· Uz pomoć jezika sastavljača, često se stvaraju podprogrami prevoditelja prevoditelja sa stroja i prevodiocima na visokom nivou, a kompatibilnost platformi se provodi.
· Uz pomoć programa Disassemblemble, možete razumjeti operativne algoritme programa u studiji u nedostatku liste na visokom jeziku, studiranjem samo strojnih kodova, ali u složenim netrivijskim programima vrlo je naporno.

Nedostaci
· Vrlu mašine orijentacije ("niska" nivoa) jezika sastavljača, osoba je teže čitati i razumjeti program na njemu u usporedbi s visoko radnoj programskim jezicima; Program se sastoji od previše "malih" elemenata - strojne naredbe, respektivno, programiranje i uklanjanje pogrešaka komplikovane su, složenost i vjerojatnost donošenja grešaka rastu.
Povećana kvalifikacija programera potrebna je za dobivanje kôda kvalitete: kôd koji je napisao prosječni programer na jeziku sa antemerom obično nije bolji ili još gori od kôda koji generira prevodilac optimizacije za uporedive programe napisane jezikom na visokom nivou.
· Program na visokoj razini može se prekomponirati automatskom optimizacijom za značajke nove ciljne platforme, program na jeziku antemera na novoj platformi može izgubiti svoju prednost brzinom bez ručnog koda za prepisivanje.
· U pravilu, manje biblioteka dostupno u odnosu na moderne industrijske programski jezik.
· Ne postoji prenosivost programa na računaru sa drugom arhitektonskom i komandnom sistemu.

Kompatibilnost
Program namijenjen za jednu vrstu montaže ne može se sastaviti na drugom bez radikalne izmjene ili automatske pretvorbe! Ali čak i među sastavnicima "njihove" vrste nalazi se serija, dezindija i mnoge razlike: u ključne riječi, u pravilima za dizajn popisa, u isporučenim bibliotekama i zaglavljama itd. Ako samo kompatibilnost nije izričito, potrebno je emitirati program s istim kao montir za koji je namijenjen. U suprotnom, pripremite se za izmjene (to je za usvajanje). Razlike se često očituju na najneočekivanija mjesta. Neki sklopnici razumiju da je "MOV EAX, X" isti kao "MOV EAX, [X]", neki - ne. Spadaju i izdaju grešku. Ali ništa drugo! Mnogo gore kad prevodilac tiho interpretira ovaj dizajn kao "MOV EAX, ofset x", što nije baš ista stvar! Dakle, prilikom prijenosa programa morate biti vrlo i vrlo oprezni.

Kompatibilnost operativnih sistema. MS-DOS-orijentirani programi bez ne samo da nisu prevozili, već i netolerancije. Za njih je karakteristično direktna interakcija Uz opremu dostupnu u NT-u samo sa nuklearne razine, a ne spomenuti da se 16-bitni kod naziva sa 32-bitnih aplikacija samo preko DPMI-ja, a zatim ne bez truska.

Dakle, prije emitovanja programa assemblera potrebno je identificirati za koji prevodilac i operativni sistem namijenjen je! Sa fragmentima sa antemerom uhvaćenim iz "izvornog" konteksta, još su gore. Pretpostavimo da je u nekom članku opisani zanimljiv prijem protiv petlje, a dat je aspremnik, ali kako ga ugraditi u svoj program - ne kaže. Poznata situacija, zar ne? Direktna emisija nije moguća - prevodilac je divljački pissilan, ali ništa ne kaže.

Mekani montaža

Pripremljeni tekst su izvorni podaci za posebne programe pod nazivom Snimovi. Zadatak montaže je pretvoriti tekst programa na oblik binarnih naredbi koje može izvesti mikroprocesor. Ako se otkriju sintaksa grešaka, nastanak kôd neće biti kreiran. Proces kreiranja izvršne datoteke javlja se u dvije faze:

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

U prvoj fazi (.ASM -\u003e .obj) iz datoteke sa assemblera kompilacijom, dobivene su srednje datoteke kod objekta koji imaju ekstenziju proširenja (mogu se koristiti dodatne datoteke). Datoteka sa Extension.OBJ sadrži optimizirani šifru mašine pod uvjetom da sintaktične i semantičke greške nisu ispunjene. Ako su pogreške otkrivene u izvornom datoteku s programom na jeziku sa antemenicama, tada programer pruža listu otkrivenih grešaka u kojima su pogreške navedene s brojem linije u kojem su otkriveni. Programer ciklično vrši akcije za uređivanje i kompilaciju dok se ne eliminiraju sve pogreške u izvornoj datoteci. U ovoj je fazi već moguće dobiti gotov program, ali najčešće nedostaju neke komponente. Ako je prevodilac iz bilo kojeg razloga (neispravno je registrirao put u takvu datoteku ili datoteka nedostaje) ne može pronaći datoteku Inc, a zatim se izdaje upozorenje i primio je upozorenje i primio je upozorenje i primio je upozorenje i primio je upozorenje i primljena je upozorenje.

Skupština, u pravilu se odvija u dva prijema. Na prvom prolazu, Mnemoničke naredbe, sedmični brojevi i simboli u odgovarajućim strojnim kodovima prevedeni su, izračunavaju koliko je naredba zauzeta lokacijom, otkrivena imena koju korisnik (konstante, oznake, varijable)) njihova vrsta i numerička vrijednost napisano na stol. U istoj tabeli se snima, iz koje se bavi postupcima, adresi naljepnica, adrese početka / kraja segmenata, itd., Supstituirane su, adrese početka postupaka su zamijenjene drugim odlomkom , Zamijenjena su imena naljepnica.

Kao rezultat Skupštine se dobija takozvana "objektna datoteka". Kao dodatna karakteristika, assembler može stvoriti datoteku s popisom programa.

Obično da biste dobili datoteke kodova objekata, morate izvesti odgovarajući programski sklop (Microsoft ML.EXE i TASM.EXE programa kompanije Borland), što ukazuje na naredbena linija Naziv datoteke sa programskim tekstom.

Ovaj je izazov minimalno potreban. Osim imena tekstualna datotekaMorate odrediti opcije za montažu. Više informacija o opcijama Skupštine programa treba tražiti u dokumentaciji za ove programe.

Izgled program

Sljedeća faza (.obj -\u003e .exe / .dll / .com) naziva se povezivanjem ili rasporedom i služi za zamjenu imena znakova koje koriste programera na stvarne adrese.

Uporedite heksadecimalni sadržaj OBJ i Exe datotekakoju imaš. EXE datoteka ima isti niz bajtova kao u obj datoteci. Ali osim ovoga je i dalje prisutan: naziv sastavljenog datoteke, verzija osetljivtora, "vlastiti" segment i tako dalje.

Ova "usluga" informacije namijenjene onim slučajevima kada je vaša izvršna datoteka koju želite prikupiti od nekoliko. Kada se razvija velike aplikacije Izvorni tekst sastoji se u pravilu iz više modula (datoteke sa izvornim tekstovima), jer je neugodno pohranjivati \u200b\u200bsve tekstove u jednoj datoteci - teško ih je kretati.

Svaki modul sastavljen je u zasebnu datoteku sa objektnim kodom. Svaka od ovih datoteka propisuje se njihov kodeks / podaci / snop snopa, koji se tada trebaju kombinirati u jednu. I izvršnu datoteku koju trebamo dobiti samo jedan - s jednim segmentom koda / podataka / snopa. To je ova veza i radi: upotpunjuje definiciju veza i objedinjuje ako je potrebno, nekoliko softverskih modula u jednom. A ovaj s nama se izvodi.

Pored toga, potrebno je dodati šifru mašine na naše module koji implementiraju različite standardne funkcije (na primjer, računanje grijeha ili u matematičkim funkcijama). Takve funkcije su sadržane u bibliotekama (datoteke sa standardnim proširenjem. LIB), koji se ili isporučuju sa prevodilacem, ili se stvaraju samostalno. Stoga proces pripreme nužno uključuje fazu izgleda kada su sve nepoznanice definirane kada se utvrdi adresa srušenih varijabli ili funkcija.

Proces kombiniranja objekata u jednu datoteku vrši se posebnim programom povezivača ili kolektor (Link.exe program Microsoft i Tlink.exe Company Borland), koji vrši obvezujući objektne module i strojne šifre standardnih funkcija, pronalaženje njih u bibliotekama i generira izvedbenu aplikaciju je izvršni kod za određenu platformu.

Izvršni kôd je kompletan program sa COM, DLL ili EXE ekstenzijom, koji se može pokrenuti na računaru s instaliranim operativnim sistemom za koji je stvoren ovaj program. Naziv izvršne datoteke bit će postavljen prvom .obj datotekom. Za povezivanje morate birati u naredbenom retku:

link prog1.obj prog2.obj ili tlink prog1.obj prog2.obj

Sadržaj objektne datoteke analizira povezivanje. Određuje postoji li program vanjske vezeTo jest, hoće li program naredbe programa u jednom od biblioteka objektnog modula (biblioteka linkova). Veza pronalazi ove veze u objektnu datoteku, kopira potrebne postupke iz biblioteka, kombinira ih sa objektnom datotekom i stvara izvršnu datoteku (izvršnu datoteku). Kao dodatne funkcije Vezenik može stvoriti datoteku unakrsne veze koja sadrži plan primljenog izvršne datoteke.

Polovni izvori
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 Jezik za IBM PC. M.: Računar, 1992.

1. Kada i ko je izmišljen brojanje perforiranih mašina? Koji su zadaci riješili na njima?

2. Šta je elektromehanički relej? Kada su stvorene mašine za računanje releja? Koja su brzina poseduju?
3. Gde i kada je izgrađen prvi računar? Kako se zvao?
4. Kakva je uloga Johna Von Neumana u stvaranju računara?
5. Ko je bio dizajner prvog domaćeg računara?
6. Na čemu baza elemenata Kreirali su mašine za prvu generaciju? Koje su bile njihove glavne karakteristike?
7. Na kojoj osnovnoj bazi podataka stvorila je mašine druge generacije? Koje su njihove prednosti u odnosu na prvu generaciju računara?
8. Koji je integrirani krug? Kada su bili prvi računari na integriranim krugovima? Kako su zvali?
9. Koja su nova područja primjene računara nastala sa izgledom strojeva za treće generacije?
10. Šta je mikroprocesor? Kada i gde je stvoren prvi mikroprocesor?
11. Šta je mikroev i lični računar?
12. Koje su vrste računara najčešće na svijetu?
13. Šta je superkompjuter?
14. Koji su klasterirani PC sistemi?
15. Kakva je karakteristika računara pete generacije?

Navedite prvi računarski uređaj. Ubaciti kalkulator aritmotemetra ruskih rezultata koje je ideja izneti u sredinu

Engleski matematički matematički matematički iz 19. stoljeća?

Ideja kreiranja upravljanja softverom mašina za brojanjeImati aritmetički uređaj, upravljački uređaj, kao i uređaj za unos i štampanje

Ideja o stvaranju mobitel

Ideja stvaranja robota kojima upravlja računar

Koje godine i gde je bio prvi računar zasnovan na elektronskim lampama?

1945, SAD

1944., Engleska

1946, Francuska

Koja su osnova stvorena treća generacija računara?

Integrirane sheme

poluvodiči

elektronske lampe

superzvodni integrirani krugovi

Kako se zvao prvi lični računar?

Navedite središnji uređaj računara.

CPU

Sistemska jedinica

Napajanje

Matična ploča

Procesor procesuje predstavljene informacije:

U decimalni sistem Bilješka

Na engleskom

Na ruskom

Na jeziku motora (u binarnom kodu)

Za unos numeričkih i tekstualnih informacija koje se koriste

Tastatura

Skener se koristi za ...

Da biste unijeli slike slika i tekstualnih dokumenata

Za crtanje na njemu posebna ručka

Pomicanje kursora na ekranu monitora

Holografske slike

10. Koju vrstu pisača preporučljivo koristiti finansijske dokumente za ispis?

Matrix štampač

Jet štampač

Laserski štampač

Koju vrstu pisača preporučljivo koristiti za ispis eseja?

Matrix štampač

Jet štampač

Laserski štampač

Koju vrstu pisača preporučljivo je koristiti fotografije za ispis?

Matrix štampač

Jet štampač

Laserski štampač

Uz neusklađenost sa sanitarnim i higijenskim zahtjevima računara, može se pružiti štetni učinak na zdravlje ljudi ...

Monitor na elektroničkoj cijevi za zračenje

Monitor na tečnim kristalima

PLASMA PANELE

Kad se računar isključi, sve se informacije brišu iz ...

Ram memorija

Tvrdi disk

Laserski disk

U kojem se računar čuva u računaru?

Vanjska memorija;

cPU;

Optičke zapise imaju manju debljinu i postavljaju se čvršće na ...

Digitalni video motor (DVD disk)

Kompaktni disk (CD - disk)

Upisni uređaji ulaze ...

Izlazni uređaj uključuje ...

Tastatura, miš, džojstik, lagano perje, skener, digitalna kameraMikrofon

Zvučni stubovi, monitor, štampač, slušalice

Hdd, procesor, memorijski moduli, matična pločadisketa

Program se zove ...

Računalni program može upravljati radom računara ako je ...

U ramu

Na fleksibilnom disku

Na tvrdom disku

Na CD-u - disk

Podaci su ...

Slijed naredbi koje računar izvodi tokom obrade podataka

Informacije predstavljene u digitalnom obliku i obrađuju se na računaru

Podaci koji imaju ime i pohranjeni u dugoročnoj memoriji

Datoteka je ...

Tekst ispisano na računaru

Informacije predstavljene u digitalnom obliku i obrađuju se na računaru

Program ili podaci koji imaju ime i pohranjeni u dugoročnoj memoriji

Uz brzo oblikovanje fleksibilnog diska ...

Jasan direktorij diska

Svi podaci se brišu

Izvrši se defragmentacija diska

Provjera površine diska

Uz potpuno oblikovanje fleksibilnog diska ...

svi podaci se brišu

izvodi se potpuna provjera diska.

jasan direktorij diska

disk postaje sistemski

U hijerarhijskom datotečnom sistemu na više nivoa ...

Datoteke se pohranjuju u sustav ugniježđenih mapa.

Datoteke se pohranjuju u sustav koji je linearni niz

Istorija razvoja računarske opreme:

1. Navedite prvu računarski uređaj.
1) abak
2) Kalkulator
3) aritmometar
4) ruski rezultati

2. Kakva je ideja iznesena na sredina 19. stoljeća engleskog matematičarskog matematičara Charles Babbage?
1) Ideja o kreiranju softverskog upravljanog brojevima koji ima aritmetički uređaj, upravljački uređaj, kao i uređaj za unos i štampanje
2) ideja o stvaranju mobitela
3) ideja stvaranja robota kojima upravlja računar
3. Navedite prve programerske računarske mašine.
1) pakao Lavley
2) Sergey Lebedev
3) Bill Gates
4) Sophia Kovalevskaya

4. U kojoj godini i gde je bio prvi računar zasnovan na elektronskim lampama?
1) 1945, SAD
2) 1950, SSSR
3) 1944, Engleska
4) 1946, Francuska

5. Koja je osnova stvorena računar treće generacije?
1) integrirani krugovi
2) poluvodiči
3) Elektronske lampe
4) super-visoki integrirani krugovi

6. Kako se zove prvi lični računar?
1) Apple II
2) IBM PC
3) Dell.
4) Corvette
Računalni uređaj ....................... 15
1. Navedite središnji uređaj računara.
1) procesor
2) sistemski blok
3) Napajanje napajanja
4) matična ploča
2. Kako se fizičke informacije u računaru snimljene i prenose?
1) brojke;
2) koristeći programe;
3) pojavljuje se u obliku električnih signala.

3. Procesor procesuje predstavljene informacije:
1) u sistemu decimalnog broja
2) na engleskom jeziku
3) na ruskom
4) na mašini (u binarnom kodu)
4. Da biste unijeli numeričke i tekstualne informacije koje se koriste
1) tastatura
2) miš
3) trekball
4) rukovati
5. Najvažnija karakteristika Uređaji koordinatnog unosa su rezolucija, koja je obično 500 dpi (tačka po inču - točkice po inču (1 inča \u003d 2,54 cm)), što znači ...
1) Prilikom pokretanja miša do jednog inča, pokazivač miša pomiče se za 500 bodova
2) Prilikom pomicanja miša za 500 bodova, pokazivač miša pomiče jedan inč
6. Skener se koristi za ...
1) Da biste unijeli slike i tekstualne dokumente
2) za crtanje na njemu posebnu ručku
3) pomicanje kursora na ekranu monitora
4) Dobijanje holografskih slika
Izlazni uređaji za informacije ................. 21
1. Koju vrstu pisača je prikladno koristiti financijske dokumente za ispis?
1) matrični štampač
2) inkjet štampač
3) laserski štampač
2. Koju vrstu pisača preporučljivo koristiti za ispis sažetaka?
1) matrični štampač
2) inkjet štampač
3) laserski štampač

1. Koju vrstu pisača preporučljivo koristiti fotografije za ispis?
1) matrični štampač
2) inkjet štampač
3) laserski štampač
2. U slučaju nepoštivanja sanitarnih i higijenskih zahtjeva računara može se pružiti štetni učinak na zdravlje ljudi ...
1) monitor na elektroničko zračenje
2) monitor na tečnim kristalima
4) plazma paneli
3. Naziva se uređaj koji pruža unos i čitanje informacija ...
1) voziti ili voziti

4. Kad se računar isključi, sve se informacije brišu iz ...
4) RAM
5) tvrdi disk
6) laserski disk
7) Dijeta
13. U kojem se računar čuva za informacije?
1) vanjska memorija;
2) monitor;
3) procesor;
2. Optičke zapise imaju manju debljinu i postavljaju se čvršće na ...
1) Digitalni video motor (DVD - disk)
2) Kompaktni disk (CD - disk)
3) disketa
3. Na koji se podaci o disku pohranjuju na koncentrične staze, na kojima se naizmjenično i ne-vitrijski dijelovi
1) na disketi
2) na kompaktnom disku
3) na DVD-u - disk

4. U ulaznim uređajima uključeni ...

1) tvrdi disk, procesor, memorijski moduli, matična ploča, disketa
5. Na izlazni uređaj uključen ...
1) tastatura, miš, džojstik, lagani perje, skener, digitalni fotoaparat, mikrofon
2) Zvučni stubovi, monitor, štampač, slušalice
3) tvrdi disk, procesor, memorijski moduli, matična ploča, disketa
6. Program se naziva ...

7. Računalni program može upravljati radom računara ako je ...
1) u RAM-u
2) na fleksibilnom disku
3) na tvrdom disku
4) na CD-u - disk
8. Podaci su ...
1) naredbeni niz koji računar izvodi tokom procesa obrade podataka
2) informacije predstavljene u digitalnom obliku i obrađuju se na računaru
3) podatke koji imaju ime i pohranjeni u dugoročnoj memoriji
9. File je ...
1) Tekst ispisano na računaru
2) informacije predstavljene u digitalnom obliku i obrađuju se na računaru
3) program ili podaci koji imaju ime i pohranjeni u dugoročnoj memoriji

10. Uz brzo oblikovanje fleksibilnog diska ...
1) Očistite direktorij diska.
2) svi podaci se brišu
3) Defragmentacija diska
4) ček


Za početak razumijemo terminologiju.

Mašinski kod - Sistem naredbi određenog računarske mašine (procesor), koji se interpretira direktno procesoru. Tim je u pravilu cijeli broj koji je napisan u registar procesora. Procesor čita ovaj broj i obavlja operaciju koja odgovara ovoj naredbi. Popularno je to opisano u knjizi Kako postati programer.

Jezik programiranja niskog nivoa (Programski jezik niskog nivoa) je programski jezik, što je moguće bliže programiranju u strojnim kodovima. Za razliku od strojeva, na jeziku niskog nivoa, svaka naredba odgovara nebrojnom, ali skraćenom nazivu naredbe (mnemonic). Na primjer, naredba Dodaj je smanjenje iz dodavanja riječi. Stoga će upotreba jezika niskog nivoa značajno pojednostaviti programe pisanja i čitanja (u poređenju sa programiranjem u strojnoj kodovima). Jezik niskog nivoa vezan je za određeni procesor. Na primjer, ako ste napisali program na jeziku niskog nivoa za PIC procesor, možete biti sigurni da neće raditi s AVR procesorom.

Jezik za programiranje visokog nivoa - Ovo je programski jezik, što je moguće bliže ljudskom jeziku (obično na engleskom jeziku, ali postoje programski jezici na nacionalnim jezicima, na primjer, jezik 1c se temelji na ruskom jeziku). Jezik visokog nivoa praktično nije povezan sa određenim procesorom ili operativnim sistemom (ako se ne koriste određene direktive).

Jezik montaže - Ovo je programski jezik niskog nivoa na kojem pišete svoje programe. Za svaki procesor postoji vlastiti jezik montaže.

Montaža - Ovo je poseban program koji pretvara (sastavlja) izvorne tekstove vašeg programa napisanog na senzurećem jeziku u izvršnu datoteku (datoteku sa EXE ili COM ekstenzijom). Da biste bili tačni, potrebni su dodatni programi za kreiranje izvršne datoteke, a ne samo montaža. Ali o tome kasnije ...

U većini slučajeva, Assembler kaže i podrazumijevaju "jezik sastavljanja". Sada znate da su to različite stvari i zato ne recite da ne baš ispravno. Iako će vas svi programeri razumjeti.

BITAN!
Za razliku od jezika na visokom nivou, poput Pascala, Beysika itd., Postoji vlastiti montažni jezik za svaki sastavljanje. Ovo se pravilo radikalno razlikuje sa montažnim jezikom sa jezika na visokom nivou. Izvorni tekstovi programa (ili jednostavno "izvori") napisani na visokom jeziku, u većini slučajeva možete sastaviti različite prevoditelje za različite procesore i različite operativne sisteme. Sa izvorima montaže da bi to učinili mnogo teže. Naravno, ta razlika gotovo nije opipljiva za različite montaže, koji su namijenjeni istim procesorima. Ali činjenica je da za svakog procesora nalazi se vlastiti sastavljanje i njegov montrični jezik. U tom smislu, mnogo je lakše programirati na jezicima na visokom nivou. Međutim, sva zadovoljstva trebaju biti plaćeni. U slučaju jezika na visokom nivou možemo se susresti sa takvim stvarima veći Izvršna datoteka, najgora brzina itd.


U ovoj ćemo knjizi razgovarati samo o programiranju računara sa Intelovim procesorima (ili kompatibilnim). Da biste u praksi provjerili primjere navedene u knjizi, trebat će vam sljedeći programi (ili barem neki od njih):

  1. . Dobar programPosebno za početnike. Uključuje urednik izvora i neke druge korisne stvari. Radi u Windows-u, iako su programi napisani u okviru DOS-a. Nažalost, program košta novac (ali vrijedi ga))). Za detalje pogledajte web mjesto http://www.emu8086.com.
  2. - Turbo montaža iz Borlanda. Možete stvoriti programe za oba DOS-a i za Windows. Takođe vrijedi novac i trenutno više nije podržan (i Borland ne postoji). Općenito, stvar je dobra.
  3. - Assembler iz Microsofta (dešifrovan kao makro montaža, a ne Microsoft Assembler, što više neinicijatiziranih) misle. Možda najpopularniji sastavljanje za Intelove procesore. Do sada podržana. Uslovno besplatan program. To jest, ako ga kupite odvojeno, koštat će novac. Ali dostupni su besplatni MSDN pretplatnici i ulazi u Visual Studio Software Paket iz Microsofta.
  4. - Assembler iz Watcom. Kao i svi ostali, ima prednosti i nedostatke.
  5. - Ima skromne mogućnosti, ali ima veliki plus - ulazi u standardni Windows Set. Potražite ga u mapi Windows \\ Command ili Windows \\ System32. Ako se ne nalazite, tada u drugim mapama direktorija za Windows.
  6. Poželjno je i poželjno imati. Disionski filmski menadžer, poput upravljača vukova (VC) ili zapovjednik Nortona (NC), ne sprečava. Uz pomoć, možete vidjeti i heksadecimalne kodove datoteka, ali ne mogu se uređivati. Besplatni heksadecimalni urednici na Internetu su prilično puno. Evo jednog od njih: McAfee Fileinsight V2.1. Isti urednik može se koristiti za rad sa izvornim tekstovima programa. Međutim, sviđa mi se više da to učinim sa sljedećim urednikom:
  7. Urednik teksta. Zainteresovani smo za pisanje izvornih tekstova vaših programa. Mogu preporučiti besplatni uređivač PSPAD, koji podržava mnogo programskih jezika, uključujući jezik sastavljanje.
Svi programi predstavljeni u ovoj knjizi (i primjerima programa) testirani su za performanse. I to su ovi programi koji se koriste za provođenje primjera programa navedenih u ovoj knjizi.

Pa ipak - napisani izvorni kod, na primjer za EMU8086, bit će malo drugačiji od koda napisanog, na primjer, za TASM. Te će se razlike biti navele.

Većina programa prikazanih u knjizi piše se za. Prvo, jer je ovaj sastavljanje najpopularniji i još uvijek podržan. Drugo, jer dolazi s MSDN-om i sa Microsoftovim softverskim paketom Visual Studio. Pa, u trećem, jer sam sretan vlasnik licencirane kopije MASS-a.

Ako već imate montažu koji nije uključen u gore navedeni popis, morat ćete samostalno baviti njenom sintaksom i pročitati korisnički priručnik da biste saznali kako raditi s njom. Ali opće preporuke date u ovoj knjizi bit će fer za bilo koji (dobro ili gotovo za bilo koji) montaže.

Da bi stroj izvršio timove neke osobe na hardverskom nivou, potrebno je odrediti određeni niz akcija na jeziku "Nolikov i jedinica". Pomoćnik u ovom poslu bit će montirac. Ovo je uslužni program koji radi s prijenosom naredbi na mašinu. Međutim, pisanje programa je vrlo dugotrajan i složen proces. Ovaj jezik nije namijenjen stvaranju pluća i jednostavnih radnji. Trenutno se koristi bilo koji programski jezik koji se koristi (montaža radi fino) omogućava vam pisanje posebnih efektivnih zadataka koji snažno utječu na rad hardvera. Glavna svrha je stvaranje mikrokomanda i malih kodova. Ovaj jezik daje više mogućnosti od, na primjer, Pascal ili C.

Kratak opis jezika sa montaža

Svi programski jezici podijeljeni su sa nivoa: niski i visoki. Bilo koji od sintaktičkih sistema "porodice" montažera razlikuje se u tome što se pojedinjuje odjednom nekim prednostima najčešćih i modernih jezika. Sa drugima, njihovim rođacima i činjenicom da se računarski sistem može u potpunosti koristiti.

Razlikovna karakteristika prevodilaca je jednostavnost za upotrebu. Razlikuje se od onih koji rade samo s visokim nivoima. Ako uzmete u obzir bilo koji takav programski jezik, montaža funkcionira dvostruko brže i bolje. Da biste u njemu napisali svjetlosni program, previše vremena neće trebati.

Ukratko o strukturi jezika

Ako općenito razgovaramo o radu i strukturi funkcioniranja jezika, sigurno možete reći da njegove naredbe u potpunosti odgovaraju procesorskim timovima. Odnosno, assembler koristi Mnemokodes, najprikladniju osobu za snimanje.

Za razliku od ostalih programskih jezika, assembler koristi određene oznake za snimanje memorijskih ćelija umjesto adresa. Prevode se u takozvane direktive. To su relativne adrese koje ne utječu na rad procesora (ne prevedeni na mašinski jezik) i neophodni za prepoznavanje samog programiranja.

Za svaki redak procesora postoji samo sa ovom situacijom tačno će biti bilo koji proces, uključujući i prevedeno

Jezik sastavljača ima nekoliko sintaksa o kojima će se raspravljati u članku.

Plus jezika

Najvažnije i praktično prilagođavanje jezika montaže biće da je moguće napisati bilo koji program za procesor koji će biti vrlo kompaktan. Ako se kôd pokaže ogromnim, tada neki procesi preusmjeravaju na rAM. Istovremeno rade sve brzo i bez kvarova, osim ako naravno, oni kontroliraju kvalificirani programer.

Vozači, operativni sistemi, BIOS, prevodioci, tumači itd. - Ovo je sav program na jeziku assemper-a.

Kada koristite rastavljač, što u jednom prevodu čini prevod u jednom, moguće je lako shvatiti kako funkcionira jedan ili drugi sistemski zadatak, čak i ako nema objašnjenja. Međutim, to je moguće samo ako su programi lagani. Nažalost, u netrivijalnim kodovima, prilično je teško razumjeti.

Jezici u kontekstu

Nažalost, početni programeri (i često profesionalci) teško je rastaviti jezik. Assembler zahtijeva detaljan opis Potreban tim. Zbog činjenice da trebate koristiti strojne naredbe, verovatnoća grešaka akcija i složenost izvršenja raste.

Da bi napisali čak i najviše jednostavan programProgramer se mora kvalificirati, a njegov nivo znanja je prilično visok. Prosječni specijalist, nažalost, često piše loše kodove.

Ako je platforma za koju se kreira program ažurira, tada se sve naredbe moraju kopirati ručno - za to je potreban sam jezik. Assembler ne podržava funkciju automatske regulacije rada procesa i zamijeni bilo kakve elemente.

Timovi jezika

Kao što je već već spomenuto, svaki procesor ima svoj skup naredbi. Najjednostavniji elementi koji su prepoznati bilo kojim tipom su sljedeći kodovi:


Korištenje direktiva

Programiranje mikrokontrolera na jeziku (montaža Ovo omogućava i savršeno se bave funkcioniranjem) najnižeg nivoa u većini slučajeva, to se uspješno završava. Najbolje je koristiti procesore sa ograničenim resursom. Za 32-bitnu opremu ovaj jezik Savršeno se uklapa. Često u kodovima možete vidjeti direktive. Šta je ovo? I šta se koristi?

Za početak, potrebno je naglasiti činjenicu da se direktive ne prenose na jezik mašine. Oni regulišu performanse prevodilaca. Za razliku od timova, ovi parametri, koji imaju razne funkcijeRazličita zahvaljujući različitim procesorima, ali na štetu drugog prevoditelja. Među glavnim direktivama može se dodijeliti na sljedeći način:


Porijeklo imena

Zbog imena jezika - "Assembler"? Govorimo o prevodiocu i prevodiocu koji takođe proizvode šifriranje podataka. S montaža engleskog jezika ne znači ništa osim kolektora. Program nije prikupljen ručno, korištena je automatska struktura. Štaviše, trenutno su korisnici i stručnjaci izbrisali razliku između termina. Često se fokusiraju programski programski programski sastavljanje, mada je to samo korisnost.

Zbog općeprihvaćenog imena prikupljanja nekih imaju pogrešno rješenje koje postoji jedan jezik niskog nivoa (ili standardne norme za to). Da bi programer razumjeo koja se radi o strukturi, potrebno je odrediti, za koji se koristi platforma jedan ili drugi jezik sastavljača.

Macrofs

Jezici sastavljača koji se stvaraju relativno nedavno imaju makrosove. Oni olakšavaju i pravopis i izvršavanje programa. Zahvaljujući njihovom prisustvu, prevoditelj izvrši pisani kod povremeno brže. Prilikom stvaranja uvjetnog izbora možete napisati ogroman blok timova i lakše je koristiti makroi. Oni će se brzo prebaciti između akcija, ako je stanje ili neispunjenje ispunjeno.

Kada koristite direktive o makro-jezičkim jezikom, programer prima makronarednice sa assemera. Ponekad se može široko koristiti, a ponekad su njegove funkcionalne karakteristike svode na jednu naredbu. Njihovo prisustvo u Kodeksu olakšava rad s tim, čini ga razumljivijim i vizualnijim. Međutim, trebalo bi biti pažljivo da bude pažljivo - u nekim slučajevima makronaredbe, naprotiv, pogoršava situaciju.