Ofset (počítačová věda) - Offset (computer science)

V počítačové vědě je offsetem v poli nebo jiném objektu datové struktury celé číslo označující vzdálenost (posunutí) mezi začátkem objektu a daným prvkem nebo bodem, pravděpodobně ve stejném objektu. Koncept vzdálenosti je platný pouze v případě, že všechny prvky objektu mají stejnou velikost (obvykle se uvádí v bajtech nebo slovech ).

Například A jako pole znaků, které obsahuje "abcdef" , má čtvrtý prvek obsahující znak 'd' posun tři od začátku A .

V montážním jazyce

V počítačovém inženýrství a programování na nízké úrovni (například v assembleru ) offset obvykle označuje počet adresních míst přidaných k základní adrese za účelem získání konkrétní absolutní adresy . V tomto (původním) smyslu offsetu se k určení velikosti offsetu používá pouze základní adresová jednotka, obvykle 8bitový bajt . V této souvislosti se offset někdy nazývá relativní adresa .

V pokynech IBM System / 360 poskytoval 12bitový offset vložený do určitých pokynů rozsah mezi 0 a 4096 bajty. Například v rámci instrukce bezpodmínečného větvení (X'47F0Fxxx ') xxx 12bitový hexadecimální posun poskytl posunutí bajtu od základního registru (15) k větvi. Zvláštní lichý posun by způsobil kontrolu programu (pokud samotný základní registr také neobsahoval lichou adresu) - protože instrukce musely být zarovnány na hranici polovičních slov, aby byly provedeny bez přerušení programu nebo hardwaru .

Předchozí příklad popisuje nepřímý způsob adresování do paměťového místa ve formátu segmentu: offset. Předpokládejme například, že chceme odkazovat na umístění paměti 0xF867. Jedním ze způsobů, jak toho lze dosáhnout, je nejprve definovat segment s počáteční adresou 0xF000 a poté definovat posun 0x0867. Dále máme také povoleno posunout hexadecimální segment, abychom dosáhli konečné adresy absolutní paměti. Zde je třeba poznamenat, že naší konečné absolutní adresy můžeme dosáhnout mnoha způsoby.