Sesgo (ciencias de la computación)

En informática , un desplazamiento dentro de una matriz u otro objeto de estructura de datos es un número entero que indica la distancia (desplazamiento) entre el inicio del objeto y un elemento o punto dado, presumiblemente dentro del mismo objeto [1] . El concepto de distancia solo es válido si todos los elementos de un objeto tienen el mismo tamaño (generalmente dado en bytes o "palabras" (un conjunto ordenado de bytes o bits )).

Por ejemplo, en una matriz Aque contiene "abcdef", el cuarto elemento que contiene el carácter 'd'tiene un desplazamiento de tres desde el inicio de A.

En lenguaje ensamblador

En ingeniería informática y programación de bajo nivel (como el lenguaje ensamblador ), el desplazamiento generalmente se refiere a la cantidad de direcciones que deben agregarse a una dirección base para obtener una dirección absoluta particular . Este valor usa solo el bloque de dirección base, normalmente un byte de 8 bits, para especificar el tamaño del desplazamiento. En este contexto, el desplazamiento a veces se denomina "dirección relativa".

En las instrucciones de IBM System/360 , el desplazamiento de 12 bits incrustado en ciertas instrucciones contiene un rango de 0 a 4096 bytes. Por ejemplo, en la instrucción de salto incondicional (X'47F0Fxxx'), el desplazamiento hexadecimal de 12 bits "xxx" proporcionó un desplazamiento de bytes desde el registro base (15) hasta la rama [2] . Un desplazamiento impar dará como resultado una verificación del programa (a menos que el registro base contenga una dirección impar), ya que las instrucciones deben estar alineadas en límites de media palabra para ejecutarse sin interrupción de software o hardware [3] .

El ejemplo anterior describe una forma indirecta de acceder a una ubicación de memoria en formato de segmento: desplazamiento. Por ejemplo, supongamos que queremos referirnos a la ubicación de memoria 0xF867. Una forma de lograr esto es definir primero un segmento con una dirección de inicio de 0xF000 y luego definir un desplazamiento de 0x0867. Además, también se permite desplazar el segmento hexadecimal para llegar a la dirección de memoria absoluta final. Cabe señalar aquí que la dirección absoluta final se puede alcanzar de diferentes maneras.

Notas

  1. Dandamudi, Shivarama P., 1955-. Introducción a la programación en lenguaje ensamblador: para procesadores Pentium y RISC . — 2ª ed. - Nueva York: Springer, 2005. - P. 76. - 1 recurso en línea (xxiii, 690 páginas) p. — ISBN 0387271554 .
  2. Centro de conocimientos de IBM  . www.ibm.com. Recuperado: 8 de enero de 2018.
  3. Transferencia de datos única (LDR, STR) . www.gaw.ru Recuperado: 8 de enero de 2018.