Բացարձակ կոդ

Վիքիպեդիայից՝ ազատ հանրագիտարանից
Jump to navigation Jump to search

Բացարձակ կոդը ( absolute code) ծրագրային կոդ է՝ անհրաժեշտ անմիջապես պրոցեսսորի կատարման համար, այսինքն կարիք չունի լրացուցիչ մշակման (օրինակ՝ կոդի տարբեր մասի հղումների թուլյատրումը կամ հիշողության հասցեների կապումը հիմնականում բեռնիչի կողմից կատարվող)։ Բացարձակ կոդի օրինակներ են հանդիսանում կատարվող ֆայլերը .COM ֆորմատով կամ ОС բեռնիչը։ Հաճախ բացարձակ կոդը հասկացվում է ավելի նեղ իմաստով ինչպես անկախ-դիրքային կոդը (Այսինքն կոդ՝ կապված հիշողության որոշակի հասցեների հետ )։

Անկախ-դիրքային կոդ[խմբագրել | խմբագրել կոդը]

Անկախ-դիրքային կոդը (անգլ.՝ position-independent code) ծրագիր, որը կարող է փոխադրվել հիշողության ցանկացած հատված, քանի որ բոլոր հիշողության բջիջների հղումները իրենում հարաբերական են։ Այդպիսի ծրագիրը ցանկացած ժամանակ կարող է տեղափոխվել հիշողության այլ հատված, ի տարբերություն փոխադրելի ծրագրերի, որը թեև կարող է բեռնված լինել հիշողության ցանկացած հատված, բայց բեռնելուց հետո պետք է մնա նույն տեղում։

Անկախ-դիրքային կոդի ստեղծման հնարավորությունը կախված է ճարտարապետությունից (architecture) և նշանակային պլատֆորմի հրամանների համակարգից։ Օրինակ, եթե հրամանների համակարգում բոլոր անցումների հրամաններում պետք է նշվեն բացարձակ հասցեներ, ապա անցումներ պահաջող այդ կոդը գործնականում անհնար է դարձնել անկախ-դիրքային։ x86 ճարտարապետությունում տվյալների հետ աշխատող անմիջական հասցեավորված հրամաններում ներկայացված է միայն բացարձակ հասցեներ, բայց քանի որ տվյալների հասցեները համարվում են սեգմենտային ռեգիստրի համեմատական, որը կարող է փոխվել ցանկացած ժամանակ, դա թույլ է տալիս տվյալների համար ստեղծել անկախ-դիրքային կոդ՝ իր հիշողության բջիջներով։ Բացի դրանից որոշ հրամանների հավաքածուներ կարող են հանվել ինքնամոդիֆիկացված կոդի (Self-modifying code ) կամ ոչ տվյալ հրամանների հաջորդականության օգնությամբ։

Հղումներ[խմբագրել | խմբագրել կոդը]