Pular para o conteúdo principal

Postagens

Mostrando postagens de Maio, 2013

Introdução ao Assembly

Faz um bom tempo que não posto nada aqui. Bem, estou de volta. Tenho estudado Assembly e C com foco em (in)segurança.
Vamos começar com um programa simples em C e depois o escreveremos em Assembly. segue:
alacerda@labnix86:~/code/c$ cat hw.c #include <stdio.h> #include <unistd.h> #include <stdlib.h>
int main() {    char msg[] = "Programa em C\n";    write(1,msg,sizeof(msg));    exit(3); } alacerda@labnix86:~/code/c$ gcc hw.c -o hw alacerda@labnix86:~/code/c$./hw Programa em C
alacerda@labnix86:~/code/c$ echo $? 3 alacerda@labnix86:~/code/c$
O programa acima apenas exibe uma string na tela e sai com o código de retorno 3. Se queremos fazer o mesmo programa em Assembly vamos precisar: Definir uma stringEscrever a String na telaSair com o código 3 Vejamos o resultado e logo abaixo explicarei como chegamos a ele:
alacerda@labnix86:~/code/asm$ cat hw.s .section .data    msg: .string "Programa em Assembly\n"    tam: .long . - msg
.globl _start
_start:    mov $4,%eax    mov $1…