You are on page 1of 24

BC1503: Arquitetura de Computadores

1o Trimestre / 2009

Aula 13: Programao em Linguagem de Montagem


Prof. Raphael Y. de Camargo
raphael.camargo@ufabc.edu.br

Resumo
- Vimos nas ltimas aulas - Projeto da Arquitetura do Conjunto de Instrues (ISA) - Veremos hoje - Como programar utilizando uma linguagem de montagem - as88, um simulador do processador 8088 - Arquitetura ISA do processador 8088

Parte I: Linguagens de Montagem e o Simulador as88

Linguagem de Montagem
ISA (Instruction Set Architeture) Linguagens de Montagem
Instrues, registradores e outras caractersticas Representao simblica da ISA Utilizam smbolos como ADD, SUB, MOV no lugar de binrios Permitem o uso de rtulos para endereos de memria e nomes simblicos para constantes Converte um programa escrito em linguagem de montagem em um programa binrio, executvel pela mquina

Assembler

Por que Usar Linguagens de Montagem?

Interpretador / Rastreador
Escrever um programa em Assembly difcil
Procedimento escrever o programa, compil-lo e rod-lo Mas normalmente o programa pra sem nenhuma pista do erro Programa que simula um processador Executa uma instruo por vez, mostrando detalhes da execuo, como registradores e pilha Vantagens? Desvantagens?

Interpretador / Simulador

Exemplo de Rastreador

as88: Assembler para o Intel 8088


Por que a arquitetura do 8088?
Mais simples que a dos processadores Intel modernos Facilita o entendimento e aprendizado Pode ser executada em processadores modernos uma boa introduo aos que desejam se aprofundar Permite o aprendizado da programao em Assembly Fornece um simulador para arquitetura 8088

O simulador as88

Pode ser baixado em:

http://www.prenhall.com/tanenbaum_br

Usando o as88
Existem instrues para instalao em Linux e Windows
Siga as instrues em instrucoes/<SO>.htm Em Linux, pode ser executado a partir de um pen-drive

Dentro do diretrio 'examples' esto diversos exemplos que podem ser executados
So descritos com mais detalhe no apndice C do livro

Habitue-se com o interpretador

Execute os exemplos e veja as alteraes nos valores de registradores, pilhas de execuo, etc.

Parte II: Arquitetura ISA do 8088

Organizao de Memria do 8088


8088 possui registradores de 16 bits
Permitem enderear 64kB de memria Como resolver este problema????

Mas arquitetura permite utilizar 1MB de memria! Quebrando a memria em mltiplos segmentos

Cada segmento tamanho 64kB e so apontados por registradores especficos CS: Segmento de cdigo DS: Segmento de dados SS: Segmento de pilha (stack) ES: Segmento extra

Ciclo do Processador 8088


1) Busca instruo na memria apontada por PC 2)Incrementa o PC 3)Decodifica instruo 4)Busca dados na memria ou registradores 5)Executa a instruo 6)Armazena resultado na memria ou registradores 7)Volta etapa 1

Registradores do 8088

Registradores de Uso Geral


AX: Registrador Acumulador Registrador de uso geral, como o BX, CX e DX Destino implcito de diversas instrues, como MUL BX: Registrador de Base Pode ser utilizado como ponteiro de memria MOV AX,BX / MOV AX,(BX) CX: Registrador de Contador Pode ser utilizado como contador para laos Automaticamente decrementado e testado no fim do lao DX: Registrador de Dados Pode ser utilizado para operaes com nmeros de 32 bits AX (16 bits de ordem baixa) e DX (16 bits de ordem alta)

Endereamento de Segmentos
Memria do 8088 dividida em segmentos
CS: Segmento de cdigo DS: Segmento de dados SS: Segmento de pilha (stack) ES: Segmento extra Valores contidos nos registradores de segmento so deslocados em 4 bits

Todo acesso memria feito somando o endereo de incio de um segmento com o valor em um registrador

Acesso aos dados do programa = endereos em DS + em BX Acesso ao cdigo do programa = endereos em CS + em PC

Segmento de Pilha
Mantm informaes de contexto durante uma execuo
Normalmente dividida em quadros de pilha Um quadro alocado para cada procedimento Ponteiro SP aponta para o topo e BP para a base do quadro Tambm podem conter dados temporrios de operaes Instrues PUSH e POP permitem modificar o topo da pilha PUSH decrementa o SP em 2 / POP incrementa SP em 2 Assim ponteiros podem ser usados para referenciar a memria em qualquer dos segmentos

Pilhas normalmente crescem de cima para baixo

Normalmente SS e DS apontam para o mesmo segmento

Endereamento no 8088
O 8088 suporta diversos modos de endereamento
Em instrues de 2 operandos, o 1 destino e o 2 fonte
Existem instrues em que o operando implcito, como MUL

Registradores podem ser utilizados em qualquer dos operandos

Endereamento no 8088

Parte III: Conjunto de Instrues do 8088

Instrues do 8088

Instrues do 8088

Instrues do 8088

Desvios Condicionais

Chamadas de Sistema

You might also like