Bias (informatica)

În informatică , un decalaj într -o matrice sau alt obiect cu structură de date este un număr întreg care indică distanța (decalajul) dintre începutul obiectului și un anumit element sau punct, probabil în cadrul aceluiași obiect [1] . Conceptul de distanță este valabil numai dacă toate elementele unui obiect au aceeași dimensiune (de obicei date în octeți sau „cuvinte” (un set ordonat de octeți sau biți )).

De exemplu, într-o matrice Acare conține "abcdef", al patrulea element care conține caracterul 'd'are un offset de trei de la începutul lui A.

În limbaj de asamblare

În inginerie informatică și programare de nivel scăzut (cum ar fi limbajul de asamblare ), offset se referă de obicei la numărul de adrese care trebuie adăugate la o adresă de bază pentru a obține o anumită adresă absolută . Această valoare folosește numai blocul de adrese de bază, de obicei un octet de 8 biți, pentru a specifica dimensiunea offset-ului. În acest context, offset-ul este uneori denumit „adresă relativă”.

În instrucțiunile IBM System/360 , offset-ul de 12 biți încorporat în anumite instrucțiuni conține un interval de la 0 la 4096 de octeți. De exemplu, în instrucțiunea de salt necondiționat (X'47F0Fxxx'), offset-ul hexazecimal de 12 biți „xxx” a furnizat un decalaj de octeți de la registrul de bază (15) la ramura [2] . O compensare impară va avea ca rezultat o verificare a programului (cu excepția cazului în care registrul de bază conține o adresă impară), deoarece instrucțiunile trebuie aliniate pe granițele de jumătate de cuvânt pentru a fi executate fără întreruperi software sau hardware [3] .

Exemplul anterior descrie o modalitate indirectă de a accesa o locație de memorie în format de segment: offset. De exemplu, să presupunem că vrem să ne referim la locația de memorie 0xF867. O modalitate de a realiza acest lucru este definirea mai întâi a unui segment cu o adresă de început de 0xF000 și apoi definirea unui offset de 0x0867. În plus, este permisă deplasarea segmentului hexagonal pentru a ajunge la adresa finală de memorie absolută. Trebuie remarcat aici că adresa absolută finală poate fi atinsă în diferite moduri.

Note

  1. Dandamudi, Sivarama P., 1955-. Introducere în programarea în limbaj de asamblare: pentru procesoare Pentium și RISC . — Ed. a II-a. - New York: Springer, 2005. - P. 76. - 1 resursă online (xxiii, 690 pagini) p. — ISBN 0387271554 .
  2. Centrul de cunoștințe IBM  . www.ibm.com. Preluat: 8 ianuarie 2018.
  3. Transfer unic de date (LDR, STR) . www.gaw.ru Preluat: 8 ianuarie 2018.