ასემბლი: განსხვავება გადახედვებს შორის

შევიტანე გრამატიკული და ტიპოგრაფიული ცვლილებები. ასევე დავამატე 1 ბმული.
(შევიტანე გრამატიკული და ტიპოგრაფიული ცვლილებები. ასევე დავამატე 1 ბმული.)
'''ასემბლი''' (ზოგჯერ ''ასემბლერი''; [[ინგ.]] assembly language) — [[დაბალი დონის პროგრამირების ენა]]. იგი აღიქვამს [[მანქანური კოდი|მანქანურ კოდს]] ადამიანისთვის გასაგებად. [[მანქანური კოდი|მანქანური კოდის]] [[ბიტი|ბიტების]] კომბინაციიდან არიან შედგენილი «მნემონიკები» (ბერძნულად მნემონიკოს, რომელიც ეხება მეხსიერებას) [[პროგრამული კოდის]] ადვილად დასამახსოვრებად. ასემბლერს (ამ შემთხვევაში პროგრამა) ეს მნემონიკები გადაჰყავს [[მანქანური კოდი|მანქანურ კოდში]] რომ შექმნას გაშვებადი ფაილი ანუ [[კომპიუტერული პროგრამა]].
 
პირველ [[კომპიუტერი|კომპიუტერებში]], რასაც ასემლერიასემბლერი აკეთებს, კეთდებოდა ხელით პროგრამისტის მიერ. დღესდღეობით გამოირჩევა ორი ტიპის სინტაქსის მქონე ასემბლერები: Intel და AT&T.
 
== უპირატესობები და ნაკლოვანობები ==
* დიზასემბლერის დახმარებით შესაძლებელია ფაილის პროგრამული კოდის ანალიზი და შეცვლა
 
'''ნაკლოვანებები'''
'''ნაკლოვანობები'''
* ასემბლერზე პროგრამირება გაცილებით რთულია ვიდრე მაღალი დონის ენებზე. საჭიროა პროგრამისტის მაღალი კვალიფიკაცია. მეტ დროს მოითხოვს შეცდომების პოვნა და გასწორება.
* როგორც წესი საშუალო დონის პროგრამისტის მიერ დაწერილი კოდი ყოველთვის უფრო დიდი აღმოჩნდება ვიდრე იმავე პროგრამსიტისპროგრამისტის მიერ დაწერილი კოდი მაღალი დონი პროგრამირების ენაზე (თუნდაც C)
* ასემბლერებს ახასიათებთ ბიბლიოთეკების მცირე რაოდენობა
* კოდი "პირდაპირ კავშირშია" პროცესორთან, შესაბამისად ერთი პლატფორმისთვის შექმნილი პროგრამა სხვა პლატფორმაზე ვერ იმუშავებს
* ოპერაციული სისტემების ბირთვები
* პროგრამირების ენები
იშვიათად, მაგრამ როდესაც მაგალითად კომპიუტერული თამაში ბევრ რესურსს მოითხოვს, პროგრამის აჩქარების მიზნით შესაძლებელია ასემბლერით შეიქმნას კოდის გარკვეული ფრაგმენტი (მაგალითად C ენას აქვს _asm{} დირექტივა)
 
== სინტაქსი ==
* მონაცემების მართვა, გადამისამართება (Mov)
* არითმეტიკული ოპერაციები (add, sub, imul, div, inc, dec)
* ლოგილურილოგიკური ოპერაციები (or, xor, and)
* კოდის შესრულების მართვა, უპირობო და პირობითი გადასვლები (jmp, loop, jnz, jne, jng...)
* სისტემური ფუნქციები (int)
FASM - Flat Assembler - ასემბლერის ნაირსახეობა, აქვს მრავალი დირექტივა. ამ ასემბლერით შეიქმნა პროგრამირების ენა Pascal, ასევე ოპერაციული სისტემები ManuetOS, ColibriOS
 
[[NASM]] - Netwide Assembler - კიდევ ერთი ასემბლერი, აღსანიშნავია, რომ ბიბლიოთეკები (.inc, .lib სახით) არ გააჩნია, ძირითადად ლინუქსისთვის გამოიყენება
 
YASM - NASM-ის "განახლებული" ვარიანტი.
63

რედაქტირება