13
REGISTADORES GENÉRICOS E DE SEGMENTO LCC2 - 2014

Aula 4 a linguagem assembly

Embed Size (px)

Citation preview

Page 1: Aula 4   a linguagem assembly

REGISTADORES GENÉRICOS E DE

SEGMENTO

LCC2 - 2014

Page 2: Aula 4   a linguagem assembly

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

Page 3: Aula 4   a linguagem assembly

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

Page 4: Aula 4   a linguagem assembly

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

Page 5: Aula 4   a linguagem assembly

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

Page 6: Aula 4   a linguagem assembly

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

Page 7: Aula 4   a linguagem assembly

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

Page 8: Aula 4   a linguagem assembly

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

Page 9: Aula 4   a linguagem assembly

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

Page 10: Aula 4   a linguagem assembly

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

Page 11: Aula 4   a linguagem assembly

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

Page 12: Aula 4   a linguagem assembly

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.

Page 13: Aula 4   a linguagem assembly

A LINGUAGEM ASSEMBLY

LCC2 - 2014