დაბალი დონის პროგრამირების ენები Assembler. როდის იყო ასამბლეის (ასამბლეის) და მანქანა ენა? იდენტიფიკატორები, რიცხვები, ნიშნები, კომენტარები, ეკვივალენტი

Პროგრამირების ენა

Assembler არის დაბალი დონის პროგრამირების ენა, რომელიც არის ფორმატში ჩაწერის მანქანა ბრძანებები, მოსახერხებელი ადამიანის აღქმა.

Assembler ენის ბრძანებები ერთია ერთ-ერთ შეესაბამება პროცესორებს და, ფაქტობრივად, ბრძანებებისა და მათი არგუმენტების ჩაწერის (mnemokode) მოსახერხებელი სიმბოლური ფორმაა. გარდა ამისა, Assembler ენა უზრუნველყოფს ძირითადი პროგრამული აბსტრაქცია: სავალდებულო ნაწილების ნაწილები და მონაცემები შემდეგ tags სიმბოლური სახელები და დირექტივა.

Assembler დირექტივები საშუალებას გაძლევთ შეიტანოთ მონაცემთა ბლოკები პროგრამაში (აღწერილია პირდაპირ ან წაკითხული ფაილი); გაიმეორეთ განსაზღვრული რაოდენობის გარკვეული ფრაგმენტი; შეადგინოს ფრაგმენტი პირობით; ფრაგმენტის აღსრულების მისამართი, შედგენის პროცესში ეტიკეტების ღირებულებების შეცვლა; გამოიყენეთ მაკრო განმარტებები პარამეტრებით და სხვა.

თითოეული პროცესორის მოდელი, პრინციპში, აქვს საკუთარი კომპლექტი ბრძანებები და შესაბამისი ენის (ან დიალექტი) ასამბლეის.

Დადებითი და უარყოფითი მხარეები

  • ზედმეტი კოდის მინიმალური ოდენობა (მცირე რაოდენობის ბრძანებების გამოყენება და მეხსიერების მითითება). შედეგად - მაღალი სიჩქარით და მცირე პროგრამების ზომა
  • დიდი კოდექსის მოცულობები, დიდი რაოდენობით დამატებითი უმნიშვნელო ამოცანები
  • ცუდი კოდი readability, მხარდაჭერა სირთულე (გამართვის, დასძინა შესაძლებლობები)
  • პროგრამირების პარადიგმებისა და სხვა კომპლექსური კონვენციების განხორციელების სირთულე, ერთობლივი განვითარების სირთულე
  • ნაკლები ბიბლიოთეკები ხელმისაწვდომია, მათი მცირე თავსებადობა
  • აღჭურვილობის პირდაპირი წვდომა: I / O პორტები, სპეციალური პროცესორი რეგისტრაცია
  • თვითმმართველობის შეცვლის კოდექსის დაწერის უნარი (I.E. MetaProgramming, პროგრამული უზრუნველყოფის თარჯიმნის საჭიროების გარეშე)
  • მაქსიმალური "fit" ამისთვის სასურველი პლატფორმა (სპეციალური ინსტრუქციების გამოყენება, "რკინის" ტექნიკური მახასიათებლები)
  • შეუწყნარებლობის სხვა პლატფორმების (გარდა ორობითი თავსებადი).

Სინტაქსი

ზოგადად მიღებული სტანდარტი Symbler Languages \u200b\u200bსინტაქსისთვის არ არსებობს. თუმცა, არსებობს დე-ფაქტო სტანდარტები - ტრადიციული მიდგომები, რომლებიც ყველაზე ასამბლეის დეველოპერებს უთმობენ. ძირითადი საინფორმაციო სტანდარტები არის Intel-Syntax და AT & T-Syntax.

ინსტრუქციების ჩაწერის ზოგადი ფორმატი იგივეა:

`[Tag:]] opcode [operands] [კომენტარი]`

გამოჩენა უშუალოდ mnemonic ინსტრუქციები პროცესორი. პრეფიქსები (გამეორება, ცვლილებები, როგორიცაა მისამართი, და ა.შ.) შეიძლება დაემატოს. როგორც ოპერატორები, მუდმივები, რეგისტრაცია სახელები, RAM- ში მისამართები და ა.შ. Intel და AT & T სტანდარტების შეშფოთების შესახებ განსხვავებები ძირითადად, ოპერაციების გადაცემის წესსა და სინტაქსს სხვადასხვა მეთოდებით.

გამოყენებული mnemonics ჩვეულებრივ იგივეა ყველა პროცესორი ერთი არქიტექტურის ან ოჯახის არქიტექტორების (შორის ცნობილი - mnemonics of პროცესორები და კონტროლერები Motorola, Arm, X86). ისინი აღწერილია პროცესორების სპეციფიკებში.

მაგალითად, Zilog Z80 პროცესორმა მემკვიდრეობით I8080 ბრძანების სისტემა, გაფართოვდა და შეცვალა mnemonics (და რეგისტრაცია აღნიშვნა) საკუთარი გზა. მაგალითად, მე შეიცვალა Intel Mov on LD. Motorola Fireball პროცესორები მემკვიდრეობით Z80 ბრძანება სისტემა, ჭრის მას ქვემოთ. ამავდროულად, Motorola ოფიციალურად დაბრუნდა Intel Mnemonics. და ბ. ამ მომენტში ნახევარი შეკრებებით Fireball მუშაობს Intel Mnemonics, და ნახევარი Zilog Mnemonics.

დირექტივა

ინსტრუქციის გარდა, პროგრამა შეიძლება შეიცავდეს დირექტივებს: ბრძანებები, რომლებიც პირდაპირ არ გაგზავნიან მანქანას ინსტრუქციებს და შემდგენელ მენეჯერებს. კომპლექტი და სინტაქსი განსხვავდება მნიშვნელოვნად და დამოკიდებულია არა ტექნიკის პლატფორმისგან, არამედ შემდგენელიდან გამოყენებული (არქიტექტურის ერთ ოჯახში ენების დიალექტები). როგორც კომპლექტი, დირექტივები შეიძლება გამოყოფილი იყოს:

  • მონაცემების განსაზღვრა (მუდმივები და ცვლადები)
  • ორგანიზაციის ორგანიზაციის მენეჯმენტი მეხსიერებაში და გამომავალი ფაილის პარამეტრებში
  • კომპილერის ოპერაციის რეჟიმი
  • ყველა სახის აბსტრაქციები (I.E., მაღალი დონის ენების ელემენტები) - პროცედურებისა და ფუნქციების რეგისტრაციისას (პროცედურის პროგრამირების პარადიგმის გამარტივება) პირობითი სტრუქტურებისა და ციკლებისთვის (სტრუქტურული პროგრამირების სტრუქტურებისათვის)
  • მაკრო

ტერმინი და კრიტიკა ტერმინი "Assembler Language"

ამ ენებზე ამ ტიპის ენები ამ ენებზე თარჯიმნის სახელით (შემდგენელი) მიიღეს - Assembler (Eng. Assembler - Collector). ამ უკანასკნელის სახელი გამოწვეულია იმის გამო, რომ არ არსებობდა უმაღლესი დონის ენები პირველ კომპიუტერებზე, ხოლო შეკრების გამოყენებით პროგრამების შექმნის ერთადერთი ალტერნატივა პირდაპირ კოდებში პირდაპირ იყო.

რუსულ ენაზე ხშირად უწოდებენ "Assembler" (და მასთან დაკავშირებულ რაღაც არის "ასამბლეის"), რომელიც, სიტყვის ინგლისურ თარგმანს, არასწორია, მაგრამ რუსული ენის წესებს შეესაბამება. თუმცა, თავად Assembler თავად (პროგრამა) ასევე მოუწოდა უბრალოდ "Assembler", და არა "Assembler ენის შემდგენელი" და ა.შ.

ტერმინი "Assembler Language" - ის გამოყენება შეიძლება გამოიწვიოს არასწორი აზრი ერთი დაბალი დონის ენის არსებობის შესახებ, ან თუნდაც ასეთი ენების სტანდარტი. როდესაც დასახელდა ენა, რომელზეც კონკრეტული პროგრამა დაწერილია, მიზანშეწონილია, რომ არქიტექტურისთვის განკუთვნილია და რა არის ენის დიალექტი.

სინტაქსის ელემენტები:

მაგალითები:

Გამარჯობა მსოფლიო!

INTEL X86- ის ვერსიების მაგალითი (IA32)

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

Გამარჯობა მსოფლიო!

მაგალითი Amiga ვერსიები

გადაადგილება. L #dos გადაადგილება. L 4. W, A6 JSR - $ 0198 (A6); Oldopenlibrary ნაბიჯი. L D0, A6 Beq. ს. Out ნაბიჯი. L #helloworld, d1 a) moveq # 13, d2 jsr - $ 03AE (A6); Writechars B) JSR - $ 03B4; Putstr ნაბიჯი. L A6, A1 ნაბიჯი. L 4. W, A6 JSR - $ 019E (A6); Closelibrary. Out rts dos dc. B "dos.library", 0 Helloworld DC. B "Hello World!" , $ A, 0

Გამარჯობა მსოფლიო!

მაგალითად ATARIST- ის ვარიანტები

გადაადგილება. L #helloworld, - (A7) გადაადგილება # 9, - (A7) Trap # 1 Addq. L # 6, A7 ნაბიჯი # 0, - (A7) Trap # 1 Helloworld: DC. B "Hello World!", $ 0d, $ 0a, 0

Გამარჯობა მსოფლიო!

INTEL X86- ის ვერსიების მაგალითი (IA32)

NASM Linux გამოიყენება Intel Syntax- ის მიერ. შედგენა და დამაკავშირებელი:

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

სექცია. მონაცემთა Msg DB "გამარჯობა, მსოფლიო!", 0xa len equ $ - msg სექცია. ტექსტური გლობალური _start _start:; შესვლის წერტილი MOV EAX, 4; "ჩაწერეთ" სისტემის ზარი EBX, 1 MOV ECX, MSG; მაჩვენებელი მონაცემების MOV EDX, LEN; მონაცემთა INT 0x80- ის რაოდენობა; Call Core MOV EAX, 1; "_Exit" სისტემის ზარის MOV EBX, 0; დაბრუნება 0 (ყველა კარგი) int 0x80; ზარის ბირთვის

Გამარჯობა მსოფლიო!

PDP-8 ვერსიების მაგალითი

/ - კომენტარები.

/ Hello World on Assembler for Dec PDP - 8 * 200 Hello, CLA CLL TLS / TLS ადგენს ბეჭდვის დროშა. Tad Charac / ქმნის DCA IR1 ინდექსის რეესტრს / მიიღოს TAD M6 სიმბოლოების / კონფიგურაცია მეტრი DCA Count / Enhance სიმბოლო. შემდეგი, TAD I IR1 / მიიღეთ სიმბოლო. JMS ტიპი / მისი ტიპი. ISZ რაოდენობა / რაღაც სხვა? JMP შემდეგი / არა, შეიტანეთ სხვა სიმბოლო HLT ტიპი, 0 / ტიპი TSF JMP Subroutine. - 1 TLS CLA JMP I ტიპის charac,. / გამოიყენება როგორც საწყის ღირებულება IR1. 310 / H 305 / E 314 / ლ 314 / ლ 317 / O 254/4, 240/327 / W 317 / O 322 / R 314 / ლ 304 / D 241 /! M6, - 15 COUNT, 0 IR1 \u003d $ 10

Გამარჯობა მსოფლიო!

მაგალითი PDP-11 ვერსიების შესახებ

პროგრამა დაწერილია Macro-11 MacRoassembler- ზე, რათა შეადგინოს ეს პროგრამა RT-11 OS ბრძანებაში:

მაკრო გამარჯობა.

შეცდომები აღმოაჩინეს: 0

ბმული Hello - ბმული. გაუშვით Hello - Run

სათაური Hello World; სახელი. Mcall. Ttyout,. გასვლა Hello :: MOV #MSG, R1; სტრიქონის თავდაპირველი მისამართი $ 1: MRB (R1) +, R0; ჩვენ მივიღებთ შემდეგ ბეკის გაკეთებას სიმბოლო; თუ ნულოვანი, გამოვიდეთ ციკლიდან. Ttyout; სხვაგვარად ბეჭდვა BR 1 $ სიმბოლო; გაიმეორეთ ციკლი:. Msg :. Asciz / Hello, World! /; სიმებიანი გამარჯობა, მსოფლიო! . ბოლოს გამარჯობა; Hello პროგრამის დასასრული

Გამარჯობა მსოფლიო!

მაგალითი სისტემის / 360, სისტემა / 370

IBM სისტემა / 360/370/390 ძირითადი ასამბლეის ენა.

// Exec Assembly Start Main Balr 2, 0 *, 2 ღია ბეჭდვის MVC BUF, HW Print Close Close დაბეჭდვა EOJ HW DC CL132 "Hello World" Buf DS CL132 Print DTFPR Ioarea1 \u003d BUF, Devaddr \u003d Syslst, Blksize \u003d 132, * მოწყობილობა \u003d 3203, Control \u003d YES, PRINTOV \u003d YES END MAIN / * // ECON LNKEDT // Exec / * /

Გამარჯობა მსოფლიო!

მაგალითი Apple II ვერსიისთვის

* Hello World for 6502 Apple] [* ******************************** Strout Equ $ DB3A LDY #\u003e Hello LDA #< HELLO JMP STROUT HELLO ASC "HELLO WORLD !", 00

Გამარჯობა მსოფლიო!

მაგალითი PDP-10 ვერსიების მაგალითი

Chttyo - ყველა შეყვანის / გამომავალი ხორციელდება I / O არხების გამოყენებით. უმჯობესია, სიმბოლური სახელები გამოიყენოთ იმ არხებისთვის, რომლებიც იყენებთ და დაიწყებთ მათ ჩ. განსაზღვრეთ ეს სახელები Midas Operator \u003d\u003d- ის გამოყენებით.

ზარი არის სიმბოლური დანიშნულება სისტემის ზარისთვის. მისი ფორმატი: .call.

ღია ხსნის შეყვანის / გამომავალი არხი გამოყენებისათვის. მოითხოვს ორ პარამეტრს - არხის ნომერი და მოწყობილობის სახელი 6bit.

დაკარგავს% LSFIL არის სისტემის ზარი, რომელიც იბეჭდება შეყვანის / გამომავალი შეცდომის გაგზავნა, თუ მოულოდნელად მოხდა.

IOT არის სისტემის ზარი, რომელიც რეალურად არის ჩართული შეყვანის / გამომავალი. როგორც პარამეტრი, თქვენ უნდა მიუთითოთ არხი და მისამართი, რომელიც შეიცავს სიმბოლო კოდს გამომავალი. მაგალითად, "H წარმოადგენს ჰ.

სათაური printhello a \u003d 1 chttyo \u003d\u003d 1; არხი გამომავალი. დაწყება: TTY არხის გახსნა. . დარეკეთ [SETZ? Sixbit / Open / [. Uao, chttyo]? [Sixbit / tty /] (setz)). დაკარგავს% lsfil. IOT CHTTYO, ["H]; ბეჭდვითი Hello World Symball .. IOT Chttyo, [" E]. IOT CHTTYO, ["L]. IOT CHTTYO, [" L]. Iot chttyo, [o]. IOT Chttyo, [^ m]; სიმბოლო ახალი ხაზი. IOT CHTTYO, [W]. IOT CHTTYO, [O]. IOT CHTTYO, ["R]. IOT CHTTYO, ["L]. IOT CHTTYO, [" D]. ღირებულება; პროგრამა, Stop :) დასასრულს დაწყება

Fibonacci ნომრები:

მაგალითი mips32 ვერსიები

მარსის ემულატორი. დასკვნა მარსის კონსოლი:

Fibonacci ნომრები: 1 1 2 3 5 8 13 21 34 55 89 144 - პროგრამა დასრულებულია -

პროგრამა აჩვენებს 15 Fibonacci ნომერს. რიცხვების რაოდენობა შეიძლება შეიცვალოს section.data.

მონაცემთა ფართი: .ASCIIZ "" ხელმძღვანელი: .ASCIIZ "Fibonacci ნომრები არიან: \\ n" FIB: .Word 0: 15 ზომა: Aword 15 .Text Main: LA $ T0, FIB LA $ T5, ზომა LW $ T5, 0 ($ T5) Li $ T2, 1 Add.D.D $ F0, $ F2, $ F2, $ F4 SW $ T2, 0 ($ T0) SW $ T2, 4 ($ T0) Addi $ T1, $ T5, - 2 Loop: LW $ T3, 0 ($ T0) LW $ T4, 4 ($ T0) დაამატეთ $ 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 ბეჭდვა Li $ v0, 10 Syscall Print: დამატება $ T0, $ ZERO, $ A0 Add $ T1, $ ZERO, $ A1 LA $ A0, უფროსი Li $ v0, 4 Syscall Out: LW $ A0, 0 ($ T0) Li $ V0, 1 syscall la $ a0, ფართი 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 addiu $ t2, $ t2, 1 beq $ t2, 16, endloop j loop endloop: li $ v0, 10 Syscall



ასისტენტი

ასისტენტი - დაბალი დონის პროგრამირების ენა. ენა მიიღო მისი სახელი სიტყვის ასამბლეისგან - კოლექციონერი. იყო კიდევ 50th. როგორც მანქანა ენის სიმბოლური ანალოგი.
Assembler ბრძანებები ერთია, რომელიც შეესაბამება პროცესორს ბრძანებებს და ფაქტობრივად, წარმოადგენს ბრძანებების და არგუმენტების ჩაწერის სიმბოლურ ფორმას. ასევე, Assembler უზრუნველყოფს სავალდებულო ნაწილების ნაწილების ნაწილების ნაწილების ნაწილების ნაწილები ასამბლეის (თითოეული tag, მისამართი გამოითვლება, რის შემდეგაც თითოეული ჩანაწერი შეიცვალა ამ მისამართზე).
მას შემდეგ, რაც მიკროპროცესორული ბრძანების სისტემები განსხვავდება, თითოეული პროცესორი აქვს საკუთარი კომპლექტი ბრძანებები ასამბლეურ ენაზე.
ასამბლეის დახმარებით შეგიძლიათ დაწეროთ ისეთი პროგრამები, რომლებიც შეუძლებელია, ან ძალიან რთულია სხვა ენებზე. მაგალითად: ძირითადი გენერატორები (Keygen), სისტემის მონიტორები, მძღოლები აღჭურვილობა ან თუნდაც os.
მაღალი დონის ენები ("C", "პასკალი", "ბასკალი", "დელფი" და ა.შ.) არ უზრუნველყოფს საიმედო კონტროლს მონაცემთა ნაკადების, მეხსიერების მისამართების ან პროცესორების რეგისტრაციისთვის, ისევე როგორც ყველა მათგანი შემუშავდა კონკრეტული ტიპის მიხედვით ოპერაციული სისტემა, Assembler შეიძლება გახდეს იგივე ასამბლეის, მაგრამ მუშაობს უცნობი სამეცნიერო პლატფორმა, და პროგრამების ამ პლატფორმაზე.
პროგრამები Assembler, განსხვავებით პროგრამების მაღალი დონის ენებზე, ხორციელდება ათობით ჯერ ნაკლები, და ისინი მუშაობენ ათი ჯერ უფრო სწრაფად. მაგალითად, როგორც ჩანს, Menuetos ოპერაციული სისტემა, რომელიც იწერება ბინაში შეკრების შესახებ და შეესაბამება ერთ დისკზე (1.44 მბ), ხოლო ნაკრები მოიცავს აპლიკაციის პროგრამებს, როგორიცაა: ასამბლეის კოდი რედაქტორი Backlit, მუშაობა ფაილური სისტემა, 3D Screensaver, ზოგიერთი თამაშები, სურათები, სურათები, შემდგენელი ბინა Assembler, Terminal, CD Player და მრავალი სხვა. უპირატესობა ის არის, რომ ეს შეიძლება სწრაფად გადმოწერილი ინტერნეტით (თუნდაც მცირე კავშირი სიჩქარით).
ამ ეტაპზე, საუკეთესო პროგრამული უზრუნველყოფის სპეციალისტები განვითარდება მაღალი დონის ენებზე, როგორიცაა პასკალი ან გ, რაც უფრო ადვილია, როდესაც წერილობით პროგრამებს, მაგრამ ყველაზე ძლიერი და ეფექტურია პროგრამული უზრუნველყოფა სრულად ან ნაწილობრივ დაწერილი ასამბლეის ენაზე.

ლიტერატურა
1. პიტერ აბელი - ასამბლეა. ენა და პროგრამირება IBM PC - მ., 1999.

ასისტენტი

ასისტენტი(ინგლისურიდან, კოლექციონერი - კოლექტორი) - ასამბლეურ ენაზე დაწერილი პროგრამის წყარო ტექსტური შემდგენელი, მანქანაში.
თავად ენის მსგავსად, ასამბლეები, როგორც წესი, სპეციფიკურია კონკრეტული არქიტექტურის, ოპერაციული სისტემისა და ენის სინტაქსის ვერსიისთვის. ამავდროულად, არსებობს multiplatform ან უნივერსალური (უფრო სწორად, შეზღუდული უნივერსალური, რადგან დაბალი დონის ენაზე თქვენ არ შეგიძლიათ ჩაწეროთ აპარატურის დამოუკიდებელი პროგრამები) შეკრებისას, რომელიც შეიძლება სხვადასხვა პლატფორმებზე და ოპერაციულ სისტემებზე იმუშაოს. ამ უკანასკნელს შორის, ასევე შეგიძლიათ მონიშნოთ ჯვარედინი ასამბლეის ჯგუფი, რომელსაც შეუძლია სხვა არქიტექტურასა და OS- ისთვის განკუთვნილი მანქანა და შესრულებადი მოდულები (ფაილები).
ასამბლეა არ შეიძლება იყოს პირველი და არა ბოლო ნაბიჯი პროგრამის აღმასრულებელი მოდულის მისაღებად. ამდენად, მაღალი დონის პროგრამირების ენებისგან ბევრი შემდგენელი შედეგების გამოტანა პროგრამის სახით ასამბლეურ ენაზე, რომელიც მომავალში ასამბლეის პროცესებს წარმოადგენს. გარდა ამისა, შედეგების ასამბლეა არ შეიძლება შესრულდეს და აპარატის კოდექსის მიმოფანტული ბლოკებისა და პროგრამის მონაცემების შემცველი ობიექტის მოდული, საიდანაც (ან რამდენიმე ობიექტის მოდულისგან) მომავალში ბმული რედაქტორის გამოყენებით შეიძლება შესრულდეს შესრულებული ფაილი.
სპეციალური მეხსიერების უჯრედები უშუალოდ პროცესორში. რეესტრთან მუშაობა ბევრად უფრო სწრაფად ხორციელდება, ვიდრე RAM საკნებში, ამიტომ რეესტრი აქტიურად გამოიყენება როგორც ასამბლეურ ენაზე პროგრამებში და მაღალი დონის ენების შემდგენელებში.
რეგისტრაციის სახელები მათი მიზანია:

Eax / ax / ah / al (აკუმულატორის რეგისტრაცია) - ბატარეა;
EBX / BX / BH / BL (BASE რეგისტრაცია) -რეგისტური მონაცემთა ბაზა;
ECX / CX / CH / CL (Counter რეგისტრაცია) - Counter;
EDX / DX / DH / DL (მონაცემთა რეგისტრაცია) - მონაცემთა რეგისტრაცია;
ESI / SI (წყარო ინდექსის რეგისტრაცია) - წყარო ინდექსი;
EDI / DI (დანიშნულების ინდექსის რეგისტრაცია) - მიმღების ინდექსი (მიმღები);
ESP / SP (დასტის მაჩვენებელი რეგისტრაცია) - დასტის მაჩვენებელი რეგისტრაცია;
EBP / BP (ბაზის მაჩვენებელი რეგისტრაცია) - Stack ჩარჩო ბაზის მაჩვენებელი რეგისტრაცია.

რიგის დამუშავების ბრძანებები
სიმბოლოების ან სიმბოლოების ან რიცხვების ჯაჭვებთან მუშაობა (I.E., უბრალოდ საუბრობენ, თვითნებური მონაცემების მასივი) დეპუტატში არსებობს სპეციალური ბრძანებები:
movs - გაგზავნის სიმები;
cMPS - ორი ხაზის შედარება;
seas - ძებნა მოცემული ელემენტის სიმებიანი;
lODS - ბატარეის იტვირთება (ალ ან AH რეგისტრაცია) ხაზიდან;
stos - ჩანაწერის ელემენტი string საწყისი ბატარეის (რეგისტრაცია AH ან ალ).

ღირსება

· Assembler ენა საშუალებას გაძლევთ დაწეროთ სწრაფი და ყველაზე კომპაქტური კოდი, რომელიც ზოგადად შესაძლებელია ამ პროცესორებისთვის.
· ოპერაციის სიჩქარე - კომპიუტერული ალგორითმის ოპტიმიზაციის გზით RAM (მაგალითად, თუ ყველა წყაროს მონაცემები ინახება პროცესორში რეგისტრაციაში, შეგიძლიათ გამორიცხოთ OP- ზე ზედმეტი ხელმისაწვდომობა), მონაცემთა გადანაწილება, ცხრილის გამოთვლითი ფუნქციები ;
· კოდის მოცულობა (მათ შორის ეფექტური გამოყენება შუალედური შედეგები). კოდის მოცულობის შემცირება ხშირად ზრდის პროგრამის შესრულების სიჩქარეს.
· კონკრეტული პლატფორმის კონკრეტული შესაძლებლობების მაქსიმალური გამოყენების უზრუნველყოფა, რომელიც ასევე საშუალებას გაძლევთ შექმნათ უფრო ეფექტური პროგრამები, მათ შორის ნაკლებად რესურსების ინტენსიური.
· Assembler ენაზე პროგრამირება შესაძლებელია ტექნიკის პირდაპირი წვდომა და, კერძოდ, I / O პორტებზე, პროცესორის რეგისტრაცია და ა.შ. ბევრ ოპერაციულ სისტემაში, რეგისტრატორის რეგისტრაციისთვის განაცხადის პროგრამების პირდაპირი კონტაქტი პერიფერიული აპარატურა დაბლოკა სისტემის საიმედოობისთვის და გამონაკლისი "გაყინვა".
· Assembler ენა ხშირად გამოიყენება ტექნიკის მძღოლებისა და ოპერაციული სისტემის კერების შესაქმნელად, როდესაც დროებითი სამუშაო ხელშეკრულება მნიშვნელოვანია. Პერიფერიული მოწყობილობები -დან ცენტრალური პროცესორი.
· Assembler ენა გამოიყენება "BIOS Firmware".
· ხშირად შეიქმნება შეკრების ენების დახმარებით, კომპილერების და მაღალი დონის ინტერპრეტატორების მანქანათმშენებლობის ქვეპროგრამები ხშირად იქმნება და პლატფორმების თავსებადობა ხორციელდება.
· Disassembler პროგრამის დახმარებით, შეგიძლიათ გაიგოთ პროგრამის საოპერაციო ალგორითმები, რომლებიც სწავლობენ მაღალ დონის ენის ჩამონათვალში, მხოლოდ მანქანების კოდების შესწავლას, მაგრამ კომპლექსურ არატრადიულ პროგრამებში ძალიან, ძალიან შრომატევადი.

ნაკლოვანებები
· Assembler ენის მანქანების ორიენტაციის ("დაბალი" დონის) ძალით, პირი უფრო რთულია, წაიკითხოს და გაიგოს პროგრამა მასზე მაღალი დონის პროგრამირების ენებზე; პროგრამა შედგება ძალიან "პატარა" ელემენტებისაგან - მანქანა ბრძანებები, შესაბამისად, პროგრამირების და გამართვის გართულებები, სირთულე და შეცდომების ალბათობა იზრდება.
· გაზრდილი პროგრამისტების კვალიფიკაცია აუცილებელია ხარისხის კოდის მისაღებად: შეკრებათა ენაზე საშუალოდ პროგრამის მიერ დაწერილი კოდი, როგორც წესი, არ არის უკეთესი ან უფრო უარესი, ვიდრე მაღალი დონის ენაზე დაწერილი შესადარებელი შემდგენლის მიერ წარმოებული კოდი.
· მაღალი დონის პროგრამა შეიძლება მოხდეს ახალი სამიზნე პლატფორმის თვისებებით ავტომატური ოპტიმიზაციისთვის, ახალი პლატფორმის შესახებ შეკრების ენაზე პროგრამა შეიძლება დაკარგოს თავისი უპირატესობა სიჩქარით მექანიკური გადაწერების გარეშე.
როგორც წესი, ნაკლებად ბიბლიოთეკები ხელმისაწვდომია თანამედროვე სამრეწველო პროგრამირების ენებზე.
· სხვა არქიტექტურისა და ბრძანების სისტემის კომპიუტერების პროგრამების პორტაბელურობა არ არსებობს.

თავსატეხი
ერთი ტიპის ასამბლეისთვის განკუთვნილი პროგრამა ვერ შედგება სხვა რადიკალური შეცვლის გარეშე ან ავტომატური კონვერტაციის გარეშე! მაგრამ "მათი" ტიპის შეკრებებშიც კი არის სურათების, disaginion და ბევრი განსხვავებები: საკვანძო სიტყვები, ჩამონათვალი, მიწოდებული ბიბლიოთეკებისა და სათაურის ფაილებში და ა.შ. თუ მხოლოდ თავსებადობა არ არის მკაფიოდ, აუცილებელია პროგრამის მაუწყებლობა, რაც განკუთვნილია, რისთვისაც განკუთვნილია. წინააღმდეგ შემთხვევაში, მოემზადეთ ცვლილებები (ანუ, მიღება). განსხვავებები ხშირად გამოვლინდა ყველაზე მოულოდნელ ადგილებში. ზოგიერთი შეკრებებით გვესმის, რომ "MOV EAX, X" იგივეა, რაც "MOV EAX, [X]", ზოგიერთი - არა. ისინი დაბრკოლებას და შეცდომას გასცემენ. მაგრამ სხვა არაფერი! გაცილებით უარესი, როდესაც მთარგმნელი მდუმარედ განმარტავს ამ დიზაინს, როგორც "MOV EAX, OFFSET X", რომელიც არ არის ზუსტად იგივე! ასე რომ, როდესაც გადაცემის პროგრამა თქვენ უნდა იყოს ძალიან და ძალიან ფრთხილად.

ოპერაციული სისტემების თავსებადობა. MS-DOS- ზე ორიენტირებული პროგრამები არა მარტო არ არის ტრანსპორტირებადი, არამედ შეუწყნარებლობით. მათთვის დამახასიათებელია პირდაპირი ურთიერთქმედება ბირთვულ დონეზე NT- ში ხელმისაწვდომი აღჭურვილობით, არ არის აღარაფერი ვთქვათ, რომ 16 ბიტიანი კოდი ეწოდება მხოლოდ 32-ბიტიანი აპლიკაციებისგან მხოლოდ DPMI- ს, შემდეგ კი არა თრუსების გარეშე.

ამრიგად, სანამ სამაუწყებლო პროგრამების მაუწყებლობას, აუცილებელია, თუ რომელი მთარგმნელი და ოპერაციული სისტემა განკუთვნილია! ერთად Assembler ფრაგმენტები, დაიჭირეს "მშობლიური" კონტექსტი, კიდევ უარესი. დავუშვათ, ზოგიერთ სტატიაში, საინტერესო ანტი-მარყუჟის მიღება აღწერილია და ასამბლეის კოდექსი მოცემულია, მაგრამ როგორ უნდა ჩაიწეროს მისი პროგრამა - არ იტყვის. ნაცნობი სიტუაცია, არა? პირდაპირი მაუწყებლობა შეუძლებელია - თარჯიმანი ველურად არის გაღიზიანებული, მაგრამ არაფერი ამბობს.

რბილი ასამბლეა

მომზადებული ტექსტი არის სპეციალური პროგრამების წყარო მონაცემები, რომელსაც მოუწოდა შეკრებებით. შეკრების ამოცანა არის პროგრამის ტექსტის გადაკეტვა ორობითი ბრძანებების სახით, რომელიც შეიძლება შესრულდეს მიკროპროცესორის მიერ. თუ სინტაქსის შეცდომები გამოვლინდა, შედეგად კოდი არ შეიქმნება. შესრულების ფაილის შექმნის პროცესი ორ ეტაპად ხდება:

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

პირველ ეტაპზე (.Amas -\u003e .Obj) საწყისი შეკრებლების ფაილიდან შედგენა, შუალედური ობიექტის კოდი ფაილი, რომელსაც აქვს გაფართოების გაფართოების ფაილი (დამატებითი Inc ფაილი შეიძლება გამოყენებულ იქნას). ფაილი Extension.Obj შეიცავს ოპტიმიზირებულ ავტომატურ კოდს, რომ სინტაქსური და სემანტიკური შეცდომები არ შეხვდა. თუ შეცდომები გამოვლინდა წყაროს ფაილში პროგრამაში შეკრების ენაზე, მაშინ პროგრამისტი უზრუნველყოფს შეცდომების ჩამონათვალს, რომელშიც შეცდომები განსაზღვრულია ხაზის რიცხვით, სადაც ისინი აღმოჩენილია. პროგრამისტი Cyclically ასრულებს რედაქტირებას და შედგენას ქმედებებს, სანამ ყველა შეცდომას არღვევს წყაროს ფაილში. ამ ეტაპზე, უკვე შესაძლებელია მზა პროგრამის მიღება, მაგრამ ყველაზე ხშირად მას არ გააჩნია გარკვეული კომპონენტები. თუ შემდგენელი ნებისმიერი მიზეზით (არასწორად რეგისტრირებული გზა ასეთი ფაილი ან ფაილი არ არის დაკარგული) ვერ პოულობენ Inc ფაილი, მაშინ გაფრთხილება გაიცემა და OBJ ფაილი მიღებული.

ასამბლეა, როგორც წესი, ხდება ორ მიღებაში. პირველი უღელტეხილის, Mnemonic ბრძანებები, ყოველკვირეული ნომრები და სიმბოლოები შესაბამისი მანქანა კოდები ითარგმნება, გათვლილია, თუ რამდენად ბრძანება ოკუპირებულია ადგილმდებარეობის, გამოვლენილი სახელები მიერ შეყვანილი მომხმარებლის (მუდმივები, tags, ცვლადები) მათი ტიპი და რიცხვითი მნიშვნელობა არის დაწერილი მაგიდა. იმავე მაგიდაზე, რომელიც ჩაწერილია, საიდანაც მიმართავს ეტიკეტების პროცედურებს, სეგმენტების დასაწყისის / დასასრულს მისამართებს და ა.შ., შეცვლილია, პროცედურების დაწყების მისამართები შეცვლილია მეორე პასაჟით , ეტიკეტების სახელები შეიცვალა.

ასამბლეის შედეგად, ე.წ. "ობიექტის ფაილი" არის მიღებული. როგორც დამატებითი ფუნქცია, Assembler შეუძლია შექმნას პროგრამის ჩამონათვალი ფაილი.

ჩვეულებრივ, ობიექტის კოდი ფაილების მისაღებად, თქვენ უნდა შეასრულოთ შესაბამისი ასამბლეის პროგრამა (Microsoft ML.exe და Tasm.exe კომპანია Borland- ის პროგრამები), რაც მიუთითებს ბრძანების ხაზი ფაილის სახელი პროგრამის ტექსტით.

ეს გამოწვევა მინიმალურად აუცილებელია. გარდა სახელი ტექსტური ფაილითქვენ უნდა მიუთითოთ შეკრების პარამეტრები. ამ პროგრამების დოკუმენტაციაში უნდა იყოს საჭირო ინფორმაცია ასამბლეის პროგრამის შესახებ.

განლაგების პროგრამა

შემდეგი ეტაპი (.Obj -\u003e .Exe / .dll / .com) ეწოდება კავშირს ან განლაგებას და ემსახურება პროგრამისტების მიერ გამოყენებულ სიმბოლოებს.

შეადარეთ Hexadecimal Content Obj და Exe ფაილირომელიც შენ ხარ. EXE ფაილი აქვს იგივე თანმიმდევრობა bytes როგორც OBJ ფაილი. მაგრამ გარდა ამისა, ეს ჯერ კიდევ იმყოფება: შეკრებილი ფაილის სახელი, ასამბლეის ვერსია, "საკუთარი" სეგმენტი და ასე შემდეგ.

ეს "სერვისი" ინფორმაცია განკუთვნილია იმ შემთხვევებში, როდესაც თქვენი შესრულებადი ფაილი გსურთ რამდენიმე მათგანის შეგროვება. განვითარებისას დიდი პროგრამები წყარო ტექსტი შედგება, როგორც წესი, რამდენიმე მოდულიდან (ფაილები წყაროდან ტექსტებით), რადგან ეს არასასიამოვნოა ყველა ტექსტის შესანახად ერთ ფაილში - ისინი ძნელია ნავიგაციისთვის.

თითოეული მოდული შედგენილია ცალკეულ ფაილში ობიექტის კოდით. თითოეული ეს ფაილი ინიშნება მათი კოდი / მონაცემები / დასტის სეგმენტები, რომლებიც შემდეგ უნდა იყვნენ კომბინირებული ერთში. და შესრულებადი ფაილი ჩვენ უნდა მიიღოს მხოლოდ ერთი - ერთი კოდი / მონაცემები / დასტის სეგმენტი. ეს არის ეს ბმული და აკეთებს: ასრულებს მისამართების ბმულების განმარტებას და აერთიანებს, თუ საჭიროა რამდენიმე პროგრამული მოდული ერთში. და ეს ჩვენთან ერთად ხორციელდება.

გარდა ამისა, აუცილებელია ავტომობილის კოდექსის დამატება ჩვენს მოდულებზე, რომლებიც სხვადასხვა სტანდარტულ ფუნქციებს ახორციელებენ (მაგალითად, ცოდვის გამოთვლით, ცოდვა ან მათემატიკური ფუნქციები). ასეთი ფუნქციები შეიცავს ბიბლიოთეკებს (სტანდარტული გაფართოებით ფაილებს. LIB), რომლებიც შედიან შემდგენელთან, ან დამოუკიდებლად შექმნილნი არიან. აქედან გამომდინარე, მომზადების პროცესი აუცილებლად მოიცავს განლაგებას, როდესაც ყველა უცნობი განისაზღვრება, როდესაც განისაზღვრება ჩამონგრეული ცვლადების ან ფუნქციების მისამართი.

ობიექტის მოდულების კომბინაციის პროცესი ერთ ფაილზე ხორციელდება სპეციალური ლინკერის პროგრამით ან კოლექტორის მიერ (Microsoft- ისა და Tlink.exe Company- ის ბმულით), რომელიც ასრულებს სავალდებულო ობიექტების მოდულების და სტანდარტული ფუნქციების კოდექსს, მოძიებაში მათ ბიბლიოთეკებში, და გენერირებას workable განაცხადის არის შესრულებადი კოდი კონკრეტული პლატფორმა.

შესრულებადი კოდი არის სრული პროგრამა com, dll ან exe გაფართოება, რომელიც შეიძლება აწარმოებს კომპიუტერზე დამონტაჟებული ოპერაციული სისტემა, რომელიც ამ პროგრამას შეიქმნა. სახელი შესრულებადი ფაილის იქნება მითითებული პირველი .Obj ფაილი. იმისათვის, რომ აკავშირებს თქვენ უნდა დარეკოთ ბრძანება Prompt:

ბმული Prog1.Obj prog2.Obj ან tlink prog1.Obj prog2.Obj

ობიექტის ფაილის შინაარსი გაანალიზებულია ბმულით. ეს განსაზღვრავს თუ არა პროგრამა გარე ბმულებიანუ, არის თუ არა პროგრამის ზარის ბრძანების პროგრამა შეიცავს ერთ-ერთ ობიექტს მოდულის ბიბლიოთეკებს (ბმული ბიბლიოთეკა). Linker- მა ეს ბმულები ობიექტის ფაილში აღმოაჩენს, ბიბლიოთეკების აუცილებელი პროცედურების ასლები, აერთიანებს მათ ობიექტს და ქმნის შესრულებულ ფაილს (შესრულებადი ფაილი). როცა Დამატებითი ფუნქციები Linker- ს შეუძლია შექმნას ჯვარედინი ბმული ფაილი, რომელიც შეიცავს მიღებულ შესრულების გეგმას.

გამოყენებული წყაროები
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 ენა IBM PC- ისთვის. მ.: კომპიუტერი, 1992.

1. როდის და ვინ იყო გამოგონილი პერფორაციის მანქანები? რა ამოცანები გადაწყდა მათზე?

2. რა არის ელექტრომექანიკური სარელეო? როდის იყო სარელეო კომპიუტერული მანქანები? რა სიჩქარე ჰქონდა მათ?
3. სად და როდის იყო პირველი კომპიუტერი? რა იყო მოუწოდა?
4. რა არის ჯონ ვონ ნეუმანის როლი კომპიუტერის შექმნაში?
5. ვინ იყო პირველი შიდა კომპიუტერის დიზაინერი?
6. რა ელემენტის ბაზა შექმნილია პირველი თაობის მანქანები? რა იყო მათი მთავარი მახასიათებლები?
7. რომელი ელემენტარული მონაცემთა ბაზაში შეიქმნა მეორე თაობის მანქანები? რა არის მათი უპირატესობები შედარებით პირველი თაობის კომპიუტერი?
8. რა არის ინტეგრირებული წრიული? როდის იყო პირველი კომპიუტერი ინტეგრირებული სქემების შესახებ? რა უწოდებდნენ მათ?
9. რა არის კომპიუტერის გამოყენების ახალი სფეროები მესამე თაობის მანქანების გამოჩენაში?
10. რა არის მიკროპროცესორი? როდის და სად იყო პირველი მიკროპროცესორი?
11. რა არის მიკროვარი და პერსონალური კომპიუტერი?
12. რა ტიპის კომპიუტერი მსოფლიოში ყველაზე გავრცელებულია?
13. რა არის სუპერკომპიუტერი?
14. რა არის კლასტერული კომპიუტერული სისტემები?
15. რა არის მეხუთე თაობის ფუნქცია?

დაასახელეთ პირველი კომპიუტერული მოწყობილობა. Aback კალკულატორი არითმომეტრი რუსული ქულები, რომლებიც იდეა განათავსეთ შუა

მე -19 საუკუნის ინგლისური მათემატიკოსი ჩარლზ ბაბუა?

პროგრამული უზრუნველყოფის შექმნის იდეა დათვლა მანქანაარითმეტიკული მოწყობილობის, კონტროლის მოწყობილობა, ასევე შეყვანისა და ბეჭდვის მოწყობილობა

შექმნის იდეა მობილური ტელეფონი

იდეა შექმნას რობოტები მართავს კომპიუტერი

რა წელიწადში და სად იყო პირველი კომპიუტერი ელექტრონული ნათურების საფუძველზე?

1945, აშშ

1944, ინგლისი

1946, საფრანგეთი

რა საფუძველი იყო მესამე თაობის კომპიუტერები?

ინტეგრირებული სქემები

ნახევარგამტარები

ელექტრონული ნათურები

superbound ინტეგრირებული სქემები

რა იყო პირველი პერსონალური კომპიუტერის სახელი?

დაასახელეთ კომპიუტერის ცენტრალური მოწყობილობა.

პროცესორი

Სისტემის ერთეული

Ენერგიის წყარო

მატლესი

პროცესორი აწარმოებს ინფორმაციას:

-ში ათობითი სისტემა შენიშვნა

Ინგლისურად

Რუსულად

ძრავის ენაზე (ორობითი კოდექსში)

შეიტანეთ რიცხვითი და ტექსტური ინფორმაცია

კლავიატურა

სკანერი გამოიყენება ...

სურათების და ტექსტური დოკუმენტების სურათების შესასვლელად

მასზე სპეციალური სახელური

მონიტორინგის ეკრანზე კურსორის გადატანა

ჰოლოგრაფიული სურათები

10. რა ტიპის პრინტერი მიზანშეწონილია ფინანსური დოკუმენტების ბეჭდვისთვის?

მატრიქსის პრინტერი

Jet პრინტერი

Ლაზერული პრინტერი

რა ტიპის პრინტერი მიზანშეწონილია გამოიყენოთ ესეები?

მატრიქსის პრინტერი

Jet პრინტერი

Ლაზერული პრინტერი

რა ტიპის პრინტერი მიზანშეწონილია ფოტოების გამოყენება?

მატრიქსის პრინტერი

Jet პრინტერი

Ლაზერული პრინტერი

კომპიუტერის სანიტარიული და ჰიგიენური მოთხოვნების შეუსრულებლობით, ადამიანის ჯანმრთელობაზე მავნე ზემოქმედება შესაძლებელია ...

მონიტორინგი ელექტრონული რადიაციული მილის შესახებ

მონიტორინგი თხევად კრისტალებზე

პლაზმური პანელები

როდესაც კომპიუტერი გამორთულია, ყველა ინფორმაცია წაშლილია ...

შემთხვევითი წვდომის მეხსიერება

Მყარი დისკი

ლაზერული დისკი

რომელი კომპიუტერი ინახება კომპიუტერში?

გარე მეხსიერება;

ᲞᲠᲝᲪᲔᲡᲝᲠᲘ;

ოპტიკური სიმღერები აქვს პატარა სისქე და მოთავსებულია უფრო მჭიდროდ ...

ციფრული ვიდეო ძრავა (DVD დისკი)

კომპაქტ დისკზე (CD - დისკი)

შეყვანის მოწყობილობები შეიყვანეთ ...

გამომავალი მოწყობილობა მოიცავს ...

კლავიატურა, მაუსი, ჯოისტიკი, მსუბუქი ბუმბული, სკანერი, ციფრული კამერამიკროფონი

ხმის სვეტები, მონიტორი, პრინტერი, ყურსასმენი

HDD, პროცესორი, მეხსიერების მოდულები, მატლესიდისკეტი

პროგრამა ეწოდება ...

Კომპიუტერული პროგრამა შეუძლია მართოს კომპიუტერი, თუ ეს არის ...

RAM

მოქნილი დისკზე

მყარ დისკზე

CD - დისკზე

მონაცემები არის ...

ბრძანებების თანმიმდევრობა, რომელიც კომპიუტერზე ასრულებს მონაცემთა დამუშავების დროს

ციფრული ფორმით წარმოდგენილი ინფორმაცია და კომპიუტერთან დამუშავებული ინფორმაცია

მონაცემთა სახელი და შენახული გრძელვადიანი მეხსიერებაში

ფაილი არის ...

ტექსტი დაბეჭდილი კომპიუტერზე

ციფრული ფორმით წარმოდგენილი ინფორმაცია და კომპიუტერთან დამუშავებული ინფორმაცია

პროგრამა ან მონაცემები, რომელსაც აქვს სახელი და ინახება გრძელვადიან მეხსიერებაში

მოქნილი დისკის სწრაფი ფორმატირებით ...

წმინდა დისკის დირექტორია

ყველა მონაცემები წაშლილია

დისკი დეფრაგმენტაცია შესრულებულია

დისკი ზედაპირის შემოწმება

მოქნილი დისკის სრული ფორმატირებით ...

ყველა მონაცემები წაშლილია

ხორციელდება დისკის სრული შემოწმება.

წმინდა დისკის დირექტორია

დისკი ხდება სისტემური

მრავალ დონის იერარქიულ ფაილურ სისტემაში ...

ფაილები ინახება წყნარი ფოლდერების სისტემაში.

ფაილები ინახება სისტემაში, რომელიც ხაზოვანი თანმიმდევრულია

კომპიუტერული ტექნიკის განვითარების ისტორია:

1. სახელი პირველი კომპიუტერული მოწყობილობა.
1) Abak
2) კალკულატორი
3) არითმომეტრი
4) რუსული ქულები

2. რა იდეა იყო მე -19 საუკუნის შუა რიცხვებში ინგლისური მათემატიკოსი ჩარლზ ბაბუა?
1) პროგრამული უზრუნველყოფის კონტროლირებადი მოწყობილობის შექმნის იდეა არითმეტიკული მოწყობილობის, კონტროლის მოწყობილობის, ასევე შეყვანისა და ბეჭდვის მოწყობილობაზე
2) მობილური ტელეფონის შექმნის იდეა
3) კომპიუტერის მიერ მართული რობოტების შექმნის იდეა
3. სახელი პირველი პროგრამისტი კომპიუტერული მანქანები.
1) Hell Lavley
2) სერგეი ლებედევი
3) ბილ გეითსი
4) სოფია კოვალევსკაია

4. რომელი წელიწადში და სად იყო ელექტრონული ნათურების საფუძველზე პირველი კომპიუტერი?
1) 1945, აშშ
2) 1950, სსრკ
3) 1944, ინგლისი
4) 1946, საფრანგეთი

5. რა საფუძველი იყო მესამე თაობის კომპიუტერი?
1) ინტეგრირებული სქემები
2) ნახევარგამტარები
3) ელექტრონული ნათურები
4) სუპერ მაღალი ინტეგრირებული სქემები

6. რა იყო პირველი პერსონალური კომპიუტერი?
1) Apple II
2) IBM PC
3) Dell.
4) Corvette
კომპიუტერული მოწყობილობა ......................... 15
1. კომპიუტერის ცენტრალური მოწყობილობა.
1) პროცესორი
2) სისტემის ბლოკი
3) ელექტროენერგიის მიწოდება
4) დედა დაფა
2. როგორ არის ფიზიკური ინფორმაცია კომპიუტერში ჩაწერილი და გადაცემული?
1) ფიგურები;
2) პროგრამების გამოყენებით;
3) გამოჩნდება ელექტრო სიგნალების სახით.

3. პროცესორი აწარმოებს ინფორმაციას:
1) ათობითი რიცხვი სისტემაში
2) ინგლისურ ენაზე
3) რუსულ ენაზე
4) მანქანაზე (ორობითი კოდით)
4. გამოყენებული ციფრული და ტექსტური ინფორმაცია
1) კლავიატურა
2) მაუსი
3) Trekball
4) სახელური
5. ყველაზე მნიშვნელოვანი დამახასიათებელი კოორდინაციის შეყვანის მოწყობილობები არის რეზოლუცია, რომელიც, როგორც წესი, 500 DPI (dot თითო inch - წერტილები თითო inch (1 inch \u003d 2.54 სმ), რაც იმას ნიშნავს ...
1) როდესაც მოძრავი მაუსის ერთი inch, მაუსის მაჩვენებელი მოძრაობს 500 ქულა
2) როდესაც მოძრაობს მაუსის 500 ქულა, მაუსის მაჩვენებელი მოძრაობს ერთი inch
6. სკანერი გამოიყენება ...
1) სურათების და ტექსტური დოკუმენტების შესასვლელად
2) ნახაზი მასზე სპეციალური სახელური
3) მონიტორინგის ეკრანზე კურსორის გადაადგილება
4) მიღების ჰოლოგრაფიული სურათები
ინფორმაციის გამომავალი მოწყობილობები ................. 21
1. რა ტიპის პრინტერი შეესაბამება ფინანსურ დოკუმენტებს ბეჭდვისთვის?
1) მატრიქსის პრინტერი
2) ჭავლური პრინტერი
3) ლაზერული პრინტერი
2. რა ტიპის პრინტერი მიზანშეწონილია გამოიყენოთ რეფერატების ბეჭდვა?
1) მატრიქსის პრინტერი
2) ჭავლური პრინტერი
3) ლაზერული პრინტერი

1. რა ტიპის პრინტერი მიზანშეწონილია ფოტოების გამოყენებისათვის?
1) მატრიქსის პრინტერი
2) ჭავლური პრინტერი
3) ლაზერული პრინტერი
2. კომპიუტერის სანიტარიული და ჰიგიენური მოთხოვნების შეუსრულებლობის შემთხვევაში, ადამიანის ჯანმრთელობის მავნე ზემოქმედება შესაძლებელია ...
1) მონიტორინგი ელექტრონული რადიაციული მილის შესახებ
2) მონიტორინგი თხევადი კრისტალები
4) პლაზმური პანელები
3. მოწყობილობა, რომელიც უზრუნველყოფს ინფორმაციის შესასვლელს და მოსმენას ...
1) დისკზე ან დისკზე

4. როდესაც კომპიუტერი გამორთულია, ყველა ინფორმაცია წაშლილია ...
4) RAM
5) ხისტი დისკი
6) ლაზერული დისკი
7) დიეტის
13. რომელი კომპიუტერი ინახება ინფორმაციისთვის?
1) გარე მეხსიერება;
2) მონიტორი;
3) პროცესორი;
2. ოპტიკური სიმღერები აქვს პატარა სისქე და უფრო მჭიდროდ განთავსებული ...
1) ციფრული ვიდეო ძრავა (DVD - დისკი)
2) კომპაქტ დისკზე (CD - დისკი)
3) დისკეტი
3. რომელი დისკი ინფორმაცია ინახება კონცენტრულ ბილიკებზე, რომელზეც მაგნიტიზებული და არასამთავრობო vitrate სექციები ალტერნატიული
1) დისკზე
2) კომპაქტ დისკზე
3) DVD - დისკზე

4. შეყვანის მოწყობილობებში შედის ...

1) მყარი დისკი, პროცესორი, მეხსიერების მოდულები, დედა დაფა, ფლოპი დისკი
5. გამომავალი მოწყობილობაში შედის ...
1) კლავიატურა, მაუსი, ჯოისტიკი, მსუბუქი ბუმბული, სკანერი, ციფრული კამერა, მიკროფონი
2) ხმის სვეტები, მონიტორი, პრინტერი, ყურსასმენები
3) მყარი დისკი, პროცესორი, მეხსიერების მოდულები, დედა დაფა, ფლოპი დისკი
6. პროგრამა ეწოდება ...

7. კომპიუტერულ პროგრამას შეუძლია კომპიუტერის მუშაობის მართვა, თუ ის არის ...
1) RAM- ში
2) მოქნილი დისკზე
3) მყარ დისკზე
4) CD - დისკზე
8. მონაცემები არის ...
1) ბრძანება თანმიმდევრობა, რომ კომპიუტერი ასრულებს მონაცემთა დამუშავების პროცესს
2) ციფრულ ფორმაში წარმოდგენილი ინფორმაცია და კომპიუტერზე დამუშავებული ინფორმაცია
3) მონაცემთა სახელით და ინახება გრძელვადიან მეხსიერებაში
9. ფაილი არის ...
1) ტექსტი დაბეჭდილი კომპიუტერზე
2) ციფრულ ფორმაში წარმოდგენილი ინფორმაცია და კომპიუტერზე დამუშავებული ინფორმაცია
3) პროგრამა ან მონაცემები, რომელსაც აქვს სახელი და ინახება გრძელვადიან მეხსიერებაში

10. მოქნილი დისკის სწრაფი ფორმატირებით ...
1) სუფთა დისკის დირექტორია გაწმენდილია.
2) ყველა მონაცემები წაშლილია
3) დისკის defragmentation
4) შეამოწმეთ


უნდა დაიწყოს, ჩვენ გვესმის ტერმინოლოგია.

მანქანა კოდი - კონკრეტული კომპიუტერული აპარატის (პროცესორის) ბრძანებების სისტემა, რომელიც უშუალოდ პროცესორს განიხილავს. გუნდი, როგორც წესი, არის მთელი რიცხვი, რომელიც დაწერილია პროცესორის რეგისტრაციაზე. პროცესორი ამ ნომერს ნათქვამია და ასრულებს ოპერაციას, რომელიც შეესაბამება ამ ბრძანებას. ეს წიგნში აღწერილია, თუ როგორ უნდა გახდეს პროგრამისტი.

დაბალი დონის პროგრამირების ენა (დაბალი დონის პროგრამირების ენა) არის პროგრამირების ენა, რაც შეიძლება ახლოს, რაც შეიძლება მაქსიმალურად პროგრამირებაში. მანქანის კოდებისგან განსხვავებით, დაბალი დონის ენაზე, თითოეული ბრძანება შეესაბამება არა-რიცხვს, მაგრამ ბრძანების აბრევიატურა (Mnemonic). მაგალითად, დამატება ბრძანება არის სიტყვის დამატებით შემცირება. აქედან გამომდინარე, დაბალი დონის ენის გამოყენება მნიშვნელოვნად გაამარტივებს წერილობით და კითხულობს პროგრამებს (მანქანების კოდების პროგრამასთან შედარებით). დაბალი დონის ენა არის კონკრეტული პროცესორით. მაგალითად, თუ თქვენ წერდა პროგრამა დაბალი დონის ენაზე PIC პროცესორი, დარწმუნებული უნდა იყოს, რომ ეს არ იმუშავებს AVR პროცესორთან.

მაღალი დონის პროგრამირების ენა - ეს არის პროგრამირების ენა, რაც შეიძლება ახლოს იყოს ადამიანის ენაზე (როგორც წესი, ინგლისურად, მაგრამ არსებობს პროგრამირების ენები ეროვნულ ენებზე, მაგალითად, ენა 1C ეფუძნება რუსულ ენაზე). მაღალი დონის ენა პრაქტიკულად არ არის კონკრეტულად კონკრეტული პროცესორი ან ოპერაციული სისტემა (თუ კონკრეტული დირექტივები არ გამოიყენება).

Assembler ენა - ეს არის დაბალი დონის პროგრამირების ენა, რომელზეც დაწერეთ თქვენი პროგრამები. თითოეული პროცესორი, საკუთარი შეკრებათა ენაა.

ასისტენტი - ეს არის სპეციალური პროგრამა, რომელიც აკონვერტებს (ადგენს) თქვენი პროგრამის წყაროს ტექსტებში, რომლებიც დაწერილი ასამბლეის ენაზე შესრულებულ ფაილში (ფაილი exe ან com გაფართოების). ზუსტი, მაშინ დამატებითი პროგრამების აუცილებელია შექმნას შესრულებადი ფაილი, და არა მხოლოდ Assembler. მაგრამ ამის შესახებ ...

უმეტეს შემთხვევაში, Assembler ამბობს, და გულისხმობს "Assembler ენა". ახლა თქვენ იცით, რომ ეს განსხვავებულია და ასე არ არის სწორი. მიუხედავად იმისა, რომ ყველა პროგრამისტს გესმის.

ᲛᲜᲘᲨᲕᲜᲔᲚᲝᲕᲐᲜᲘ!
მაღალი დონის ენებისგან განსხვავებით, როგორიცაა პასკალი, ბეისიკი და ა.შ., თითოეული ასამბლეის საკუთარი ასამბლეის ენაა. ეს წესი რადიკალურად გამოირჩევა მაღალი დონის ენებზე ასამბლეის ენაზე. პროგრამის (ან უბრალოდ "წყაროების" წყაროების ტექსტები (ან უბრალოდ "წყაროები") დაწერილი მაღალი დონის ენაზე, თქვენ უმეტეს შემთხვევაში შეგიძლიათ შეადგინოთ სხვადასხვა კომპონენტები სხვადასხვა პროცესორებისა და სხვადასხვა ოპერაციული სისტემებისთვის. ერთად Assembler წყაროები ამის გაკეთება ბევრად უფრო რთული. რა თქმა უნდა, ეს განსხვავება თითქმის არ არის ხელშესახები სხვადასხვა ასამბლეისთვის, რომლებიც განკუთვნილია იმავე პროცესორებისთვის. მაგრამ ამ საკითხის ფაქტია, რომ თითოეული პროცესორისთვის არის საკუთარი შეკრება და მისი ასამბლეის ენა. ამ თვალსაზრისით, ბევრად უფრო ადვილია პროგრამაში მაღალი დონის ენებზე. თუმცა, ყველა სიამოვნება უნდა გადაიხადოს. მაღალი დონის ენების შემთხვევაში, ჩვენ შეგვიძლია შევქმნათ ასეთი რამ დიდიხრიაი შესრულებადი ფაილი, ყველაზე ცუდი სიჩქარე და ა.შ.


ამ წიგნში ჩვენ მხოლოდ ისაუბრებთ პროგრამირების შესახებ Intel პროცესორებთან (ან თავსებადი) პროგრამირების შესახებ. პრაქტიკაში, შეამოწმეთ წიგნში მოცემული მაგალითები, მოგიწევთ შემდეგი პროგრამები (ან თუნდაც ზოგიერთი მათგანი):

  1. . კარგი პროგრამაგანსაკუთრებით დამწყებთათვის. მოიცავს წყარო რედაქტორს და სხვა სასარგებლო რამეს. მუშაობს Windows- ში, თუმცა პროგრამები დაწერილია DOS- ზე. სამწუხაროდ, პროგრამა ფულს ხარჯავს (მაგრამ ეს ღირს))). დეტალები, იხილეთ საიტი http://www.emu8086.com.
  2. - ტურბო Borland- ის Turbo Assembler. თქვენ შეგიძლიათ შექმნათ პროგრამების ორივე DOS და Windows. ასევე ღირს ფული და მომენტში აღარ არის მხარდაჭერილი (და Borland არ არსებობს). ზოგადად, საქმე კარგია.
  3. - Microsoft- ის Assembler (deciphered როგორც მაკრო ასისტენტი, და არა Microsoft Assembler, როგორც ბევრი uninitiated) ვფიქრობ. ალბათ, ყველაზე პოპულარული ასამბლეა Intel პროცესორებისთვის. მხარდაჭერილი ჯერჯერობით. პირობითი უფასო პროგრამა. ანუ, თუ ცალკე იყიდე, ფულს ეღირება. მაგრამ ხელმისაწვდომია უფასო MSDN აბონენტებს და შედის Microsoft- ის ვიზუალური სტუდია პროგრამული პაკეტში.
  4. - Assembler საწყისი Watcom. ისევე როგორც ყველა სხვა, აქვს უპირატესობები და უარყოფითი მხარეები.
  5. - მას აქვს მოკრძალებული შესაძლებლობები, მაგრამ აქვს დიდი პლუს - შედის სტანდარტული Windows Set. შეხედეთ მას Windows \\ ბრძანება ან Windows \\ system32 საქაღალდეში. თუ ვერ იპოვით, მაშინ სხვა Windows დირექტორია საქაღალდეები.
  6. ასევე სასურველია. დისკის კინო მენეჯერი, როგორიცაა მგლების მეთაური (VC) ან Norton მეთაური (NC), არ აფერხებს. მათი დახმარებით, თქვენ ასევე შეგიძლიათ იხილოთ თექვსმეტიანი ფაილის კოდები, მაგრამ არ შეიძლება რედაქტირებული. უფასო Hexadecimal რედაქტორები ინტერნეტში საკმაოდ ბევრი. აქ არის ერთ-ერთი მათგანი: McAfee Fileinsight v2.1. იგივე რედაქტორი შეიძლება გამოყენებულ იქნას პროგრამების წყაროს ტექსტებთან. თუმცა, მე მომწონს ეს ამის გაკეთება შემდეგ რედაქტორთან:
  7. Ტექსტის რედაქტორი. ჩვენ დაინტერესებულნი ვართ თქვენი პროგრამების წყაროს ტექსტებზე. შემიძლია რეკომენდაცია უფასო რედაქტორი PSPAD, რომელიც მხარს უჭერს ბევრ პროგრამულ ენას, მათ შორის შეკრებათა ენას.
ამ წიგნში წარმოდგენილი ყველა პროგრამა (და პროგრამის მაგალითები) შესრულებულია შესრულებისათვის. და ეს არის ეს პროგრამები, რომლებიც გამოიყენება ამ წიგნში მოცემული პროგრამების მაგალითებზე.

და მაინც - წყარო კოდი დაწერილი, მაგალითად EMU8086, იქნება ოდნავ განსხვავებული კოდი დაწერილი, მაგალითად, tasm. ეს განსხვავებები განისაზღვრება.

წიგნში ნაჩვენები პროგრამების უმრავლესობა დაწერილია. პირველი, რადგან ეს შეკრება ყველაზე პოპულარულია და კვლავ მხარს უჭერს. მეორე, იმიტომ, რომ მას გააჩნია MSDN და Microsoft- ის ვიზუალური სტუდია პროგრამული პაკეტთან. კარგად, მესამე, რადგან მე ვარ ბედნიერი მფლობელი ლიცენზირებული ასლი Masm.

თუ თქვენ უკვე გაქვთ რაიმე შეკრება, რომელიც ზემოთ ჩამოთვლილ სიაში არ შედის, თქვენ უნდა დამოუკიდებლად გაუმკლავდეთ მის სინტაქსს და წაიკითხოთ მომხმარებლის სახელმძღვანელო, ვისწავლოთ თუ როგორ უნდა ვიმუშაოთ მასთან. მაგრამ ამ წიგნში მოცემული ზოგადი რეკომენდაციები იქნება სამართლიანი ნებისმიერი (კარგად, ან თითქმის ნებისმიერი) ასამბლეისთვის.

იმისათვის, რომ მანქანა შეასრულოს პირის გუნდების ტექნიკის დონეზე, აუცილებელია გარკვეული თანმიმდევრობა გარკვეული თანმიმდევრობა ქმედებები ენაზე "ნოლიკოვის და ერთეულების". ასისტენტი ამ ბიზნესში იქნება ასამბლეის. ეს არის კომუნალური, რომელიც მუშაობს ბრძანებების გადაცემას მანქანაში. თუმცა, პროგრამის წერა ძალიან შრომატევადი და რთული პროცესია. ეს ენა არ არის განკუთვნილი ფილტვებისა და მარტივი ქმედებების შესაქმნელად. ამ დროისთვის, გამოყენებული ნებისმიერი პროგრამირების ენა (Assembler მუშაობს ჯარიმა) საშუალებას გაძლევთ დაწეროთ სპეციალური ეფექტური ამოცანები, რომლებიც მკაცრად იმოქმედებს აპარატურის ფუნქციონირებაზე. მთავარი მიზანია შექმნას მიკროკომანები და მცირე კოდები. ეს ენა უფრო მეტ შესაძლებლობებს იძლევა, მაგალითად, პასკალ ან გ.

მოკლე აღწერა Assembler Languages

ყველა პროგრამირების ენა დაყოფილია დონეზე: დაბალი და მაღალი. ასამბლეის "ოჯახის" სინტაქსური სისტემა განსხვავებულია, რომ იგი ერთდროულად აერთიანებს ყველაზე გავრცელებული და თანამედროვე ენების გარკვეულ უპირატესობას. სხვებთან ერთად, მათი ნათესავები და ის ფაქტი, რომ კომპიუტერული სისტემა შეიძლება გამოყენებულ იქნას.

შემდგენლის გამორჩეული თვისება სიმარტივე გამოიყენება. ეს განსხვავდება იმ ადამიანებისგან, რომლებიც მხოლოდ მაღალ დონეზე მუშაობენ. თუ თქვენ ითვალისწინებთ ასეთ პროგრამულ ენას, ასამბლეის ფუნქციებს ორჯერ სწრაფად და უკეთესად ფუნქციონირებს. იმისათვის, რომ დაწერა მსუბუქი პროგრამა, ძალიან ბევრი დრო არ სჭირდება.

მოკლედ ენის სტრუქტურის შესახებ

თუ ზოგადად ვსაუბრობთ ენის ფუნქციონირების მუშაობისა და სტრუქტურის შესახებ, შეგიძლიათ თქვათ, რომ მისი ბრძანებები სრულად შეესაბამება პროცესორებს. ანუ, ასამბლეის იყენებს mnemokodes, ყველაზე მოსახერხებელი პირი ჩაწერა.

სხვა პროგრამირების ენებისგან განსხვავებით, Assembler იყენებს გარკვეულ tags- ს მეხსიერების უჯრედების ჩასატარებლად. ისინი ითარგმნება ე.წ. დირექტივებში. ეს არის ნათესავი მისამართები, რომლებიც გავლენას არ ახდენენ პროცესორის საქმიანობაზე (არ თარგმნიან მანქანას ენაზე), და აუცილებელია პროგრამირების გარემოს აღიარება.

პროცესორის თითოეული ხაზისთვის, არსებობს საკუთარი სიტუაციის სწორი პროცესი, მათ შორის თარგმნილი

შეკრებათა ენა რამდენიმე სინტაქსს აქვს, რომელიც სტატიაში განიხილება.

ენის ენა

ასამბლეის ენის ყველაზე მნიშვნელოვანი და მოსახერხებელი ადაპტაცია იქნება, რომ შესაძლებელია ნებისმიერი პროგრამის ჩაწერა პროცესორისთვის, რომელიც ძალიან კომპაქტური იქნება. თუ კოდი აღმოჩნდება უზარმაზარი, მაშინ ზოგიერთი პროცესების გადამისამართება ვერძი. ამავდროულად, ისინი ყველაფერს აკეთებენ სწრაფად და ყალბი გარეშე, თუ რა თქმა უნდა, ისინი აკონტროლებენ კვალიფიციურ პროგრამას.

მძღოლები, ოპერაციული სისტემები, BIOS, Compilers, Interpreters და ა.შ. - ეს არის ყველა პროგრამა ასამბლეურ ენაზე.

დისშემბრის გამოყენებისას, რაც მანქანას აპარატისგან თარგმნისას, შესაძლებელია ადვილად გაიგოთ, თუ როგორ ან სხვა სისტემის სამუშაო სამუშაოები, მაშინაც კი, თუ არ არსებობს ახსნა. თუმცა, ეს შესაძლებელია მხოლოდ იმ შემთხვევაში, თუ პროგრამები სინათლეა. სამწუხაროდ, nontrivial კოდები, საკმაოდ რთულია გასაგები.

Cons ენები

სამწუხაროდ, ახალბედა პროგრამისტები (და ხშირად პროფესიონალები) ძნელია ენის დაშლა. Assembler მოითხოვს Დეტალური აღწერა აუცილებელი გუნდი. იმის გამო, რომ თქვენ უნდა გამოიყენოთ მანქანა ბრძანებები, არასწორი ქმედებების ალბათობა და აღსრულების სირთულე იზრდება.

იმისათვის, რომ დაწერა კი ყველაზე მეტად მარტივი პროგრამაპროგრამისტი უნდა იყოს კვალიფიციური და მისი ცოდნის დონე საკმაოდ მაღალია. საშუალო სპეციალისტი, სამწუხაროდ, ხშირად წერს ცუდი კოდები.

თუ პლატფორმა, რომლისთვისაც პროგრამა შეიქმნა განახლებული, მაშინ ყველა ბრძანება უნდა გადაწეროს ხელით - ეს მოითხოვს ენას. Assembler არ მხარს უჭერს პროცესების ფუნქციონირების ავტომატური რეგულირების ფუნქციას და შეცვალეთ ნებისმიერი ელემენტები.

ენის გუნდები

როგორც უკვე აღვნიშნეთ, თითოეულ პროცესორს აქვს საკუთარი კომპლექტი ბრძანებები. მარტივი ელემენტები, რომლებიც აღიარებულია ნებისმიერი ტიპის მიერ არის შემდეგი კოდები:


დირექტივების გამოყენება

პროგრამირების მიკროკონტროლები ენაზე (Assembler ეს საშუალებას და სრულყოფილად ასრულებს ფუნქციონირების ფუნქციონირებას) უმეტეს შემთხვევაში უმეტეს შემთხვევაში წარმატებით დასრულდა. უმჯობესია გამოიყენოთ პროცესორები შეზღუდული რესურსით. 32-ბიტიანი აღჭურვილობა ეს ენა შეესაბამება სრულყოფილად. ხშირად კოდებში შეგიძლიათ იხილოთ დირექტივები. Ეს რა არის? და რა არის გამოყენებული?

უნდა დაიწყოს, აუცილებელია ხაზგასმით აღინიშნოს ის ფაქტი, რომ დირექტივები არ გადაეცემა მანქანას. ისინი არეგულირებენ შემდგენლის შესრულებას. განსხვავებით გუნდების, ეს პარამეტრების, მქონე სხვადასხვა ფუნქციებიგანსხვავებული პროცესორების წყალობით, მაგრამ სხვა თარჯიმნის ხარჯზე. ძირითადი დირექტორებს შორის შეიძლება გამოყოფილიყო შემდეგი:


წარმოშობის სახელი

ენის ენის სახელით - "Assembler"? ჩვენ ვსაუბრობთ თარჯიმანსა და შემდგენელზე, რომელიც ასევე აწარმოებს მონაცემთა დაშიფვრის. ინგლისურენოვანი ასამბლეისგან არაფერს ნიშნავს კოლექციონერი. პროგრამა არ შეგროვდა ხელით, გამოყენებული იქნა ავტომატური სტრუქტურა. უფრო მეტიც, იმ მომენტში, მომხმარებლებს და სპეციალისტებს წაშლილია განსხვავება პირობებს შორის. ხშირად ასამბლეის ზარის პროგრამირების ენები, თუმცა ეს მხოლოდ სასარგებლოა.

ზოგადად მიღებული შეგროვების სახელით, ზოგიერთს აქვს არასწორი გადაწყვეტა, რომ არსებობს ერთი დაბალი დონე ენა (ან სტანდარტული ნორმები). იმისათვის, რომ პროგრამისტი გავიგოთ, რა სტრუქტურაა, აუცილებელია მიუთითოთ, რისთვისაც გამოიყენება პლატფორმაზე ერთი ან სხვა ასამბლეის ენა.

მაკროფსი

Assembler ენები, რომლებიც შექმნილია შედარებით ცოტა ხნის წინ macrosses. ისინი ხელს შეუწყობენ პროგრამის ორთოგრაფიულ და შესრულებას. მათი ყოფნის წყალობით, თარჯიმანი ხორციელდება წერილობითი კოდით უფრო სწრაფად. პირობითი არჩევანის შექმნისას, შეგიძლიათ დაწეროთ გუნდების უზარმაზარი ბლოკი და უფრო ადვილია მაკროსის გამოყენება. ისინი სწრაფად გადადიან ქმედებებს შორის, თუ მდგომარეობა ან შეუსრულებლობა შესრულდება.

მაკრო-ენის დირექტივების გამოყენებისას, პროგრამისტი იღებს Assembler Macros. ზოგჯერ ეს შეიძლება ფართოდ იყოს გამოყენებული, ზოგჯერ მისი ფუნქციური თვისებები მცირდება ერთი ბრძანებით. მათი ყოფნა კოდექსში ხელს უწყობს მასთან მუშაობას, უფრო გასაგებია და ვიზუალურია. თუმცა, ყურადღებით უნდა იყოს ყურადღებიანი - ზოგიერთ შემთხვევაში მაკროს, პირიქით, გააუარესებს სიტუაციას.