Zema līmeņa programmēšanas valodas montētājs. Kad montētājs (montētājs) un mašīnas valoda? Identifikatori, veseli skaitļi, simboli, komentāri, līdzvērtība

Programmēšanas valoda

Montētājs ir zema līmeņa programmēšanas valoda, kas ir formāts ierakstīšanas iekārtu komandas, kas ir ērta cilvēka uztverei.

Asambler valodas komandas ir viena no viena atbilst procesora komandām, un, patiesībā, ir ērts simbolisks veids ierakstu (mnemokode) komandu un to argumentiem. Arī montētājs valodu nodrošina pamata programmatūras abstrakcijas: saistošas \u200b\u200bprogrammas daļas un datus pēc tagiem ar simboliskiem nosaukumiem un direktīvu.

Montētājs direktīvas ļauj iekļaut datu blokus programmā (aprakstīts skaidri vai lasīt no faila); atkārtojiet noteiktu noteiktā skaita fragmentu; apkopot fragmentu ar nosacījumu; Iestatiet fragmenta izpildes adresi, apkopošanas procesa laikā nomainiet etiķešu vērtības; Izmantojiet makro definīcijas ar parametriem un citiem.

Katram procesora modelim principā ir savs komandu komplekts un atbilstošā micālera valoda (vai dialekts).

Priekšrocības un trūkumi

  • minimālais atlaišanas koda daudzums (mazāks komandu un atsauces uz atmiņas izmantošanu). Tā rezultātā - liels ātrums un mazāks programmas lielums
  • liels kodu apjomi, liels skaits papildu nelielu uzdevumu
  • slikta kodu lasāmība, atbalsta grūtības (atkļūdošana, iespēju pievienošana)
  • grūtības īstenot programmēšanas paradigmas un citas sarežģītas konvencijas, kopīgas attīstības sarežģītību
  • mazāk pieejamo bibliotēku, to mazo saderību
  • tieša piekļuve aprīkojumam: I / O ostas, speciālie procesori reģistri
  • spēja uzrakstīt pašmaksēšanas kodu (I.E. Metaprogramming, un bez nepieciešamības pēc programmatūras tulka)
  • maksimālais "piemērots" vēlamo platformu (Īpašu instrukciju izmantošana, "dzelzs" tehniskās īpašības)
  • neiecietība uz citām platformām (izņemot bināro saderīgo).

Sintakse

Parasti pieņemtais standarts montāžas valodu sintaksei nepastāv. Tomēr pastāv de facto standartiem - tradicionālās pieejas, ko lielākā daļa montāžas attīstītāji ievēro. Galvenie informācijas standarti ir Intel sintakse un AT & T-sintakse.

Vispārējais formāts ierakstīšanas norādījumiem ir vienāds abiem standartiem:

`[Tag:] Opcode [operands] [; komentārs]`

Izskats ir tieši mnemonisks norādījumi procesoram. Prefiksi (atkārtojumi, izmaiņas, piemēram, adresējot utt.) Var pievienot to. Kā operandi, konstantes, reģistra nosaukumi, adreses RAM uc Atšķirības starp Intel un AT & T standartiem attiecas galvenokārt uz operandu nodošanu un to sintaksi ar dažādām adreses metodēm.

Izmantotie mnemonika parasti ir vienādi visiem procesoriem vienā arhitektūrā vai arhitektu grupā (vidū \u200b\u200blabi zināms - procesoru un kontrolieru Motorola, rokas, X86). Tie ir aprakstīti procesora specifikācijās.

Piemēram, Zilog Z80 procesors mantoja Intel I8080 komandu sistēmu, paplašināja to un mainīja mnemoniku (un reģistra apzīmējumus) savā veidā. Piemēram, es mainīju Intel MOV uz LD. Motorola Fireball procesori mantoja Z80 komandu sistēmu, samazinot to uz leju. Tajā pašā laikā Motorola oficiāli atgriezās Intel Mnemonics. un B. Šis brīdis Puse montieri par Fireball strādā ar Intel Mnemonics, un puse ar Zilog Mnemonics.

Direktīva

Papildus instrukcijām programmā var būt direktīvas: komandas, kas netiek nosūtītas tieši uz mašīnu instrukcijām, un kompilatoru vadītājiem. Komplekts un sintakse būtiski atšķirsies un neattiecas no aparatūras platformas, bet no izmantotā kompilatora (ģenerējot valodu dialektus vienā arhitektūru ģimenē). Kā kopumu, direktīvas var piešķirt:

  • datu definēšana (konstantes un mainīgie))
  • organizācijas organizācijas vadība atmiņā un izejas failu parametros
  • kompilatora darbības veids
  • visu veidu abstrakcijas (I.E., augsta līmeņa valodu elementi) - no procedūru un funkciju reģistrācijas (lai vienkāršotu procedūras plānošanas paradigmas īstenošanu) attiecībā uz nosacītām struktūrām un cikliem (strukturālo plānošanas strukturālajai struktūrai) \\ t
  • makro

Termins "montāžas valodas" izcelsme un kritika

Šāda veida valodas saņēma nosaukumu no tulkotāja nosaukuma (kompilators) no šīm valodām - montētājs (ENG. Montētājs - kolektors). Pēdējā nosaukums ir saistīts ar to, ka pirmajos datoros nebija augstāka līmeņa valodas, un vienīgā alternatīva programmu izveidei, izmantojot montētāju, bija tieši kodeksā.

Asamblejas valoda krievu valodā bieži sauc par "montētāju" (un kaut kas saistīts ar to ir "montētājs"), kas saskaņā ar vārda angļu tulkojumu ir nepareizs, bet iekļaujas krievu valodas noteikumos. Tomēr pats montētājs (programma) tiek saukts arī vienkārši "montētājs", nevis "montētājs valodas kompilators" utt.

Termina "montāžas valodas" izmantošana var izraisīt arī kļūdainu viedokli par vienas zemas līmeņa valodas esamību vai vismaz standartu šādām valodām. Nosaucot valodu, kurā ir rakstīta konkrēta programma, ir ieteicams norādīt, kura arhitektūra ir paredzēta, un uz kāda dialekta valoda ir rakstīta.

Sintakses elementi:

Piemēri:

Sveika pasaule!

INTEL X86 versiju piemērs (IA32)

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

Sveika pasaule!

Piemērs versijām Amiga

pārvietot. L #dos pārvietoties. L 4. W, A6 JSR - $ 0198 (A6); Oldopenlibrary pārvietojas. L d0, A6 BEQ. s. Pārvietot. L #howelloworld, d1 a) MoveQ # 13, D2 JSR - $ 03AE (A6); Writechars b) JSR - $ 03B4; Putstr kustēties. L A6, A1 pārvietoties. L 4. W, A6 JSR - $ 019E (A6); Cietilpīga. Ārā RTS DOS DC. b "dosinibrary", 0 helloworld dc. B "Hello World!" , $ A, 0

Sveika pasaule!

Atarist versiju piemērs

pārvietot. L #helloworld, - (A7) Pārvietot # 9, - (A7) slazds # 1 ADDQ. L # 6, A7 Pārvietot # 0, - (A7) Trap # 1 HelloWorld: DC. B "Hello World!", $ 0d, $ 0A, 0

Sveika pasaule!

INTEL X86 versiju piemērs (IA32)

Nasm Linux izmanto Intel sintakse. Kompilācija un sasaiste:

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

Sadaļa. Dati msg dB "Sveiki, pasaule!", 0xa len EQU $ - MSG sadaļa. Teksts Global _Start _Start:; Ieejas punkts MOV EX, 4; "Rakstīt" sistēmas zvanu MOV EBX, 1 MOV ECX, MSG; Rādītājs uz datu mov EDX, len; Datu apjoms int 0x80; Zvaniet Core MOV EX, 1; "_Exit" sistēma zvana MOV EBX, 0; Atgriezties 0 (viss labi) int 0x80; Zvaniet kodolam

Sveika pasaule!

Piemērs versiju PDP-8

/ - Komentāri.

/ Sveiki pasaule uz Dect PDP - 8 * 200 Sveiki, CLA CLL TLS / TLS nosaka drukas karogu. Tad Charac / izveido DCA IR1 indeksu reģistru / saņemt TAD M6 rakstzīmes / konfigurēt skaitītāju DCA Count / Uzlabot rakstzīmes. Tālāk, tad i ir1 / saņemt simbolu. JMS tips / tā veids. ISZ skaits / darīt kaut ko citu? JMP Next / Nē, ievadiet citu rakstzīmju HLT tipu, 0 / tipa TSF JMP subroutine. - 1 TLS Cla JMP I ieraksta Charac ,. / Izmanto kā sākotnējo vērtību 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 skaits, 0 IR1 \u003d $ 10

Sveika pasaule!

Piemērs versiju PDP-11

Programma ir rakstīta uz makro-11 makroassembler, lai apkopotu un palaist šo programmu RT-11 OS komandā:

Makro hello.

Atklātās kļūdas: 0

Saite Sveiki - saite. Palaist hello - palaist

Nosaukums Hello World; Nosaukums. Mcall. . \\ T Iziet Sveiki :: MOV #msg, R1; Sākotnējā adrese virknes ir $ 1: movb (R1) +, R0; Mēs saņemam šādus BEQ darīts simbols; Ja nulle, iznākt no cikla. Ttyout; Pretējā gadījumā izdrukājiet BR 1 $ simbolu; Atkārtojiet ciklu :. Iziet no MSG :. Asciz / Hello, World! /; String hello, pasaule! . Galu sveiki; Hello programmas beigas

Sveika pasaule!

Sistēmas / 360 versiju, sistēmas / 370 versiju piemērs

IBM System / 360/370/390 pamata montētājs.

// Exec Assembly Sākt galveno BALR 2, 0 Izmantojot *, 2 Open Print MVC Buf, HW Put Print Aizvērt Drukāt EOJ HW DC CL132 "HELLO WORLD" BUF DS CL132 Drukāt DTFPR IOAREA1 \u003d BUF, DVADDR \u003d SYSLST, Blksize \u003d 132, * Device \u003d 3203, Control \u003d Jā, Printov \u003d Jā End Main / * // Exec Lnkedt // Exec / * / &

Sveika pasaule!

Piemērs Apple II versijām

* Sveiki pasaule 6502 Apple] [* ******************************** Strout EQU $ DB3A LDY #\u003e HELLO LDA #< HELLO JMP STROUT HELLO ASC "HELLO WORLD !", 00

Sveika pasaule!

Piemērs versiju PDP-10

Chttyo - Visa ievade / izvade tiek veikta, izmantojot I / O kanālus. Vislabāk ir padarīt simboliskus vārdus tiem kanāliem, kurus jūs izmantojat, un sākt tos ar Ch. Definējiet šos vārdus, izmantojot midas operatoru \u003d\u003d.

Zvans ir simbolisks apzīmējums, lai izsauktu sistēmas zvanu. Tās formāts: .call.

Open atveras ievades / izejas kanālu lietošanai. Nepieciešams divi parametri - kanāla numurs un ierīces nosaukums SixBit.

Lose% LSFIL ir sistēmas zvans, kas izdrukā ievades / izvades kļūdas ziņojumu, ja pēkšņi tas notika.

IoT ir sistēmas zvans, kas faktiski ir iesaistīts ievades / izejas. Kā parametrs, jums ir jānorāda kanāls un adrese, kurā ir izejas simbola kods. Piemēram, "H ir H.

Nosaukums Printhello a \u003d 1 chttyo \u003d\u003d 1; Kanālu izejai. Sākt:; Tty kanāla atvēršana. . Zvaniet [setz? Sixbit / atvērts / [. Uao, chttyo]? [Sixbit / Tty /] ((SETZ))]. Zaudēt% lsfil. IOT chttyo, ["H]; Drukāt Hello World simbolu .. IoT chttyo, [e]. Iot chttyo, ["l]. IoT chttyo, [" L]. IOT chttyo, [o]. IOT chttyo, [^ m]; jaunas līnijas simbols. IoT chttyo, [W]. IOT chttyo, [o]. IoT chttyo, [R]. IOT chttyo, ['l]. IoT chttyo, ["D]. Vērtība; Programma, apstāšanās :) beigu sākums

Fibonacci numuri:

Piemērs versijām MIPS32

Mars emulators. SECINĀJUMS MARS konsole:

Fibonacci numuri ir: 1 1 2 3 5 8 13 21 34 55 89 144 - programma ir pabeigta

Programma parāda 15 fibonacci numurus. Numuru skaitu var mainīt sadaļā.

Datu telpa: .ASCIIZ "" HEAD: .ASCIZ "Fibonacci numuri ir: \\ n" Fib: .Word 0: 15 Izmērs: .Word 15 .Text Main: LA $ T0, FIB LA $ T5, Izmērs LW $ T5, 0 ($ T5) Li $ T2, 1 Add.D $ F0, $ F2, $ F4 SW $ T2, 0 ($ t0) SW $ T2, 4 ($ T0) Addi $ T1, $ T5, - 2 cilpa: LW $ T3, 0 ($ T0) LW $ T4, 4 ($ t0) Pievieno $ T2, $ T3, $ T4 SW $ T2, 8 ($ t0) Addi $ T0, $ T0, 4 Addi $ T1, $ T1, - 1 BGTZ $ T1, Loop La $ A0, FI, FIB pārvietojiet $ A1, $ T5 Jal Drukāt Li $ V0, 10 Syscall Print: Pievienot $ T0, $ Zero, $ A0 Pievienot $ T1, $ Zero, $ A1 LA $ A0, Head Li $ V0, 4 Syscall Out: LW $ A0, 0 ($ T0) Li $ V0, 1 syscall la $ a0, kosmosa li $ v0, 4 syscall addi 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 Adiu $ T2, $ T2, 1 BEQ $ T2, 16, Endloop J Loop Endloop: Li $ V0, 10 Ssscall



Montētājs

Montētājs - zema līmeņa programmēšanas valoda. Valoda ieguva nosaukumu no Word Assembler - kolektora. Bija vēl 50. gads. kā mašīnas valodas simbolisku analogu.
Komandas montāžas komandas atbilst procesora komandām un patiesībā, ir ērts simbolisks ierakstu komandu un argumentu veids. Arī montētājs nodrošina programmas daļu saistīšanos un datus no montāžas tagiem (katrai tagam, adrese tiek aprēķināta, pēc kura katrs marķējuma ieraksts tiek aizstāts ar šo adresi).
Tā kā mikroprocesoru komandu sistēmas atšķiras, katram procesoram ir savs komandu komplekts montāžas valodā.
Ar montāžas palīdzību jūs varat uzrakstīt tādas programmas, kas ir neiespējamas, vai arī ir ļoti grūti rakstīt citās valodās. Piemēram: galvenie ģeneratori (keygen), sistēmas monitori, aprīkojuma vadītāji vai pat os.
Augsta līmeņa valodas ("C", "Pascal", "Delphi" uc) nesniedz uzticamu kontroli pār datu plūsmām, atmiņas adresēm vai procesoru reģistriem, kā arī visi no tiem tika izstrādāti saskaņā ar konkrētu veidu Operētājsistēma, montētājs var kļūt par vienu un to pašu montētāju, bet strādājot pie nezināmas zinātnes platformas un padarot programmas saskaņā ar šo platformu.
Programmas uz montāžas, atšķirībā no programmām, kas rakstītas augsta līmeņa valodās, tiek veiktas desmitiem reižu mazāk, un viņi strādā desmit reizes ātrāk. Piemērs var kalpot kā izvēlnes operētājsistēma, kas ir uzrakstīts uz plakana montētāja un ievieto vienā disketē (1,44 MB), un komplekts ietver lietojumprogrammas, piemēram: montāžas kodu redaktors ar apgaismojumu, darbu ar failu sistēmu, 3D Screensaver, dažas spēles, attēla attēla, kompilatora plakanais montētājs, termināls, CD atskaņotājs un daudz ko citu. Priekšrocība ir tā, ka to var ātri lejupielādēt no interneta (pat ar nelielu savienojuma ātrumu).
Šobrīd lielākā daļa programmatūras speciālistu attīstās augsta līmeņa valodās, piemēram, Pascal vai C, kas ir vieglāk rakstot programmas, bet visspēcīgākais un efektīvākais programmatūra Pilnībā vai daļēji uzrakstīts montāžas valodā.

Literatūra
1. Peter Abel - montētājs. Valoda un programmēšana IBM PC - M., 1999.

Montētājs

Montētājs(No angļu valodas. Montētājs - kolektors) - Assabliskajā valodā rakstītās programmas avota teksta kompilators mašīnas valodā.
Tāpat kā pati valoda, montētāji parasti ir specifiski konkrētai arhitektūrai, operētājsistēmai un valodas sintaksei versijai. Tajā pašā laikā ir multiplatform vai universāls (precīzāk, ierobežots universāls, jo zemā līmeņa valodā nevar rakstīt aparatūras neatkarīgas programmas) montierus, kas var strādāt ar dažādām platformām un operētājsistēmām. Starp pēdējiem varat arī izcelt savstarpēju montētāju grupu, kas spēj vākt mašīnas kodu un izpildāmos moduļus (failus) citām arhitektūrām un OS.
Asambleja var nebūt pirmais un nav pēdējais solis ceļā, lai iegūtu programmas izpildvaras moduli. Tādējādi daudzi kompilatori no augsta līmeņa programmēšanas valodām sniedz rezultātu formā programmas montāžas valodā, kas montētājs procesus nākotnē. Arī iegūtā montāža var nebūt izpildīts, un objekta modulis, kurā ir izkliedēti mašīnas koda un programmas datu bloki, no kuriem (vai vairāki objektu moduļi) nākotnē, izmantojot Link redaktoru, var iegūt ar izpildāmu failu.
Īpašas atmiņas šūnas atrodas tieši procesorā. Darbs ar reģistriem tiek veikta daudz ātrāk nekā ar RAM šūnām, tāpēc reģistri tiek aktīvi izmantoti gan montāžas valodā, gan augsta līmeņa valodu kompilatoros.
Reģistru vārdi nāk no to mērķa:

Eax / ax / ah / al (akumulatora reģistrs) - akumulators;
EBX / BX / BH / BL (bāzes reģistrs) -register datu bāze;
ECX / CX / CH / CL (pretendenti) - skaitītājs;
EDX / DX / DH / DL (datu reģistrs) - datu reģistrs;
ESI / SI (avota indeksa reģistrs) - avota indekss;
EDI / DI (galamērķa indeksa reģistrs) - uztvērēja indekss (saņēmējs);
ESP / SP (Stack Point Register) - Stack Point Register;
EBP / BP (bāzes rādītāja reģistrs) - Stack rāmja rādītājs.

Rindu apstrādes komandas
Lai strādātu ar rindām vai simbolu vai skaitļu ķēdēm (I.E., vienkārši runājot, ar patvaļīgu datu klāstu) MP ir vairākas īpašas komandas:
movs - sūtīšanas stīgas;
cmps - divu līniju salīdzinājums;
jūras - meklēt konkrētā elementa virknē;
lOD - akumulatora iekraušana (AR vai AH reģistri) no līnijas;
sTOS - ieraksta elements virknes no akumulatora (reģistri ah vai al).

Cieņa

· Montāžas valoda ļauj jums uzrakstīt ātrāko un kompakto kodu, kas parasti ir iespējams šim procesoram.
· Operācijas ātrums - optimizējot skaitļošanas algoritmu un / vai racionālu piekļuvi RAM (piemēram, ja visi avoti dati tiek saglabāti procesora reģistros, jūs varat izslēgt nevajadzīgu piekļuvi OP), datu pārdalei, galda skaitļošanas funkcijām ;
· Kodu apjoms (ieskaitot efektīvu izmantošanu starpposma rezultāti). Kodu apjoma samazinājums bieži palielina programmas izpildes ātrumu.
· Nodrošināt konkrētas platformas īpašo spēju maksimālu izmantošanu, kas arī ļauj izveidot efektīvākas programmas, tostarp mazāk resursu intensīvu.
· Programmēšana montāžas valodā ir iespējama tieša piekļuve iekārtai, un jo īpaši I / O ostas, procesoru reģistri utt. Daudzās operētājsistēmās tiešs kontakts no pieteikumu programmām reģistriem reģistrē reģistrus perifērijas iekārtas Bloķēts sistēmas uzticamībai un izņēmumiem "sasalst".
· Montētājs valodu bieži izmanto, lai izveidotu aparatūras draiverus un operētājsistēmas kodolus, kad ir svarīgs pagaidu darba līgums. perifērijas ierīces no centrālais procesors.
· Montāžas valoda tiek izmantota, lai izveidotu "BIOS programmaparatūru".
· Ar montāžas valodas palīdzību bieži tiek izveidotas mašīnas atkarīgās apakšprogrammas un augsta līmeņa tulki, un tiek īstenota platformu saderība.
· Ar SyaSsembler programmas palīdzību jūs varat izprast pētījuma programmas darbības algoritmus, ja nav iekļāvis augsta līmeņa valodu, pētot tikai mašīnas kodus, bet sarežģītās netraucējumos tas ir ļoti, ļoti darbietilpīgs.

trūkumi
· Saskaņā ar mašīnas orientāciju ("zems" līmenis) no montāžas valodas, persona ir grūtāk lasīt un saprast programmu par to, salīdzinot ar augsta līmeņa programmēšanas valodām; Programma sastāv no pārāk "maziem" elementiem - mašīnu komandas, attiecīgi, programmēšana un atkļūdošana ir sarežģīta, sarežģītība un kļūdu veidošanas iespējamība pieaug.
· Lai iegūtu kvalitatīvu kodu, ir nepieciešama paaugstināta programmētāja kvalifikācija: vidējā programmētāja rakstītais kods montāžas valodā parasti nav labāka vai pat sliktāka par kodu, ko veido optimizācijas kompilators salīdzināmām programmām, kas rakstītas augstā līmenī.
· Augsta līmeņa programmu var atjaunot ar automātisku optimizāciju jaunās mērķa platformas iezīmēm, programma montētājs valodā jaunajā platformā var zaudēt savu priekšrocību ar ātrumu bez manuālā pārrakstīšanas kodu.
· Kā likums, mazāk bibliotēku, salīdzinot ar mūsdienu rūpniecības programmēšanas valodām.
· Datoros nav pārnesamības ar citu arhitektūras un komandu sistēmu.

Saderība
Programmu, kas paredzēta vienam montētāja tipam, nevar apkopot citā bez radikālas pārveidošanas vai automātiskās konvertēšanas! Bet pat starp "to" tipa montāžām ir partija, daiļūšana un daudzas atšķirības: in atslēgvārdi, saraksta dizaina noteikumos piegādātajās bibliotēkās un galvenes failos utt. Ja tikai saderība nav skaidri, ir nepieciešams pārraidīt programmu ar tādu pašu kā montētāju, kuram tas ir paredzēts. Pretējā gadījumā gatavojieties izmaiņām (tas ir, lai pieņemšanai). Atšķirības bieži izpaužas visnegaidītākajās vietās. Daži montētāji saprot, ka "MOV EX, X" ir tāds pats kā "MOV EAX, [X]", daži - nē. Viņi paklūst un izdod kļūdu. Bet nekas cits! Daudz sliktāk, kad tulkotājs klusi interpretē šo dizainu kā "mov eax, kompensēt x", kas nav tieši tas pats! Tātad, nododot programmu, jums jābūt ļoti un ļoti uzmanīgiem.

Operētājsistēmu saderība. MS-DOS orientētas programmas bez ne tikai nav pārvietojamas, bet arī nepanesamību. Par tiem ir raksturīgs tieša mijiedarbība Ar aprīkojumu, kas pieejama NT tikai no kodolenerģijas līmeņa, nemaz nerunājot, ka 16 bitu kodu sauc no 32 bitu lietojumiem tikai caur DPMI, un pēc tam ne bez truscēcības.

Tādējādi pirms montāžas programmas pārraidīšanas ir jānosaka, kurš tulkotājs un operētājsistēma ir paredzēta! Ar montētāja fragmentiem, kas nozvejotas no "dzimtā" konteksta, ir vēl sliktāk. Pieņemsim, ka dažos rakstos ir aprakstīta interesanta anti-cilpas uztveršana, un tiek dota montāžas kods, bet kā to iegult to savā programmā - nenorāda. Pazīstama situācija, vai ne? Tieša pārraide nav iespējama - tulkotājs ir mežonīgi skaldāms, bet nekas saka.

Mīkla montāža

Sagatavots teksts ir avota dati īpašām programmām, ko sauc par montētājiem. Montāžas uzdevums ir pārvērst programmas tekstu bināro komandu veidā, ko var veikt mikroprocesors. Ja tiek konstatētas sintakses kļūdas, rezultāts netiks izveidots. Izpildāmā faila izveides process notiek divos posmos:

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

Pirmajā posmā (.asm -\u003e .obj) no montāžas faila, apkopojot, tiek iegūti starpposma objektu koda faili, kuros ir paplašinājuma paplašinājums (var izmantot papildu Inc failus). Fails ar paplašinājumu.Obj satur optimizētu mašīnu kodu, ja sintaktiskās un semantiskās kļūdas nav izpildītas. Ja avota failā tiek konstatētas kļūdas ar montāžas valodu, programmētājs nodrošina konstatēto kļūdu sarakstu, kurās kļūdas ir norādītas ar līnijas numuru, kurā tie tiek konstatēti. Programmētājs cikliski veic rediģēšanas un apkopošanas darbības, līdz visas kļūdas tiek izvadītas avota failā. Šajā posmā jau ir iespējams iegūt gatavu programmu, bet visbiežāk tam trūkst dažu sastāvdaļu. Ja kompilators jebkāda iemesla dēļ (nepareizi reģistrēts ceļš uz šādu failu vai failu, nevar atrast Inc failu, tad tiek izsniegts brīdinājums, un tiek saņemts OBJ fails.

Asambleja kā noteikums notiek divās pieņemšanā. Pirmajā caurlaide, mnemonijas komandas, iknedēļas numuri un simboli atbilstošajos mašīnu kodos tiek tulkoti, aprēķina, cik lielā mērā komandu aizņem atrašanās vieta, atklātie vārdi, ko ievadījis lietotājs (konstantes, tagi, mainīgie) to veids un skaitliskā vērtība ir rakstīts uz galda. Tajā pašā tabulā tas tiek reģistrēts, no kuras attiecas uz procedūrām, etiķešu adrese, segmentu sākuma / beigu adreses ir aizvietotas, procedūru sākuma adreses ir aizvietotas ar otro pāreju , etiķešu nosaukumi tiek aizstāti.

Asamblejas rezultātā tiek iegūts tā sauktais "objekta fails". Kā papildu funkciju, montētājs var izveidot programmu saraksta failu.

Parasti, lai iegūtu objektu kodu failus, jums ir jāveic atbilstoša montētājs programma (Microsoft Ml.exe un TASM.EXE programmas uzņēmuma Borland), norādot komandrinda Faila nosaukums ar programmas tekstu.

Šis izaicinājums ir minimāli nepieciešams. Izņemot nosaukumu teksta failsJums jānorāda opcijas montāžai. Šo programmu dokumentācijā būtu jāmeklē vairāk informācijas par montāžas programmas iespējām.

Izkārtojuma programma

Nākamais posms (.obj -\u003e .exe / .dll / .com) sauc par saikni vai izkārtojumu un kalpo, lai aizstātu rakstzīmju nosaukumus, ko programmētājs izmanto reālām adresēm.

Salīdziniet heksadecimālo saturu OBJ un Exe failskas jums ir. EXE failam ir tāda pati baitu secība kā OBJ failā. Bet, izņemot to, joprojām ir klāt: samontētā faila nosaukums, montētāja versija, "pašu" segments, un tā tālāk.

Šī "pakalpojuma" informācija, kas paredzēta šiem gadījumiem, kad jūsu izpildāms fails vēlaties savākt no vairākiem. Attīstot lielas lietojumprogrammas Avota teksts parasti sastāv no vairākiem moduļiem (faili ar avota tekstiem), jo tas ir neērti uzglabāt visus tekstus vienā failā - tie ir grūti orientēties.

Katrs modulis ir apkopots atsevišķā failā ar objekta kodu. Katrs no šiem failiem ir parakstīti to koda / datu / kaudze segmentos, kas pēc tam ir jāapvieno vienā. Un izpildāmā faila mums ir nepieciešams, lai iegūtu tikai vienu - ar vienu kodu / datu / kaudzes segmentu. Tā ir šī saite un vai: pabeidz adreses saites un apvieno definīciju, ja tas ir nepieciešams, vairāki programmatūras moduļi vienā. Un tas viens ar mums tiek veikta.

Turklāt ir nepieciešams pievienot mašīnas kodu mūsu moduļiem, kas īsteno dažādas standarta funkcijas (piemēram, grēka vai ln matemātisko funkciju aprēķināšana). Šādas funkcijas ir iekļautas bibliotēkās (faili ar standarta paplašinājumu. Lib), kas ir vai nu komplektā ar kompilatoru, vai arī tiek izveidotas neatkarīgi. Tāpēc sagatavošanas process obligāti ietver izkārtojuma stadiju, kad visi nezināmie ir definēti, kad tiek noteikta sabrukušo mainīgo vai funkciju adrese.

Priekšmeta moduļu apvienošanas procesu vienu failu veic ar īpašu Linker programmu vai kolektoru (Link.exe programma Microsoft un Tlink.exe Company Borland), kas veic saistīšanos objektu moduļiem un mašīnas kodu standarta funkciju, atrast tos bibliotēkās un ģenerē praktisko lietojumprogrammu ir izpildāms kods konkrētai platformai.

Izpildāmā koda ir pilnīga programma ar COM, DLL vai EXE paplašinājumu, ko var darboties datorā ar instalētu operētājsistēmu, kurai šī programma tika izveidota. Izpildāmā faila nosaukumu noteiks pirmais .obj fails. Lai savienotu, jums ir nepieciešams, lai izsauktu komandu uzvedni:

lINK PROG1.OBJ PROG2.OBJ vai TLINK PROG1.OBJ PROG2.OBJ

Objekta faila saturu analizē saikne. Tas nosaka, vai ir programma arejas saitesTas ir, vai programmas zvanu komandu programma satur vienā no objekta moduļa bibliotēkām (saite bibliotēka). Linker atrod šīs saites objekta failā, kopē nepieciešamās procedūras no bibliotēkām, apvieno tos ar objekta failu un izveido izpildāmu failu (izpildāmā fails). Kā papildus iespējas Linker var izveidot savstarpējas saites failu, kurā ir saņēma izpildāmā faila plāns.

Izmantotie avoti
1. https://ru.wikipedia.org/
2. http://natalia.appmat.ru/
3. http://www.codenet.ru/
4. http://wasm.ru/
5. Norton P., Sekske D. Montētājs IBM PC. M.: Dators, 1992.

1. Kad un kurš tika izgudrots skaitīšanas perforācijas mašīnas? Kādi uzdevumi tika atrisināti uz tiem?

2. Kas ir elektromehāniskais relejs? Kad tika izveidotas releju skaitļošanas mašīnas? Kāds ātrums viņiem bija?
3. Kur un kad tika uzcelta pirmā datora? Ko tas sauca?
4. Kāda ir John fon Neuman loma datora veidošanā?
5. Kas bija dizainers pirmā vietējā datora?
6. par to, kas elementu bāze Izveidotas pirmās paaudzes mašīnas? Kādas bija viņu galvenās īpašības?
7. Kurā elementārā datu bāze radīja otrās paaudzes mašīnas? Kādas ir viņu priekšrocības salīdzinājumā ar pirmās paaudzes datoru?
8. Kas ir integrēta shēma? Kad bija pirmie datori integrālajās shēmās? Ko viņi sauca?
9. Kādas ir jaunās datora piemērošanas jomas radās ar trešās paaudzes mašīnu izskatu?
10. Kas ir mikroprocesors? Kad un kur tika izveidots pirmais mikroprocesors?
11. Kas ir Microevm un personālais dators?
12. Kādi datori ir visizplatītākie pasaulē?
13. Kas ir superdatoru?
14. Kas ir kopu PC sistēmas?
15. Kāda ir piekto paaudzes datoru iezīme?

Nosaukiet pirmo skaitļošanas ierīci. Abakas kalkulators aritmometrs Krievijas rādītājus, kuru ideja tiek izvirzīta vidū

19. gadsimta angļu matemātiķis Charles Babbage?

Ideja izveidot programmatūras pārvaldību skaitīšanas iekārtaaritmētisko ierīci, vadības ierīci, kā arī ievades un drukas ierīci

Ideja radīt mobilais telefons

Ideja izveidot robotus pārvalda ar datoru

Kādu gadu un kur bija pirmais dators, pamatojoties uz elektroniskajām lampām?

1945, ASV

1944, Anglija

1946, Francija

Kāds pamats tika izveidots trešās paaudzes datori?

Integrētās shēmas

pusvadītāji

elektroniskās lampas

superbound integrālās shēmas

Kāds bija pirmā personālā datora nosaukums?

Nosauciet datora centrālo ierīci.

Procesors

Sistēmas bloks

Enerģijas padeve

Mātesplate

Procesors apstrādā iesniegto informāciju:

Iebildums decimālā sistēma Piezīme

Angliski

Krieviski

Dzinēja valodā (binārajā kodā)

Lai ievadītu ciparu un teksta informāciju

Tastatūra

Skeneris tiek izmantots ...

Lai ievadītu attēlu un teksta dokumentu attēlus

Lai to izmantotu īpašu rokturi

Kursora pārvietošana uz monitora ekrāna

Hologrāfiskie attēli

10. Kāda veida printeri ir ieteicams izmantot finanšu dokumentus drukāšanai?

Matricas printeris

Jet printeris

Lāzera printeris

Kāda veida printeris ir ieteicams izmantot, lai drukātu esejas?

Matricas printeris

Jet printeris

Lāzera printeris

Kāda veida printeris ir ieteicams izmantot fotoattēlus drukāšanai?

Matricas printeris

Jet printeris

Lāzera printeris

Ar neatbilstību sanitāro un higiēnas prasībām datora, kaitīgo ietekmi uz cilvēku veselību var nodrošināt ...

Uzraudzīt elektronisko radiācijas cauruli

Uzraudzīt šķidro kristālu

Plazmas paneļi

Kad dators ir izslēgts, visa informācija tiek izdzēsta no ...

Brīvpiekļuves atmiņa

Cietais disks

Lāzera disks

Kurā datorā tiek saglabāts datorā?

Ārējā atmiņa;

pROCESORS;

Optiskās dziesmas ir mazāks biezums un ievietots ciešāk ...

Digitālais video dzinējs (DVD disks)

Kompakts disks (CD - disks)

Ievades ierīces ievadiet ...

Izejas ierīce ietver ...

Tastatūra, pele, kursorsvira, gaismas spalvu, skeneris, digitālā kameraMikrofons

Skaņas kolonnas, monitors, printeris, austiņas

Hdd, procesors, atmiņas moduļi, mātesplatediskete

Programmu sauc par ...

Datorprogramma Var pārvaldīt datora darbu, ja tas ir ...

Ram

Uz elastīga diska

Uz cietā diska

Uz CD - diska

Dati ir ...

Komandu secība, ko veic datu apstrādes laikā

Informācija, kas iesniegta digitālā formā un apstrādāti datorā

Dati, kam ir nosaukums un saglabāts ilgtermiņa atmiņā

Fails ir ...

Teksts uzdrukāts datorā

Informācija, kas iesniegta digitālā formā un apstrādāti datorā

Programma vai dati, kam ir vārds un saglabāts ilgtermiņa atmiņā

Ar strauju elastīga diska formatējumu ...

Notīriet disku direktoriju

Visi dati tiek dzēsti

Disku defragmentēšana tiek veikta

Disku virsmas pārbaude

Ar pilnu elastīga diska formatējumu ...

visi dati tiek dzēsti

tiek veikta pilnīga diska pārbaude.

notīriet disku direktoriju

disks kļūst sistēmisks

Daudzlīmeņu hierarhiskā failu sistēmā ...

Faili tiek glabāti ligzdotu mapju sistēmā.

Faili tiek glabāti sistēmā, kas ir lineāra secība

Datortehnikas izstrādes vēsture:

1. Nosauciet pirmo skaitļošanas ierīce.
1) Abak
2) Kalkulators
3) Aritmometrs
4) Krievijas rādītāji

2. Kāda ideja tika izvirzīta 19. gadsimta vidū angļu valodā matemātiķu Charles Babbage?
1) ideja izveidot programmatūras kontrolētu skaitāmo mašīnu ar aritmētisko ierīci, vadības ierīci, kā arī ievades un drukas ierīci
2) ideja izveidot mobilo tālruni
3) ideja izveidot robotus pārvalda ar datoru
3. Nosauciet pirmās programmētāju skaitļošanas mašīnas.
1) Hell Lavley
2) Sergejs Lebedevs
3) Bill Gates
4) Sophia Kovalevskaya

4. Kurā gadā un kur bija pirmais dators, pamatojoties uz elektroniskajām lampām?
1) 1945, ASV
2) 1950, PSRS
3) 1944, Anglija
4) 1946, Francija

5. Kāds pamats tika izveidots trešās paaudzes dators?
1) integrālās shēmas
2) pusvadītāji
3) Elektroniskās lampas
4) Super-augstas integrētas shēmas

6. Kāds bija pirmais personālais dators?
1) Apple II
2) IBM PC
3) Dell.
4) Corvette
Datoru ierīce ......................... 15
1. Nosauciet datora centrālo ierīci.
1) procesors
2) sistēmas bloks
3) barošanas avots
4) mātesplate
2. Kā ir fiziska informācija datorā ierakstīta un pārraidīta?
1) skaitļi;
2) izmantojot programmas;
3) parādās elektrisko signālu veidā.

3. Procesors apstrādā iesniegto informāciju:
1) decimālskaitļa sistēmā
2) angļu valodā
3) krievu valodā
4) uz mašīnas (binārā kodā)
4. Lai ievadītu ciparu un teksta informāciju
1) tastatūra
2) pele
3) Trekball
4) Rokturis
5. Vissvarīgākais īpašības Koordinātu ievades ierīces ir izšķirtspēja, kas parasti ir 500 dpi (punkts par collu - punkti collā (1 collu \u003d 2,54 cm)), kas nozīmē ...
1) Pārvietojot peli uz vienu collu, peles rādītājs pārvietojas pa 500 punktiem
2) pārvietojot peli par 500 punktiem, peles rādītājs pārvietojas vienu collu
6. Skeneris tiek izmantots ...
1) Lai ievadītu attēlus un teksta dokumentus
2) Lai to izmantotu īpašu rokturi
3) Kursora pārvietošana uz monitora ekrāna
4) Hologrāfisko attēlu iegūšana
Informācijas izejas ierīces ................. 21
1. Kāda veida printeri ir lietderīgi izmantot finanšu dokumentus drukāšanai?
1) matricas printeris
2) tintes printeris
3) lāzera printeris
2. Kāda veida printeris ir ieteicams izmantot, lai drukātu kopsavilkumus?
1) matricas printeris
2) tintes printeris
3) lāzera printeris

1. Kāda veida printeri ir ieteicams izmantot fotoattēlus drukāšanai?
1) matricas printeris
2) tintes printeris
3) lāzera printeris
2. Ja datora sanitārās un higiēnas prasības netiek ievērotas, var nodrošināt kaitīgo ietekmi uz cilvēku veselību ...
1) Uzraudzīt elektronisko radiācijas cauruli
2) Uzraudzīt šķidros kristālus
4) Plazmas paneļi
3. Ierīce, kas nodrošina ierakstu un lasot informāciju, sauc ...
1) braukt vai vadīt

4. Kad dators ir izslēgts, visa informācija tiek dzēsta no ...
4) RAM
5) cietais disks
6) lāzera disks
7) diētas
13. Kurā datorā tiek glabāta informācijai?
1) ārējā atmiņa;
2) monitors;
3) procesors;
2. Optiskās dziesmas ir mazāks biezums un ir cieši ieslēgts ...
1) digitālais video dzinējs (DVD disks)
2) kompakts disks (CD - disks)
3) Diskette
3. Kurā diska informācija tiek glabāta uz koncentriskiem ceļiem, uz kurām magnetizētie un non-vitkrati
1) Disketē
2) uz kompaktdiska
3) DVD diskam

4. Ievades ierīcēs iekļautas ...

1) cietais disks, procesors, atmiņas moduļi, mātesplate, diskete
5. Izejas ierīcē iekļauti ...
1) tastatūra, pele, kursorsvira, gaismas spalvu, skeneris, digitālā kamera, mikrofons
2) skaņas kolonnas, monitors, printeris, austiņas
3) cietais disks, procesors, atmiņas moduļi, mātesplates, disketes disks
6. Programmu sauc par ...

7. Datorprogramma var pārvaldīt datora darbu, ja tas ir ...
1) RAM
2) uz elastīga diska
3) cietajā diskā
4) uz CD - diska
8. Dati ir ...
1) komandu secība, ko dators veic datu apstrādes procesa laikā
2) informācija, kas iesniegta digitālā formā un apstrādāti datorā
3) dati, kuriem ir vārds un uzglabāts ilgtermiņa atmiņā
9. Fails ir ...
1) Datorā uzdrukāts teksts
2) informācija, kas iesniegta digitālā formā un apstrādāti datorā
3) programma vai dati, kuros ir vārds un uzglabāts ilgtermiņa atmiņā

10. Ar strauju formatējumu elastīgā diska ...
1) Notīriet diska direktoriju.
2) Visi dati tiek izdzēsti
3) diska defragmentācija
4) Pārbaudiet


Lai sāktu ar, mēs saprotam terminoloģiju.

Mašīnas kods - konkrētas skaitļošanas mašīnas (procesora) komandu sistēma, kas tiek interpretēta tieši uz procesoru. Komanda, kā likums, ir vesels skaitlis, kas ir rakstīts uz procesora reģistrā. Procesors lasa šo numuru un veic darbību, kas atbilst šai komandai. Populāri tas ir aprakstīts grāmatā, kā kļūt par programmētāju.

Zema līmeņa programmēšanas valoda (Zema līmeņa programmēšanas valoda) ir programmēšanas valoda, cik vien iespējams tuvu programmēšanai mašīnas kodos. Atšķirībā no mašīnas kodiem, zemā līmeņa valodā, katra komanda atbilst ne-skaitam, bet saīsinātais komandas nosaukums (mnemonic). Piemēram, pievienošanas komanda ir samazinājums no vārda pievienošanas. Tāpēc zemas līmeņa valodas izmantošana būtiski vienkāršos rakstīšanas un lasīšanas programmas (salīdzinot ar programmēšanu mašīnas kodos). Zema līmeņa valoda ir saistīta ar konkrētu procesoru. Piemēram, ja jūs uzrakstījāt programmu zema līmeņa valodā PIC procesoru, jūs varat būt pārliecināti, ka tas nedarbosies ar AVR procesoru.

Augsta līmeņa programmēšanas valoda - Tā ir programmēšanas valoda, cik vien iespējams tuvu cilvēka valodā (parasti angļu valodā, bet ir programmēšanas valodas nacionālajās valodās, piemēram, valoda 1C atrodas krievu valodā). Augsta līmeņa valoda praktiski nav saistīta ar konkrētu procesoru vai operētājsistēmu (ja netiek izmantotas īpašas direktīvas).

Montāžas valoda - Šī ir zema līmeņa programmēšanas valoda, kurā jūs rakstāt savas programmas. Katram procesoram ir sava montāžas valoda.

Montētājs - Šī ir īpaša programma, kas konvertē (apkopo) jūsu programmas avota tekstus, kas rakstīts montāžas valodā izpildāmā failā (fails ar EXE vai COM pagarinājumu). Lai būtu precīzi, tad ir nepieciešamas papildu programmas, lai izveidotu izpildāmo failu, nevis tikai montētājs. Bet par to vēlāk ...

Vairumā gadījumu montētājs saka, un nozīmē "montētāja valodu". Tagad jūs zināt, ka tās ir dažādas lietas, un tā saka, ka nav gluži labi. Lai gan visi programmētāji jūs sapratīs.

SVARĪGS!
Atšķirībā no augsta līmeņa valodām, piemēram, Pascal, BEYSIK, utt, ir sava montāžas valoda katram montētājam. Šis noteikums ir radikāli atšķirīgs ar montāžas valodu no augsta līmeņa valodām. Programmas avota teksti (vai vienkārši "avoti"), kas rakstīti augsta līmeņa valodā, jūs vairumā gadījumu var apkopot dažādus kompilatorus dažādiem procesoriem un dažādām operētājsistēmām. Ar montētājs avotiem darīt to daudz grūtāk. Protams, šī atšķirība ir gandrīz nav taustāma dažādiem montētājiem, kas paredzēti tiem pašiem procesoriem. Bet fakts ir tas, ka katram procesoram ir savs montētājs un tās montāžas valoda. Šajā ziņā ir daudz vieglāk programmēt augsta līmeņa valodās. Tomēr visi prieki jāmaksā. Augsta līmeņa valodu gadījumā mēs varam sastapties ar tādām lietām kā lielāks izpildāms fails, sliktākais ātrums utt.


Šajā grāmatā mēs runāsim tikai par programmēšanu datoriem ar Intel procesoriem (vai saderīgiem). Lai praksē pārbaudītu grāmatā norādītos piemērus, jums būs nepieciešamas šādas programmas (vai vismaz dažas no tām):

  1. . Laba programmaīpaši iesācējiem. Ietver avota redaktoru un dažas citas noderīgas lietas. Darbojas sistēmā Windows, lai gan programmas ir rakstītas sadaļā DOS. Diemžēl programma maksā naudu (bet tas ir tā vērts)))). Plašāku informāciju skatiet vietnē http://www.emu8086.com.
  2. - Turbo montētājs no Borland. Varat izveidot programmas gan DOS, gan Windows. Tāpat vērts naudu, un brīdī vairs netiek atbalstīta (un borland neeksistē). Kopumā lieta ir laba.
  3. - Montētājs no Microsoft (atšifrēts kā makro montētājs, nevis Microsoft Assembler, jo daudzi neiespējami) domā. Iespējams, populārākais montētājs Intel procesoriem. Līdz šim atbalstīts. Nosacīti bezmaksas programma. Tas ir, ja jūs to iegādāties atsevišķi, tas maksās naudu. Bet tas ir pieejams bezmaksas MSDN abonentiem un ievada vizuālo studijas programmatūras paketi no Microsoft.
  4. - montētājs no watcom. Tāpat kā visi pārējie, ir priekšrocības un trūkumi.
  5. - Tā ir pieticīgas iespējas, bet ir liels plus - ievada standarta Windows komplektu. Meklējiet to Windows komandu vai Windows System32 mapē. Ja jūs neatrodat, tad citās Windows kataloga mapēs.
  6. Tas ir arī vēlams, lai būtu kāds. Izvešanās filmu pārvaldnieks, piemēram, vilku komandieris (VC) vai Norton komandieris (NC), neliedz. Ar savu palīdzību jūs varat redzēt arī heksadecimal failu kodus, bet to nevar rediģēt. Bezmaksas heksadecimālie redaktori internetā ir diezgan daudz. Šeit ir viens no tiem: McAfee Fileinsight V2.1. To pašu redaktoru var izmantot, lai strādātu ar programmu avota tekstiem. Tomēr man patīk vairāk to darīt ar šādu redaktoru:
  7. Teksta redaktors. Mēs esam ieinteresēti rakstīt jūsu programmu avota tekstus. Es varu ieteikt bezmaksas redaktors PSPAD, kas atbalsta daudzas programmēšanas valodas, ieskaitot montētāja valodu.
Visas šajā grāmatā (un programmu piemēros) iesniegtās programmas tiek pārbaudītas veiktspējai. Un tā ir šīs programmas, kas tiek izmantotas, lai īstenotu piemērus, kas sniegti šajā grāmatā.

Un tomēr - pirmkods, kas rakstīts, piemēram, EMU8086, būs nedaudz atšķirīgs no koda, kas rakstīts, piemēram, TASM. Šīs atšķirības tiks noteiktas.

Lielākā daļa grāmatā norādītās programmas ir rakstītas. Pirmkārt, tāpēc, ka šis asambleris ir populārākais un joprojām atbalstīts. Otrkārt, jo tas nāk ar MSDN un ar Microsoft Visual Studio programmatūras paketi. Nu, trešajā vietā, jo es esmu laimīgs īpašnieks licencētas kopijas MASM.

Ja jums jau ir kāds montētājs, kas nav iekļauts iepriekš uzskaitītajā sarakstā, jums būs patstāvīgi tikt galā ar sintaksi un lasīt lietotāja rokasgrāmatu, lai uzzinātu, kā strādāt ar to. Taču vispārējie ieteikumi šajā grāmatā būs godīgi jebkuram (labi vai gandrīz jebkuram) montāžai.

Lai mašīna veiktu personas komandas aparatūras līmenī, ir nepieciešams norādīt noteiktu secību darbībām valodā "Nolikova un vienības". Šā uzņēmuma palīgs būs asistents. Tā ir lietderība, kas darbojas ar komandu nodošanu mašīnas valodai. Tomēr programmas rakstīšana ir ļoti laikietilpīgs un sarežģīts process. Šī valoda nav paredzēta, lai radītu plaušas un vienkāršas darbības. Šobrīd jebkura programmēšanas valoda tiek izmantota (montētājs darbojas labi) ļauj jums rakstīt īpašus efektīvus uzdevumus, kas stipri ietekmē ekspluatāciju aparatūru. Galvenais mērķis ir izveidot mikrokomunu un mazus kodus. Šī valoda dod vairāk iespēju nekā, piemēram, Pascal vai C.

Īss montāžas valodu apraksts

Visas programmēšanas valodas ir sadalītas no līmeņiem: zems un augsts. Jebkura no montāžas "ģimenes" sintaktiskās sistēmas ir atšķirīgas, jo tā vien apvieno dažas visizplatītākās un modernākās valodas priekšrocības. Ar citiem, viņu radiniekiem un to, ka datoru sistēmu var pilnībā izmantot.

Kompilatora atšķirīga iezīme ir vienkāršība. Tas atšķiras no tiem, kas darbojas tikai ar augstu līmeni. Ja ņemat vērā jebkuru šādu programmēšanas valodu, montētājs darbojas divreiz ātrāk un labāk. Lai rakstītu gaismas programmu tajā, pārāk daudz laika nebūs nepieciešams.

Īsi par valodas struktūru

Ja mēs runājam kopumā par darba funkcionēšanas darbu un struktūru, jūs varat teikt, ka tās komandas pilnībā atbilst procesora komandām. Tas ir, montētājs izmanto mnemokodes, ērtāko personu ierakstīt.

Atšķirībā no citām programmēšanas valodām, montētājs izmanto noteiktus tagus, lai ierakstītu atmiņas šūnas, nevis adreses. Tie tiek tulkoti tā sauktajās direktīvās. Tās ir relatīvas adreses, kas neietekmē procesora darbību (nav tulkots mašīnas valodā), un tas ir nepieciešams, lai atpazītu pašu plānošanas vidi.

Katrai procesora līnijai ir savs ar šo situāciju pareizā būs jebkurš process, tostarp tulkots

Montētājs valodā ir vairāki sintaksi, kas tiks apspriesti rakstā.

Valodas plusi

Svarīgākais un ērtākais pielāgojums montāžas valodas būs, ka ir iespējams uzrakstīt jebkuru programmu procesoram, kas būs ļoti kompakts. Ja kods izrādās milzīgs, tad daži procesi novirza uz ram. Tajā pašā laikā viņi dara visu ātri un bez neveiksmēm, ja vien, protams, tie kontrolē kvalificētu programmētāju.

Draiveri, operētājsistēmas, BIOS, kompilatori, tulki utt. - Šī ir visa programma montāžas valodā.

Lietojot disassembler, kas padara tulkojumu no mašīnas vienā, ir iespējams viegli saprast, kā viens vai otrs sistēmas uzdevums darbojas, pat ja nav skaidrojumu. Tomēr tas ir iespējams tikai tad, ja programmas ir gaismas. Diemžēl neērču kodos, tas ir diezgan grūti saprast.

Mīnusi valodas

Diemžēl iesācēju programmētāji (un bieži profesionāļi) ir grūti izjaukt valodu. Nepieciešams montētājs detalizēts apraksts Nepieciešamo komandu. Sakarā ar to, ka jums ir nepieciešams izmantot mašīnas komandas, kļūdainu darbību iespējamību un izpildes sarežģītību pieaug.

Lai rakstītu pat visvairāk vienkārša programmaProgrammētājam ir jābūt kvalificētam, un tās līmenis zināšanu ir diezgan augsts. Vidējais speciālists, diemžēl, bieži raksta slikti kodi.

Ja ir atjaunināta programma, kurā ir izveidota programma, tad visas komandas ir kopētas manuāli - tas prasa pati valodu. Montētājs neatbalsta procesu darbības automātiskās regulēšanas funkciju un aizstāt visus elementus.

Valodas komandas

Kā jau minēts iepriekš, katram procesoram ir savs komandu komplekts. Vienkāršākie elementi, kurus atzīst jebkādos tipos, ir šādi kodi:


Direktīvu izmantošana

Mikrokontrolleru programmēšana valodā (montētājs Tas ļauj un pilnīgi cirpt ar funkcionēšanu) zemāko līmeni vairumā gadījumu tas ir veiksmīgi beidzas. Vislabāk ir izmantot procesorus ar ierobežotu resursu. 32 bitu aprīkojumam Šī valoda Lieliski piemērots. Bieži vien kodos jūs varat redzēt direktīvas. Kas tas ir? Un kas tiek izmantots?

Vispirms ir jāuzsver fakts, ka direktīvas netiek nodotas mašīnas valodai. Viņi regulē kompilatora veiktspēju. Atšķirībā no komandām, šiem parametriem, kam dažādas funkcijasAtšķiras, pateicoties dažādiem procesoriem, bet uz citu tulkotāja rēķina. Starp galvenajām direktīvām var piešķirt šādi: \\ t


Nosaukuma izcelsme

Valodas nosaukuma dēļ - "montētājs"? Mēs runājam par tulkotāju un kompilatoru, kas arī ražo datu šifrēšanu. No angļu montāžas nozīmē neko citu kā kolektoru. Programma netika savākta manuāli, tika izmantota automātiska struktūra. Turklāt šobrīd lietotāji un speciālisti ir izdzēsti starpību starp noteikumiem. Bieži vien montētājs zvanu programmēšanas valodas, lai gan tas ir tikai lietderība.

Sakarā ar vispārpieņemto savākšanas nosaukumu, daži ir kļūdaini risinājumus, ka ir viena zema līmeņa valoda (vai standarta normas par to). Lai programmētājs saprastu, kāda struktūra ir aptuveni, ir nepieciešams norādīt, kura platforma ir viena vai cita montāžas valoda.

Makrofs

Montāžas valodas, kas tiek radītas salīdzinoši nesen, ir makrozes. Tie atvieglo programmas pareizrakstību un izpildi. Pateicoties viņu klātbūtnei, tulkotājs izpilda rakstisko kodu reizēm ātrāk. Veidojot nosacītu izvēli, jūs varat uzrakstīt milzīgu komandu bloku, un tas ir vieglāk izmantot makro. Viņi ātri pārslēdzos starp darbībām, ja stāvoklis vai neizpilde ir izpilde.

Izmantojot makrorvalodu direktīvas, programmētājs saņem montētāja makro. Dažreiz to var plaši izmantot, un dažreiz tās funkcionālās funkcijas tiek samazinātas uz vienu komandu. Viņu klātbūtne kodā atvieglo darbu ar to, padara to saprotamāku un vizuālu. Tomēr vajadzētu būt uzmanīgiem būt uzmanīgiem - dažos gadījumos makro, gluži pretēji, pasliktina situāciju.