Post on 09-Aug-2015
REGISTADORES GENÉRICOS E DE
SEGMENTO
LCC2 - 2014
Linguagem de programação de baixo nível
29-03-2014 Prof. Nobre - Programação e Linguagem Máquina 2
BUS
S
Y
S
T
E
M
ESTRUTURA DO COMPUTADOR
RAM
CPU
PERIFÉRICOS
Interliga vários componentes do computador
CPU – Coração da máquina onde ocorre a maior
parte da computação
RAM – Local onde são carregados os
programadas com o objectivo de serem
executados
29-03-2014 Prof. Nobre - Programação e Linguagem Máquina 3
29-03-2014 Prof. Nobre - Programação e Linguagem Máquina 4
00010111 00010111 00010111 00010111
Double Word
Word
Byte
Nibble
High Bit Low Bit Bit
Convertor – conversor de números entre os
vários sistemas (binário, octal, decimal,
hexadecimal) – incluindo caracteres ASCII.
Hexadecimal (FB) binário (11111011)
Calculator – efectua cálculos de expressões
numéricas, inclusive entre diferentes
sistemas.
0FFFFh * 10h * 0FFFFh = 1114095 (byte) -17
(word)
29-03-2014 Prof. Nobre - Programação e Linguagem Máquina 5
AX Acumulador (divide-se em AH / AL)
BX Registador de endereçamento (divide-se em BH / BL)
CX Contador (divide-se em CH / CL)
DX Registador de dados (divide-se em DH / DL)
SI Registador identificador fonte (source)
DI Registador identificar de destino
BP Apontador base
SP Apontador de pilha (stack)
29-03-2014 Prof. Nobre - Programação e Linguagem Máquina 6
SI e DI facilitam a movimentação de dados
sequenciados entre posições fonte e destino
AX Acumulador usado em operações aritméticas e logicas;
instruções de entrada e saída, conversão, etc.
BX Registador de endereçamento de Base, usado para
referenciar posições de memória. Armazena o endereço base
de uma tabela ou vetor de dados, a partir da qual outras
posições são obtidas adicionando-se um valor de
deslocamento (offset).
CX Usado para operações iterativas e repetitivas para contar
bits, bytes ou palavras.
DX Usado em operações de armazenamento de operações.
SI Em conjunto com o DS é usado como registador de índice em
alguns modos de endereçamento indireto.
DI É similar ao SI atuando em conjunto com o ES.
BP Em conjunto com o SS permite o acesso a dados dentro do
segmento de pilha.
SP Usado em conjunto com o SS, para aceder a pilha de
memória. Aponta para o topo da pilha.
29-03-2014 Prof. Nobre - Programação e Linguagem Máquina 7
O propósito principal de um registador é o de
armazenar um número (variável).
O programador é quem determina a
utilização dos registadores
Os registadores são mais rápidos do que a
memória por se encontrarem dentro da CPU
Aceder a uma localização de memória requer a
utilização do System BUS, sendo no entanto mais
demorado.
Local interessante para armazenamento
temporário de variáveis para cálculos.
29-03-2014 Prof. Nobre - Programação e Linguagem Máquina 8
CS Aponta para o segmento que contém o programa atual
DS Aponta geralmente para o segmento onde as variáveis
serão definidas
ES Segmento extra. De utilização opcional para o
programador.
SS Aponta para o segmento que contém a pilha (stack).
29-03-2014 Prof. Nobre - Programação e Linguagem Máquina 9
O propósito principal dos registadores de
segmento é o de apontar a blocos de
memória acessíveis.
Embora seja possível armazenar dados nos
registadores de segmentos, não é
aconselhável.
Os registadores de segmento, trabalham em
conjunto com o principal propósito de aceder
a qualquer valor de memória.
29-03-2014 Prof. Nobre - Programação e Linguagem Máquina 10
Para aceder a memória no endereço físico
12345h dever-se-á alocar
DS = 1230h e SI = 0045h
A CPU multiplica o registador de segmento por
10h, adicionando-o o registador principal.
1230h * 10h + 45h = 2345h
O endereço formado por 2 registadores
chama-se endereço efetivo.
Por regra, BX, SI e DI trabalham com o
endereço registador DS.
O BP e o SP trabalham com o SS.
29-03-2014 Prof. Nobre - Programação e Linguagem Máquina 11
IP – Instruction Pointer (Apontador de instruções)
Trabalha com o CS e aponta para a instrução que se
encontra em execução.
Registador Flags ou sinalizadores
Determina o estado corrente do processador durante
a execução de cada instrução
Modificada automaticamente pela CPU após as
operações matemáticas, permitindo determinar
condições para transferir controlos para outras partes
do programa.
29-03-2014 Prof. Nobre - Programação e Linguagem Máquina 12
Por regra, estes controladores não são acedidos diretamente.
A LINGUAGEM ASSEMBLY
LCC2 - 2014