-
Notifications
You must be signed in to change notification settings - Fork 0
/
exit.asm
42 lines (30 loc) · 1.02 KB
/
exit.asm
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
section .text
; Seção que armazena as instruções que serão
; utilizadas no programa.
global _start ; Declaração da função _start
_start: ; Implementação da função _start
mov ebx, 0
; Registrador armazenando o primeiro
; argumento que será passado para
; a syscall armazenada no registrador 'eax'.
; Argumento: 0.
mov eax, 1
; Registrador armazenando a syscall
; que será chamada.
; Syscall: 1 (exit()).
int 0x80
; Execução da syscall armazenada no registrador
; 'eax' passando o argumento armazenado em 'ebx'.
; Ou seja, instrução que executa a syscall exit(0).
;Compilação:
;$ nasm -f elf32 exit.asm
;$ ld -m elf_i386 -s exit.o -o exit
;Execução do programa:
;$ ./exit
;Análise do programa:
;$ strace ./exit
;O comando strace rastreia todas as syscalls chamadas
;pelo programa em questão e retorna todas elas.
; objdump -D exit
;O comando objdump -D disassembla o programa executável
;e mostra, simulando, o código assembly por detrás.