Em ciência da computação, um offset (em português, deslocamento) dentro de uma matriz ou outra estrutura de dados é um inteiro indicando a distância (deslocamento) entre o começo do objeto e um dado elemento ou ponto, presumivelmente dentro do mesmo objeto.
O conceito de uma distância é válido apenas se todos os elementos do objeto forem do mesmo tamanho (normalmente dados em bytes ou palavras).
Por exemplo, em A
como uma matriz de caracteres contendo "abcdef"
, o quarto elemento contendo o caractere 'd'
tem um deslocamento de três desde o início de A
.
Em engenharia da computação e programação de baixo nível (como linguagem de montagem), um offset geralmente indica o número de locais de endereço adicionados a um endereço de base para chegar a um endereço absoluto específico. Nesse sentido (original) de deslocamento, apenas a unidade básica de endereço, geralmente o byte de 8 bits, é usado para especificar o tamanho do deslocamento. Neste contexto, um deslocamento é às vezes chamado de endereço relativo.
Nas instruções do IBM System/360, um deslocamento de 12 bits incorporado em determinadas instruções forneceu um intervalo entre 0 e 4096 bytes. Por exemplo, dentro de uma instrução de ramificação incondicional (X'47F0Fxxx'), o deslocamento hexadecimal de xxx de 12 bits forneceu o deslocamento de bytes do registrador de base (15) para ramificar. Um offset ímpar causaria uma checagem de programa (a menos que o próprio registrador base também contivesse um endereço ímpar) - já que instruções tinham que ser alinhadas em limites de meia-palavra para executar sem uma interrupção de programa ou hardware.
O exemplo anterior descreve uma maneira indireta de endereçar para um local de memória no formato de segmento:deslocamento. Por exemplo, suponha que queremos nos referir à localização da memória 0xF867. Uma maneira de conseguir isso é definir primeiro um segmento com o endereço inicial 0xF000 e, em seguida, definir um deslocamento de 0x0867. Além disso, também podemos mudar o segmento hexadecimal para alcançar o endereço de memória absoluto final. Uma coisa a notar aqui é que podemos alcançar nosso endereço absoluto final de várias maneiras.
This article uses material from the Wikipedia Português article Offset (ciência da computação), which is released under the Creative Commons Attribution-ShareAlike 3.0 license ("CC BY-SA 3.0"); additional terms may apply (view authors). Conteúdo disponibilizado nos termos da CC BY-SA 4.0, salvo indicação em contrário. Images, videos and audio are available under their respective licenses.
®Wikipedia is a registered trademark of the Wiki Foundation, Inc. Wiki Português (DUHOCTRUNGQUOC.VN) is an independent company and has no affiliation with Wiki Foundation.