



































Estude fácil! Tem muito documento disponível na Docsity
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Prepare-se para as provas
Estude fácil! Tem muito documento disponível na Docsity
Prepare-se para as provas com trabalhos de outros alunos como você, aqui na Docsity
Encontra documentos específicos para os exames da tua universidade
Prepare-se com as videoaulas e exercícios resolvidos criados a partir da grade da sua Universidade
Responda perguntas de provas passadas e avalie sua preparação.
Ganhe pontos para baixar
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Programação Assembly para Iniciantes
Tipologia: Manuais, Projetos, Pesquisas
1 / 43
Esta página não é visível na pré-visualização
Não perca as partes importantes!




































Noemi Rodriguez
Ana Lúcia de Moura
Representação de Programas
O compilador gera o código de um programa conforme
Linguagem de Montagem
operações aritméticas/lógicas
transferência de dados
controle do fluxo de execução (desvios, chamadas de função)
Linguagem de Montagem
operações aritméticas/lógicas
transferência de dados
controle do fluxo de execução (desvios, chamadas de função)
valores inteiros (1,2,4,8 bytes)
endereços de memória
valores em ponto flutuante
Registradores
podem ser usados como
valores de 64, 32, 16 e 8 bits
Movimentação de Dados
mov fonte, destino
Constante
Memória
Reg
Mem
Reg
Mem
Reg
Registrador
Memória
Mem
Constantes e Registradores
Constantes e Registradores
mov l $1024, %eax
movabsq $-1, %rax /* para constantes de 64 bits */
mov l $0xFF, %ebx
mov b $0, %al
mov l %ebx , %ecx
mov q %r12 , %r
Valores em Memória: modo indireto
O endereço de memória está em um registrador
%rbx 0x7fff526a897c
Valores em Memória: modo indireto
O endereço de memória está em um registrador
%rbx 0x7fff526a897c
movl $1, (%rbx)
Valores em Memória: modo indireto
O endereço de memória está em um registrador
%rbx 0x7fff526a897c
memória
0x7fff526a897c movl $1, (%rbx)
1
movl (%rbx), %eax
Valores em Memória: modo indireto
O endereço de memória está em um registrador
%rbx 0x7fff526a897c
memória
0x7fff526a897c
%eax
movl $1, (%rbx)
1
movl (%rbx), %eax
1
Valores em Memória: base-deslocamento
Um registrador tem um endereço de memória
%rbx 0x7fff526a
Valores em Memória: base-deslocamento
Um registrador tem um endereço de memória
%rbx 0x7fff526a
movl $1, 4 (%rbx)