Ir para o conteúdo
  • 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

Mensagens Recomendadas

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

Editado por Rui Carlos

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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)).

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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)

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.