View Full Version : assembly


leinad
11-06-2007, 18:20
pessoal, preciso de fazer um contador em assembly para aplicar a umas envenções que estou a tentar fazer por casa nos tempos livres, será que alguem me pode ajudar?

anjo2
12-06-2007, 21:13
Que tipo de contador? Explica melhor

heeven
13-06-2007, 13:47
pessoal, preciso de fazer um contador em assembly para aplicar a umas envenções que estou a tentar fazer por casa nos tempos livres, será que alguem me pode ajudar?

realmente, que tipo de contador? se fores mais específico deve ser mais fácil ver se conseguimos ajudar :)

leinad
13-06-2007, 18:21
int cont = 0;

for (cont = 0; cont < 15; cont++){
printf("Cont %d", cont);
}
algo do género disto sá que em assembly....

HecKel
13-06-2007, 18:27
Deixa lá ver se ainda consigo fazer isto sem consultar nada :P


mov eax, 15
for:

código do ciclo for

cmp eax, 0
je final
dec eax
jmp for
final:Acho que dá..., de qualquer das formas consulta esta página: http://www.csee.umbc.edu/courses/undergraduate/CMSC313/spring04/burt_katz/lectures/Lect05/decisionMaking.html

abraços, HecKel

anjo2
13-06-2007, 18:36
Estou familiarizado com o p3, e seria assim (pelo que percebi é sempre a incrementar até 15, sem ser preciso passar 1 segundo)

Inicio: MOV R1, 15
Ciclo: INC M[contador]
CMP M[Contador], R1
BR.NZ Ciclo
Fim: BR Fim

Lossoth
13-06-2007, 23:40
Não testei por isso não sei se funciona, fiz agora assim de cabeça mas dá para teres uma ideia:



.Prt:
.string "Cont %d\n"

irmovl $0, %eax
.Ciclo
push %eax
push $.Prt
call printf
inc %eax
cmpl $15, %eax
je .Ciclo



De qualquer maneira se precisares de ver como é que determinado codigo fica em assembly podes usar a opção -S do gcc (penso que é esta) ele vai criar um file qqcoisa.s com o codigo assembly.

ex:
gcc -S teste.c
(isto cria o file teste.s em assembly)

MadOnion
14-06-2007, 00:11
Acho que basta gcc file.s embora por vezes seja preciso fazer a linkagem com outras funções.
depois é ./file