Jump to content

Exercício assembly


sinomen

Recommended Posts

Alguém me consegue detalhar este programa ? Isto do assembly dá-me grande nó à cabeça.

Como chego à conclusão que tem 32 instruções ?

movl 10, %eax
movl 0, %ecx

ciclo:
addl %eax, %ecx
decl %eax
jnz ciclo

Link to post
Share on other sites

Percebes que tens aí um ciclo?

Quantas vezes é que o mesmo é repetido?

Perfeitamente.

Já tive a ler um bocado sobre isto.

Vamos por partes:

1º instruçao:

movl Fonte, Destino -> movl 10, %eax -> move para eax o valor 10

2º instrução:

movl 0, %ecx -> move para ecx o valor 0

Por cada iteração de ciclo faz 3 instruções logo 30 instruções o ciclo:

1 - addl %eax, %ecx -> %ecx = %eax + %ecx -> %ecx = 10

2 - %eax = %eax - 1

3 - jnz ? dá para perceber que é tipo um jump para voltar a fazer nova iteração mas o que significa ao certo jnz ?

Somando as instruções de ciclo mais as duas iniciais dará as tais 32.

Mesmo assim fiquei com dúvidas.

Como é que ele sabe que quando %eax tem valor 0 o ciclo termina ? é determinado pelo jnz ?

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.