Professional Documents
Culture Documents
Lucas Aranha
lab3@cin.ufpe.br
Assembly
Assembly
Assembly - Histria
Assembly - Histria
Assembly - Histria
Assembly - Assembler
Assembly - Assembler
Exemplo:
Assembly Fundamentos
Assembly Fundamentos
Assembly Fundamentos
Assembly Fundamentos
Binrio
Hexa
Decimal
Tipo
10000000
80
128
byte
8001
32.769
word
11111111111
11111
FFFF
65.535
word
11111111111
11111111111
1111111111
10000000000
00001
Assembly Registradores
Assembly Registradores
So eles:
EAX, EBX, ECX, EDX, ESI, EDI, ESP,
EBP
Assembly Registradores
Assembly Registradores
Assembly Registradores
Assembly Registradores
Assembly Registradores
Assembly Registradores
Assembly Registradores
O => Overflow
D => Direction
I => Interrupt Enable
T => Trap
S => Signal
Assembly Registradores
Z => Zero
A => Auxiliar Carry
P => Parity
C => Carry
Assembly - Pilha
J em Assembly, o programador
precisa saber trabalhar com a pilha,
pois ela uma ferramenta importante
Assembly - Pilha
Assembly - Pilha
Assembly - Instrues
Movimentao de dados:
Assembly - Instrues
Intel
AT&T
mov eax, 1
movl 3(%ebx),
%eax
Assembly - Instrues
Instruo de soma:
Assembly - Instrues
Instruo de subtrao:
Assembly - Instrues
Assembly - Intrues
Instruo de comparao:
Assembly - Instrues
Instrues de jump:
Pulo incondicional:
- jmp [100] (Sintaxe Intel)
- jmp eax (Sintaxe Intel)
- jmp *100 (Sintaxe AT&T)
- jmp *%eax (Sintaxe AT&T)
Assembly - Instrues
Pulo condicional:
- je [100] (Sintaxe Intel)
- jne eax (Sintaxe Intel)
- je *100 (Sintaxe AT&T)
- jne *%eax (Sintaxe AT&T)
Assembly - Instrues
Assembly - Sees
Assembly - Sees
- Exemplo:
section .data
mensagem: db 'Hello world!'
msglength: equ 12
Assembly - Sees
- section .bss -> a seo usada para
declarar as variveis do programa
- Exemplo:
section .bss
nomearq: resb 230 ;Reserva 230 bytes
numero: resb 1 ;Reserva 1 byte
array: resw 10 ;Reserva 10 words
Assembly - Sees
- section .text -> Essa a seo onde o cdigo
do programa escrito
- Exemplo:
section .text
global _start
_start:
.
.
.
.
.
.
.
.
.
Assembly
Interrupes
Interrupes so chamadas ao
processador requisitando um servio
Assembly Interrupes
Assembly Interrupes
Assembly Interrupes
- Exemplo (Sintaxe Intel):
mov eax,1 ; Interrupo Exit
mov ebx,0 ; Argumento em EBX
int 80h ; Chamada da interrupo
- Exemplo (Sintaxe AT&T):
movl $1,%eax
movl $0, %ebx
int $0x80
Assembly - Exemplo
section .data
hello: db 'Hello world!',10 ; A string 'Hello World! e um linefeed
helloLenght: equ $-hello ; Tamanho da string hello
section .text
global _start
_start:
mov eax,4 ; Interrupo de escrita (sys_write)
mov ebx,1 ; Argumento que indica onde a string vai ser escrita
mov ecx,hello ; Argumento que indica o endereo da string
mov edx,helloLenght ; Argumento que indica o tamanho da string
int 80h ; Chamada da interrupo
mov eax,1 ; Interrupo exit (sys_exit)
mov ebx,0 ; Argumento da interrupo
int 80h ; Chamada da interrupo
Assembly - Exemplo
.data
hello: .string "Hello World!\n"
.text
.globl main
main:
mov $4,%eax
mov $1,%ebx
mov $hello,%ecx
mov $13,%edx
int $0x80
mov $1,%eax
mov $0,%ebx
int $0x80
Assembly
Referncias
www.cin.ufpe.br/~lab3
No meu public estarei atualizando
o arquivo Links-if677.txt sempre
que encontrar referncias
interessantes