Prévia do material em texto
Linguagens de Montagem: Prof. Daniel Carlos Guimarães Pedronette DEMAC - Departamento de Estatística, Matemática Aplicada e Computação Linguagens de Montagem DEMAC – Departamento de Estatística Matemática Aplicada e Computação UNESP – Rio Claro Prof. Daniel Carlos Guimarães Pedronette 1 Linguagens de Montagem: Prof. Daniel Carlos Guimarães Pedronette DEMAC - Departamento de Estatística, Matemática Aplicada e Computação Aula 3. Alocação e Instruções de Transferências de Memória 2 Linguagens de Montagem: Prof. Daniel Carlos Guimarães Pedronette DEMAC - Departamento de Estatística, Matemática Aplicada e Computação Mais Alocação de Memória ● Definição de constantes: – São alocadas de forma contígua: Linguagens de Montagem: Prof. Daniel Carlos Guimarães Pedronette DEMAC - Departamento de Estatística, Matemática Aplicada e Computação Mais Alocação de Memória ● Abreviações: Linguagens de Montagem: Prof. Daniel Carlos Guimarães Pedronette DEMAC - Departamento de Estatística, Matemática Aplicada e Computação Mais Alocação de Memória ● Abreviações: Linguagens de Montagem: Prof. Daniel Carlos Guimarães Pedronette DEMAC - Departamento de Estatística, Matemática Aplicada e Computação Mais Alocação de Memória ● Abreviações: Linguagens de Montagem: Prof. Daniel Carlos Guimarães Pedronette DEMAC - Departamento de Estatística, Matemática Aplicada e Computação Mais Alocação de Memória ● Inicializações Múltiplas: – Diretiva TIMES permite múltiplas inicializações do mesmo valor: – Útil para definir/inicializar arrays Linguagens de Montagem: Prof. Daniel Carlos Guimarães Pedronette DEMAC - Departamento de Estatística, Matemática Aplicada e Computação Tabela de Símbolos ● Alocações são realizadas de maneira contígua: Linguagens de Montagem: Prof. Daniel Carlos Guimarães Pedronette DEMAC - Departamento de Estatística, Matemática Aplicada e Computação Mais Alocação de Memória ● Definição de constantes numéricas – Diretiva EQU: Linguagens de Montagem: Prof. Daniel Carlos Guimarães Pedronette DEMAC - Departamento de Estatística, Matemática Aplicada e Computação Mais Alocação de Memória ● Definição de constantes numéricas que podem ser redefinidas – Diretiva %assign: Linguagens de Montagem: Prof. Daniel Carlos Guimarães Pedronette DEMAC - Departamento de Estatística, Matemática Aplicada e Computação Mais Alocação de Memória ● Definição de constantes numéricas e strings (também suporta redefinição) – Diretiva %define: Linguagens de Montagem: Prof. Daniel Carlos Guimarães Pedronette DEMAC - Departamento de Estatística, Matemática Aplicada e Computação Transferências de Memória ● Instrução MOV (move) – Conteúdo inicial de “destination” destruído – Conteúdo de “source” preservado Linguagens de Montagem: Prof. Daniel Carlos Guimarães Pedronette DEMAC - Departamento de Estatística, Matemática Aplicada e Computação MOV: Formas de Endereçamento ● Registradores: – Tamanho em bits compatível: Linguagens de Montagem: Prof. Daniel Carlos Guimarães Pedronette DEMAC - Departamento de Estatística, Matemática Aplicada e Computação MOV: Formas de Endereçamento ● Immediate: – Tamanho em bits compatível: mov EAX, 45h mov EAX, 0x45 Linguagens de Montagem: Prof. Daniel Carlos Guimarães Pedronette DEMAC - Departamento de Estatística, Matemática Aplicada e Computação MOV: Formas de Endereçamento ● Endereçamento Indireto de Memória: – Sintaxe: [] indicam valor Linguagens de Montagem: Prof. Daniel Carlos Guimarães Pedronette DEMAC - Departamento de Estatística, Matemática Aplicada e Computação MOV: Formas de Endereçamento ● Endereçamento Direto de Memória: – Labels indicam enderços de memória ● Exemplo: – table1 é uma array (definido utilizando TIMES e DD) Copia valor da primeira posição de table1 para EBX Copia endereço da primeira posição de table1 para EBX Linguagens de Montagem: Prof. Daniel Carlos Guimarães Pedronette DEMAC - Departamento de Estatística, Matemática Aplicada e Computação MOV: Formas de Endereçamento ● Exemplos: Linguagens de Montagem: Prof. Daniel Carlos Guimarães Pedronette DEMAC - Departamento de Estatística, Matemática Aplicada e Computação MOVes Ambíguos ● Podemos especificar o tipo do operando em algumas situações: Linguagens de Montagem: Prof. Daniel Carlos Guimarães Pedronette DEMAC - Departamento de Estatística, Matemática Aplicada e Computação LEA: Load Effective Address ● Carrega endereço de memória em um registrador: ● Flexibilidade: Linguagens de Montagem: Prof. Daniel Carlos Guimarães Pedronette DEMAC - Departamento de Estatística, Matemática Aplicada e Computação Instrução XCHG ● Como podemos trocar os valores de dois registradores (EAX e EDX, por exemplo)? ● Instrução eXCHanGe ! Linguagens de Montagem: Prof. Daniel Carlos Guimarães Pedronette DEMAC - Departamento de Estatística, Matemática Aplicada e Computação Instrução XCHG ● Exemplos: Linguagens de Montagem: Prof. Daniel Carlos Guimarães Pedronette DEMAC - Departamento de Estatística, Matemática Aplicada e Computação Transferências de Memória ● Para lembrar: – Não há instruções de transferências de memória que operem diretamente com dois endereços de memória. Linguagens de Montagem: Prof. Daniel Carlos Guimarães Pedronette DEMAC - Departamento de Estatística, Matemática Aplicada e Computação Exemplos Vamos ● Codificar, ● Montar, ● Linkar e ● Testar! Linguagens de Montagem: Prof. Daniel Carlos Guimarães Pedronette DEMAC - Departamento de Estatística, Matemática Aplicada e Computação Exercícios Slide 1 Slide 2 Slide 3 Slide 4 Slide 5 Slide 6 Slide 7 Slide 8 Slide 9 Slide 10 Slide 11 Slide 12 Slide 13 Slide 14 Slide 15 Slide 16 Slide 17 Slide 18 Slide 19 Slide 20 Slide 21 Slide 22 Slide 23 Slide 24