PCaseiro 0 Posted April 13, 2015 Report Share Posted April 13, 2015 (edited) 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 April 14, 2015 by Rui Carlos Link to post Share on other sites
Rui Carlos 359 Posted April 14, 2015 Report Share Posted April 14, 2015 Olhando para a forma como a instrução é codificada descrita aqui: beq $s, $t, offset0001 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)). Rui Carlos Gonçalves Link to post Share on other sites
PCaseiro 0 Posted April 14, 2015 Author Report Share Posted April 14, 2015 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) Link to post Share on other sites
Rui Carlos 359 Posted April 14, 2015 Report Share Posted April 14, 2015 [...] 6 bits para o offset [...] O offset são 16 bits (o FFFE no caso). E para o resto tens que considerar um bloco de 6 bits e dois de 5 bits. Rui Carlos Gonçalves Link to post Share on other sites
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now