Ofset (bilgisayar bilimi) - Offset (computer science)

Olarak bilgisayar biliminin , bir ofset bir mesafede olan bir dizi ya da başka bir veri yapısı bir amacı, bir tam sayı , muhtemelen aynı nesnenin nesne başında ve belirli bir eleman ya da nokta arasındaki mesafe (yer değiştirme), göstermektedir. Mesafe kavramı, yalnızca nesnenin tüm öğeleri aynı boyutta ise (tipik olarak bayt veya sözcüklerle verilir ) geçerlidir.

Örneğin, içeren A bir karakter dizisi olarak , karakteri içeren "abcdef" dördüncü öğenin 'd' başlangıcından itibaren üç ofseti vardır A .

Assembly dilinde

Olarak bilgisayar mühendisliği ve düşük seviyeli programlama (örneğin, montaj dili ), bir ofset genellikle eklenen adres yerlerinin sayısını gösterir taban adresi belirli bir almak için mutlak adresi . Ofsetin bu (orijinal) anlamında, ofsetin boyutunu belirtmek için yalnızca temel adres birimi, genellikle 8 bitlik bayt kullanılır. Bu bağlamda bir ofset bazen göreli adres olarak adlandırılır .

Gelen IBM System / 360 , belirli talimatların 0 ile 4096 baytlık bir dizi Resim içinde talimatlar, bir 12-bit gömülü ofset. Örneğin, koşulsuz bir dallanma talimatı (X'47F0Fxxx ') içinde, xxx 12bit onaltılık uzaklık, temel kayıttan (15) dallanmaya bayt uzaklığını sağladı. Garip bir sapma, bir program kontrolüne neden olur (temel kaydın kendisi de tek bir adres içermediği sürece) - çünkü komutların, bir program veya donanım kesintisi olmadan yürütülmesi için yarım kelime sınırları üzerinde hizalanması gerekir .

Önceki örnek, segment: offset formatında bir bellek konumuna adreslemenin dolaylı bir yolunu açıklamaktadır. Örneğin, 0xF867 bellek konumuna başvurmak istediğimizi varsayalım. Bunu gerçekleştirmenin bir yolu, ilk olarak 0xF000 başlangıç ​​adresli bir segment tanımlamak ve ardından 0x0867 ofset tanımlamaktır. Ayrıca, nihai mutlak bellek adresine ulaşmak için onaltılık segmenti kaydırmamıza da izin verilir. Burada dikkat edilmesi gereken bir nokta, nihai mutlak adresimize birçok şekilde ulaşabileceğimizdir.