Você está na página 1de 1

#prologo pushl %ebp movl %esp, %ebp #epilogo movl %ebp, %esp popl %ebp

Typedef struct{ Char *sta; Int *vec; }xpto; Xpto *vec;

PUSH E POP DOS REGISTOS UTILIZADOS addl $N*4, %esp #N=nr parmetros funo para limpar registos Varivel Local:

Vec = (xpto*) malloc(n*sizeof(xpto)); Vec[0]->sta=(char*) malloc(x*sizeof(char)); Contar nr bytes > x Int contabytes(int *vec, char x);

subl $4, %esp #reserva espaco para a variavel local movl %ebx, -4(%ebp) #guarda resultado actual na variavel local ---Alocao Memria #include <stdlib.h> int *ap = NULL; ap = (int*) malloc(10 * sizeof(int)); ap[0] = 1; *(ap + 1) = 2;

Conta_bytes: Pushl %ebp Movl %esp, %ebp Movl 8(%ebp), %esi Movl 12(%ebp), %ebx Movl $0, %eax Ciclo: Movl (%esi), %edx Cmpl $-1, %edx Je fim Movl $4, %ecx Ciclo_conta: Cmpb %bl, %dl Je prox Incl %eax Prox: Sarl $8, %dl Loop ciclo_conta Addl $4, %esi Jmp ciclo

Você também pode gostar