Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas

Introdução à Linguagem Assembly, Resumos de Programação Assembly

Uma introdução à linguagem de montagem (assembly), abordando tópicos como a representação de programas, a visão do programador assembly, a estrutura da linguagem de montagem, os tipos de dados básicos, a movimentação de dados entre registradores e memória, e as principais operações aritméticas e lógicas. O documento fornece exemplos detalhados de como realizar essas operações em assembly, tornando-o uma referência valiosa para estudantes e profissionais interessados em compreender os fundamentos da programação em baixo nível.

Tipologia: Resumos

2020

Compartilhado em 06/08/2024

fabiano-barbosa-27
fabiano-barbosa-27 🇧🇷

1 documento

1 / 43

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
Introdução ao Assembly
Movimentação de Dados
Operações Aritméticas e Lógicas
Noemi Rodriguez
Ana Lúcia de Moura
Raúl Renteria
Alexandre Meslin
http://www.inf.puc-rio.br/~inf1018
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b

Pré-visualização parcial do texto

Baixe Introdução à Linguagem Assembly e outras Resumos em PDF para Programação Assembly, somente na Docsity!

Introdução ao Assembly

Movimentação de Dados

Operações Aritméticas e Lógicas

Noemi Rodriguez

Ana Lúcia de Moura

Raúl Renteria

Alexandre Meslin

http://www.inf.puc-rio.br/~inf

Representação de Programas

O compilador gera o código de um programa conforme

o conjunto de instruções da máquina alvo

as regras estabelecidas pela linguagem de programação (C)

as convenções seguidas pelo sistema operacional

Linguagem de Montagem

Instruções executam operações simples

operações aritméticas/lógicas

transferência de dados

controle do fluxo de execução (desvios, chamadas de função)

Linguagem de Montagem

Instruções executam operações simples

operações aritméticas/lógicas

transferência de dados

controle do fluxo de execução (desvios, chamadas de função)

Tipos de dados básicos

valores inteiros (1,2,4,8 bytes)

endereços de memória

valores em ponto flutuante

Registradores

Armazenam valores inteiros e

endereços (ponteiros)

podem ser usados como

valores de 64, 32, 16 e 8 bits

%rbp e %rsp são usados

como ponteiros para a pilha

Movimentação de Dados

mov fonte, destino

Constante

Memória

Reg

Mem

Reg

Mem

Reg

Registrador

Memória

Mem

Constantes e Registradores

Constantes (imediatos) são escritas com um $ seguido

por valor inteiro em notação C

Registradores são especificados pelo nome

Constantes e Registradores

Constantes (imediatos) são escritas com um $ seguido

por valor inteiro em notação C

Registradores são especificados pelo nome

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

o nome do registrador é escrito entre parênteses

%rbx 0x7fff526a897c

Valores em Memória: modo indireto

O endereço de memória está em um registrador

o nome do registrador é escrito entre parênteses

%rbx 0x7fff526a897c

movl $1, (%rbx)

Valores em Memória: modo indireto

O endereço de memória está em um registrador

o nome do registrador é escrito entre parênteses

%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

o nome do registrador é escrito entre parênteses

%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

ao endereço é somado um deslocamento

%rbx 0x7fff526a

Valores em Memória: base-deslocamento

Um registrador tem um endereço de memória

ao endereço é somado um deslocamento

%rbx 0x7fff526a

movl $1, 4 (%rbx)