Logo Passei Direto
Buscar

Aula 8 - Aula Prática 3

Ferramentas de estudo

Material
páginas com resultados encontrados.
páginas com resultados encontrados.

Prévia do material em texto

Arquitetura e Organização de Microprocessadores II
Turma: Engenharia de Computação
Aula 8 - Procedimentos com MACRO
Prof. Me. Eduardo Martins
esmoliveira@uniara.edu.br
1
Contexto e Objetivos da Aula
• Objetivo é 
ensinar os alunos a utilizar o compilador/emulador do processa
dor Intel 8086 disponível online no endereço:
8086 Emulator
• Apresentar o conceito de modularização de código em Assembly 
utilizando MACROS, mostrando que:
• é possível reutilizar código
• o assembler expande o código em tempo de montagem
• não há uso da pilha para controle de fluxo
• a execução é sequencial e previsível
• Esta abordagem é mais simples, mais segura e mais compatível com o 
8086 Emulator Web
Conceitos
• Diferença entre macro e procedure
• Expansão de código em tempo de montagem
• Reutilização de trechos de código
• Organização e legibilidade
• Limitações práticas do compilador 8086 Web
Procedure × Macro (explicação para o aluno)
Procedure Macro 
Usa CALL / RET Não usa desvio 
Depende da pilha Não usa pilha 
Executada em tempo de execução Expandida em tempo de montagem 
Mais próxima de linguagens de alto nível Mais simples e direta 
Restrições maiores no 8086 Web Muito mais robusta no emulador 
 
Nesta aula, usaremos apenas macros.
Estudo de caso 
• Problema: Utilizar uma macro para encontrar o maior valor de um 
vetor de bytes.
O resultado deve ficar em AL e depois ser armazenado em 
memória.
Estudo de caso 
; -------- dados --------
VETOR:
 DB 4
 DB 9
 DB 2
 DB 17
TAM:
 DB 4
MAIOR:
 DB 0
; -------- macro --------
; apenas carrega o valor atual do vetor
MACRO LOAD_VALUE (_)
-> MOV BL, byte [SI] AL, atualiza AL
 CMP AL, BL
 JGE NEXT1
 MOV AL, BL
NEXT1:
 INC SI
 DEC CL
 JNZ LOOP1
 MOV DI, OFFSET MAIOR
 MOV byte [DI], AL
HLT
Exercício para entrega
• Criar uma macro que percorra um vetor de bytes e:
• calcule a soma dos elementos
• retorne o valor em AL
• utilize SI como ponteiro e CL como contador
• O programa principal deve:
• inicializar os registradores
• chamar a macro
• armazenar o resultado em memória
Estrutura sugerida do relatório (1 a 2 páginas)
1️⃣ Identificação
2️⃣ Objetivo do exercício
• O que o programa faz?
3️⃣ Descrição da solução adotada
• Explicação em alto nível, sem repetir o enunciado.
• O aluno deve mencionar, por exemplo:
• como o vetor é percorrido
• como o laço é controlado
• onde o resultado é armazenado
4️⃣ Uso dos registradores e da memória
• Tabela simples ou lista explicativa
5️⃣ Código-fonte
• Inserir o código completo em Assembly, exatamente o que foi testado no 8086 Emulator Web
• código identado
• comentários permitidos (;)
• sem prints de tela
• apenas o código-texto
6️⃣ Resultado obtido
• Breve descrição do estado final da memória.
	Slide 1: Arquitetura e Organização de Microprocessadores II Turma: Engenharia de Computação
	Slide 2: Contexto e Objetivos da Aula 
	Slide 3: Conceitos
	Slide 4: Procedure × Macro (explicação para o aluno)
	Slide 5: Estudo de caso 
	Slide 6: Estudo de caso 
	Slide 7: Exercício para entrega
	Slide 8: Estrutura sugerida do relatório (1 a 2 páginas)

Mais conteúdos dessa disciplina