Assembler

**Assembler** — proqramlaşdırma dili.

## Tarixi

1952-ci ildə amerikalı qadın **Qreys Hopper** dünyada ilk mnemonik proqramlaşdırma dili olan Assembler dilini yaratdı. Onun adı "assemble" ingilis sözündən götürülmüşdür, "yığmaq", "quraşdırmaq" mənasını verir. O, özündə mnemonik komandalar sistemini (komandaların siyahısı), prosedurlar kitabxanasını və proqram mətnlərini maşın koduna çevirmək üçün xüsusi proqramı birləşdirirdi. MAşın kodunun alınmasının belə proseduru kompilyasiya ( – "tərtib etmək", "yığmaq"), onu həyata keçirən proqram isə **kompilyator** adlanır. Bunları da Qreys M. Hopper düşünüb tapmışdır.

## Ümumi məlumat
Assembler dili digər proqramlaşdırma dillərinə bənzəmir və tamamilə fərqli bir dildir.
Assembler dilinin 2-ci nəsil dil olması və 3-cü nəsil dillərin assembler üzərində inkişaf etdirilməsi qətiyyən o demək deyil ki, Assembler dili artıq köhnədir və o istifadə olunmur.

Assembler dili hal-hazırda proqramlaşdırmada çox böyük çəkiyə malikdir və onsuz müasir proqramlaşdırmanı təsəvvür eləmək kompüteri prosessorsuz təsəvvür eləmək kimi bir şeydir. Assembler dili hal-hazırda inkişaf etdirilir, yeni-yeni standartları hazırlanıb test edilir,
müxtəlif instutlar, İT şirkətlər tərəfindən.

Assembler dilinin imkanları sonsuzdur(Digər dillərinki isə sonlu).

Misal üçün ancaq Assembler dilində yazılmış proqram ilə Prosessorun xarici və daxili siqnallara cavab reaksiyasın (kəsilmələri) idarə etmək mümkündür. Ancaq assembler dilində yazılmış proqram ilə yaddaşa müraciət rejimlərin(segment:offset , paging) idarə etmək mümkündür.

Assembler hal-hazırda ancaq sistem proqramlaşdırmada istifadə olunur. Assembler dilinə aid çoxlu kitablar və məqalələr mövcuddur, elektron şəkildə və digər formalarda.

Assembler dilində sadələdirilmiş proqram :


```
.section .data

	 setir:
	.ascii  "Salam dunya  \n\0"

	.section .text

	.globl _start

	_start:

	movl $1,%ebx
	movl $4, %eax
	movl $setir, %ecx
	movl $15, %edx
	int $0x80

	movl $1, %eax
	int $0x80
```


## Assembler dilinin əlifbası
İstənilən proqramlaşdırma dilində olduğu kimi Assembler dilinin əlifbasına, translyator tərəfindən qəbul oluna bilən, xüsusi simvollar yığımı daxildir. Bu simvollar yığımı aşağıdakılardır:
# Latın əlifbasının böyük (A- Z) və kiçik (a-z) hərfləri.
# 0-dan 9 –a qədər ərəb rəqəmləri.
# Xüsusi işarələr ? @ $ &
# Boşluq işarəsi və alt xətt (_).
# Ayırıcı işarələr ; : , . [ ] ()  { } + – / * % ! " ' \ = # ^
Bunlardan başqa Assembler dilinə müəyyən açar sözləri daxildir ki, onlar da proqramda olduğu kimi işlədilirlər.

## Assembler dilinin konstantları
Assembler dilində müxtəlif tip konstantalardan (sabitlərdən) istifadə olunur:
1. Üç say sistemindən birində verilmiş tam ədədlər:
* İkilik konstantalar- bunlar B və b hərfləri ilə qurtaran 0 və ya 1 ikilik ədədlər ardıcıllığıdır. Məsələn, 11000111b və ya 0001000B (ikilik sabitin təsviri).
* Onluq konstantalar-bunlar D və ya d hərfləri ilə qurtaran 0- dan 9–a qədər onluq rəqəmlər ardıcıllığıdır. Məsələn: 234,234D, 546d. Sadəlik üçün D və ya d simvollarından istifadə etməmək də olar.
* Onaltılıq konstantalar-bunlar H və ya h hərfləri ilə qurtaran 0-dan F–ə qədər onaltılıq rəqəmlər ardıcıllığıdır (0123456789ABCDEF).
Məsələn: 0BAH, 06AEh.
Birinci simvol mütləq 0-dan 9–a qədər olan rəqəmlərdən birisi olmalıdır ki, o identifikatordan fərqlənsin. Məsələn: 0BAH, 0A6AEh yazılışındakı birinci 0 simvolu verilənlərin identifikotor deyil, onaltılıq ədəd olduğunu göstərir.
Qeyd edək ki, mənfi onluq ədədlər proqramda adi qaydada (məsələn –56), mənfi ikilik və onaltılıq ədədlər isə tamamlayıcı kodda göstərilir.
Məsələn: – 89 ədədi tamalayıcı kodda 10100111b və 0A7h kimi yazılır.

2. Simvol və ya sətr (literal və ya sətr) konstantları – apostrof və ya dırnaq işarələri arasında yazılan istənilən simvollar ardıcıllığıdır.

3. Sürüşkən nöqtəli ədədlər. Intel prosessorlarında sürüşkən nöqtəli bütün əməliyyatlar, özünün məxsusi registrləri və əmrləri olan xüsusi FPU (Floating Point Unit) qurğusunun köməyi ilə aparılır. Bu qurğu əsas prosessor ilə aftonom işləyə bilir və sistemə (8087,80287,80387,80487) həmprosessor kimi qoşulur. 80486DX – dən başlayaraq bütün modellərdə həmprosessorlar əsas prosessorla birlikdə bir kristalda yerləşdirilirlər.

## Mənbə