Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

PCaseiro

Código máquina Assembly Mips

Recommended Posts

PCaseiro

Boas malta, alguém me consegue explicar como resolver este exercício?

Considere a codificação da instrução "beq $8, $9, salto" no pedaço de código abaixo indicado. sabendo que o "label" salto representa o endereço 0x2000 indique a codificação hexadecimal da instrução?

salto:

addu $8, $9, $0

beq $8, $9, salto

(a) 0x1109FFFE

(b) 0x11090002

© 0x04892000

(d) 0x11082000

Edited by Rui Carlos

Share this post


Link to post
Share on other sites
Rui Carlos

Olhando para a forma como a instrução é codificada descrita aqui:

beq $s, $t, offset

0001 00ss ssst tttt iiii iiii iiii iiii

e tendo em conta que o iiii iiii iiii iiii corresponde ao offset a aplicar ao program counter, parece-me que a única hipótese possível é a opção (a).

Isto porque salto implica andar com o program counter "para trás", logo penso que o offset deverá ser negativo (o que me parece que só acontece na opção (a)).

Share this post


Link to post
Share on other sites
PCaseiro

Sim é a (a). Acho que a forma mais correta de fazer é mesmo dividir tal como está nessa codificação em 6 bits para o offset e os restantes divido de 4 em 4. depois de ter tudo dividido faço uma nova divisao de 4 em 4 bits e penso que ai fica o resultado, que é a opção (a)

Share this post


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

×

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.