Offset (computer science)
کمپیوٹر سائنس میں، کسی صف یا دیگر ڈیٹا اسٹرکچر آبجیکٹ کے اندر ایک آفسیٹ ایک عدد ہے جو آبجیکٹ کے آغاز اور کسی دیئے گئے عنصر یا نقطہ کے درمیان فاصلے (نقل مکانی) کی نشاندہی کرتا ہے، غالبا اسی آبجیکٹ کے اندر۔ فاصلے کا تصور صرف اس صورت میں درست ہے جب شے کے تمام عناصر ایک ہی سائز کے ہوں (عام طور پر بائٹس یا الفاظ میں دیے جاتے ہیں)۔ مثال کے طور پر، اگر اے "اے بی سی ڈی ایف" پر مشتمل حروف کی ایک صف ہے، تو 'ڈی' کردار پر مشتمل چوتھے عنصر میں اے کے آغاز سے تین کا آفسیٹ ہوتا ہے۔ اسمبلی زبان میں کمپیوٹر انجینئرنگ اور نچلے درجے کے پروگرامنگ (جیسے اسمبلی زبان) میں، آفسیٹ عام طور پر کسی مخصوص مطلق پتے تک پہنچنے کے لیے بنیادی پتے میں ایڈریس کے مقامات کی تعداد کو ظاہر کرتا ہے۔ آفسیٹ کے اس (اصل) معنی میں، صرف بنیادی ایڈریس یونٹ، عام طور پر 8 بٹ بائٹ، آفسیٹ کے سائز کی وضاحت کے لیے استعمال ہوتا ہے۔ اس تناظر میں آفسیٹ کو بعض اوقات رشتہ دار پتہ کہا جاتا ہے۔ آئی بی ایم سسٹم/360 ہدایات میں، بعض ہدایات کے اندر سرایت شدہ 12 بٹ آفسیٹ نے 0 اور 4096 بائٹس کے درمیان کی حد فراہم کی۔ مثال کے طور پر، ایک غیر مشروط برانچ انسٹرکشن (X '47F0FXX') کے اندر، XXX 12 بٹ ہیکساڈیسیمل آفسیٹ نے بیس رجسٹر (15) سے برانچ کو بائٹ آفسیٹ فراہم کیا۔ ایک عجیب آفسیٹ پروگرام چیک کا سبب بنتا ہے (جب تک کہ بیس رجسٹر میں خود بھی ایک عجیب پتہ نہ ہو)-کیونکہ ہدایات کو پروگرام یا ہارڈ ویئر کی رکاوٹ کے بغیر انجام دینے کے لیے آدھے لفظ کی حدود پر سیدھا کرنا پڑتا تھا۔ پچھلی مثال سیگمنٹ: آفسیٹ کی شکل میں میموری لوکیشن سے خطاب کرنے کا بالواسطہ طریقہ بیان کرتی ہے۔ مثال کے طور پر، فرض کریں کہ ہم میموری لوکیشن 0xF867 کا حوالہ دینا چاہتے ہیں۔ اس کو پورا کرنے کا ایک طریقہ یہ ہے کہ پہلے ابتدائی ایڈریس 0xF000 کے ساتھ کسی حصے کی وضاحت کی جائے، اور پھر 0x0867 کے آفسیٹ کی وضاحت کی جائے۔ مزید برآں، ہمیں حتمی مطلق میموری ایڈریس تک پہنچنے کے لیے ہیکساڈیسیمل حصے کو منتقل کرنے کی بھی اجازت ہے۔ یہاں ایک بات قابل توجہ ہے کہ ہم اپنے حتمی مطلق پتے تک کئی طریقوں سے پہنچ سکتے ہیں۔ ایک آفسیٹ ہمیشہ ماڈیول کے بیس ایڈریس سے متعلق نہیں ہوتا ہے، مثال کے طور پر: اگر آپ کے پاس کلاس (جی یو آئی) ہے اور آپ اس کلاس کی "کلر" خاصیت کو دوبارہ حاصل کرنا چاہتے ہیں، تو آفسیٹ 0x0100 ہو سکتا ہے، لیکن اس آفسیٹ کو کلاس کے آفسیٹ میں ہی شامل کرنا ہوگا، بیس ایڈریس میں نہیں۔ اگر کلاس کا آفسیٹ 0xFF881 ہے اور بیس ایڈریس 0x0A100 ہے، تو "کلر" ایٹریبیوٹ کو بازیافت کرنے کے لیے دونوں آفسیٹ بیس ایڈریس میں شامل کیے جاتے ہیں۔ 0x0A100 (بیس) + 0xFF881 (کلاس) + 0x0100 (خاصیت)۔ بالآخر خاصیت کا پتہ 0x109A81 ہوگا۔ آفسیٹس کا مجموعہ جو ایک ساتھ شامل کیا جاتا ہے اسے کمپیوٹر پروگرامنگ کہا جاتا ہے۔ ارے انڈیکس کمپیوٹر میموری بھی دیکھیں