Kompilyatsiya jarayoni

C tilidagi kompilyatsiya jarayoni ko’p bosqichli protsedura bo’lib, u sizning C manba kodingizni bajariladigan dasturga aylantiradi.

Keling, ushbu bosqichlarni oldingi darsimizda tanishgan “Salom, dunyo!” dasturi misolida ko’rib chiqamiz:

1.Preprocessing (Oldindan ishlov berish)

Ushbu jarayonda #include <stdio.h> direktivasi stdio.h sarlavha fayli tarkibini dasturga qo’shadi.

Dasturimizdagi printf(“Salom, dunyo!\n”);  funksiyasi ushbu sarlavha fayli ichida e’lon qilingan.
Ushbu jarayonda dasturdagi // beligisi bilan boshlanuvchi izohlar tashlab ketiladi. Ular kodning bajarilishiga hech qanday ta’sir ko’rsatmaydi.

2. Compilation (Kompilyatsiya)

Kompilyatsiya bosqichi, oldindan ishlov berilgan C kodimizni assembly kodiga o’tkazib beradi. Ushbu kod hali ham inson tomonidan o’qilishi mumkin, ammo mashina kodiga yaqinroq. Bizning “Salom, dunyo!” dasturda kompilyator funksiya chaqiruvlari va operatsiyalarni assembly ko’rsatmalariga aylantiradi. 

Ushbu dasturimiz uchun juda ham soddalashtirilgan assembly kodi quyidagi ko’rinishda bo’lishi mumkin:

section .data
msg db 'Salom, dunyo!',0

section .text
global _start

_start:
    mov edx, 13
    mov ecx, msg
    mov ebx, 1
    mov eax, 4
    int 0x80

    mov eax, 1
    int 0x80

3. Assembly (Yig’ish)

Ushbu bosqich yuqorida keltirilgan assembly kodini mashina kodiga (ikkilik format) aylantiradi. Har bir assembly instruksiyasi CPU(markaziy prosessor) arxitekturasiga xos bo’lgan mashina tili ko’rsatmasiga tarjima qilinadi. Bosqich yakunida, mashina kodini o’z ichiga olgan ob’ekt faylini ishlab chiqaradi.

4. Linking (Ulanish)

Nihoyat, ulanish bosqichi bizning ob’ekt faylimizni oladi va yakuniy bajariladigan faylni yaratish uchun uni standart kutubxonadagi ob’ekt fayllari (masalan, printf uchun kod) bilan birlashtiradi. Ushbu bosqich printf va biz foydalangan boshqa kutubxona funksiyalarini topadi va asosiy dasturga bog’laydi. Bosqich yakunida dastur bajariladigan fayl ishlab chiqariladi.

Eslatma
Haqiqiy yig’ish va mashina kodi arxitektura va ishlatiladigan maxsus kompilyatorga qarab o’zgaradi.
Scroll to Top

Akkauntizga kirish uchun e-mail va parolingizni kiriting