Carregar apresentação
A apresentação está carregando. Por favor, espere
1
Arquitetura de Computadores
Nível da linguagem de montagem III
2
Introdução básica a linguagem Assembly
Será apresentado nesta aula uma introdução ao assembly do processador 8088. Tal assembly é baseado no Microsoft MASM, porém possui algumas modificações existentes no assembly utilizado nos SOs baseados no UNIX. Para podermos entender a sintaxe da linguagem, serão apresentados os seguintes aspectos do MASM: Organização da memória; Registradores acessíveis; Modos de endereçamento; Instruções; Pseudo-instruções;
3
Organização da memória
A memória do 8088 consiste apenas em um vetor de bytes de 8 bits endereçáveis. Essa memória é utilizada para armazenamento de instruções, pilha e dados. O 8088 separa a memória em 4 segmentos de bytes cada: Código; Dados; Pilha; Extra;
4
Registradores Está disponível para o programador assembly o acesso a o seguinte grupo de registradores: Registradores gerais; Registradores de segmento; Registradores de ponteiro e índice; Registradores de flag.
5
Registradores gerais
6
Registradores gerais AX BX CX DX Acumulador.
Comumente usado em operações matemáticas e de E/S. BX Base. Comumente usado como uma base ou registrador apontador. CX Contador. Usado freqüentemente em loops. DX Deslocamento. Similar ao registrador de base.
7
Registradores gerais Estes registradores são definidos como registradores de uso geral, pois podemos realmente armazenar qualquer coisa que quisermos neles. São também registradores de 16 bits, o que significa que podemos armazenar um inteiro positivo de 0 a , ou um inteiro com sinal de to AX tem um intervalo de 0 até FFFF. Isto significa que existe um intervalo de 0 até FF para AH e AL. Se tivermos de armazenar A61D em AX, AH conterá A6, e AL conterá 1D.
8
Registradores de segmento
9
Registradores de segmento
CS Segmento de código. O bloco de memória onde o código é armazenado. DS Segmento de dados. A área na memória onde os dados são armazenados. Durante operações de bloco, quando grandes blocos de dados são movidos, este é o segmento a que a CPU comumente se refere. ES Segmento extra. Apenas outro segmento de dados, mas este é comumente usado quando se quer acessar o vídeo. SS É o segmento de pilha, em que a CPU armazena endereços de retorno de sub-rotinas.
10
Registradores de ponteiro e índice
11
Registradores de ponteiro e índice
SI Índice de fonte. Freqüentemente usado para movimentações de blocos de instruções. Este é um ponteiro que, com um segmento, geralmente DS, é usado pela CPU para leitura. DI Índice de destino. Novamente, você o usará muito. Um outro ponteiro que, com um segmento, geralmente ES, é usado para escrita pela CPU. BP Apontador da base, usado em conjunto com o segmento de pilha. SP Apontador da pilha, comumente usado com o segmento de pilha.
12
Registradores de flags
13
Registradores de flags
Funcionam como sinalizadores. As flags são apenas um bit de memória e se localizam dentro do processador. Como cada flag é apenas um bit, num dado momento elas só podem ser 1 ou 0 ("setada" ou "zerada"). Existem seis flags usadas para indicar o resultado de certas instruções. Um uso comum das flags é o de desviar a execução para um ponto em particular do código usando instruções de salto condicinal. Estas instruções farão o salto ou não dependendo do estado de uma ou mais flags. Apenas cinco das flags podem ser usadas deste modo - zero, sinal, carry, overflow e paridade. A sexta flag (carry auxiliar) e a sétima flag (flag de direção) são lidas por outro tipo de instrução.
14
Registradores de flags
SF - Flag de Sinal; ZF - Flag de Zero; AF - Flag Auxiliar; PF - Flag de Paridade. CF - Flag de Carry (vai um).
15
Modos de endereçamento
16
Modos de endereçamento
17
Instruções
18
Instruções
19
Instruções
20
Pseudo instruções
21
Rastreador
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.