uma comparação de complexidade entre asm e python para para fazer um simples calculo
#o propósito deste código é para mostrar como funciona uma função
#mas resolvi fazer uma comparação entre o tamanho do código entre python e asm
#utilizando o gasm para calcular 2**3 + 5**2
.section .data
.section .text
.globl _start
_start:
pushl $3
pushl $2
call power
addl $8, %esp
pushl %eax
pushl $2
pushl $5
call power
addl $8, %esp
popl %ebx
addl %eax, %ebx
movl $1, %eax
int $0x80
.type power, @function
power:
pushl %ebp
movl %esp, %ebp
subl $4, %esp
movl 8(%ebp), %ebx
movl 12(%ebp), %ecx
movl %ebx, -4(%ebp)
power_loop_start:
cmpl $1, %ecx
je end_power
movl -4(%ebp), %eax
imul %ebx, %eax
movl %eax, -4(%ebp)
decl %ecx
jmp power_loop_start
end_power:
movl -4(%ebp), %eax
movl %ebp, %esp
popl %ebp
ret
teste realizado no linux.
salve o código em um arquivo chamado teste.as
compile o código
as teste.as -o teste.o
depois é preciso linkar
ld teste.o -o teste
e então execute o programa
não imprimirá na tela o valor 33, portanto para obter o resultado é necessário usar echo $? .
em python vc só precisa entrar no interpretador e calcular 2**3 + 5**2 e retornará 33 como resultado.
então da pra notar o nível de dificuldade de programação entre python e asm.
Nenhum comentário:
Postar um comentário