Uma instrução típica de adição na linguagem de montag...

Próximas questões
Com base no mesmo assunto
Q340736 Arquitetura de Computadores
Uma instrução típica de adição na linguagem de montagem, ou Assembly foi dada como ADD 10010111 10101111. Esta instrução usou como argumento uma palavra de 16 bits que traduzidas para hexadecimal vale.

Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Alternativa correta: B - 97h AFh.

A questão aborda o conhecimento sobre a linguagem de montagem, ou Assembly, e a habilidade para converter números binários em sua representação hexadecimal. Para resolver tal questão, é necessário entender que um número binário é composto por dígitos 0 e 1, onde cada dígito representa uma potência de 2. Na conversão para o sistema hexadecimal, que é um sistema de base 16, cada dígito representa uma potência de 16, e pode assumir valores de 0 a 9 e de A a F, onde A representa 10 e F representa 15 no sistema decimal.

Olhando para o número binário fornecido na questão, 10010111 10101111, devemos separá-lo em grupos de 4 bits cada, pois cada grupo de 4 bits em binário pode ser representado por um único dígito em hexadecimal:

1001 (9) | 0111 (7) | 1010 (A) | 1111 (F)

Cada grupo de 4 bits deve então ser convertido para o dígito hexadecimal correspondente. Seguindo a conversão:

  • 1001 em binário é igual a 9 em hexadecimal (8 + 0 + 0 + 1)
  • 0111 em binário é igual a 7 em hexadecimal (0 + 4 + 2 + 1)
  • 1010 em binário é igual a A em hexadecimal (8 + 0 + 2 + 0)
  • 1111 em binário é igual a F em hexadecimal (8 + 4 + 2 + 1)

Combinando esses valores, temos 97h para a primeira parte e AFh para a segunda, resultando na representação hexadecimal completa de 97h AFh. Portanto, a alternativa B é a correta.

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo

Comentários

Veja os comentários dos nossos alunos

Letra B.
Existe mais de uma forma de se fazer o cálculo, para simplificar poderíamos apenas separar em grupos de 4 dígitos (o número binário):

Primeira sequência:        1001 0111
Convertendo para HEX:      9       7

Segunda sequência:        1010 1111
Convertendo para HEX:      A        F

Lembrando que hexadecimal é igual a base 16, ou seja, 0 1 2 3 4 5 6 7 8 9 A B C D E F.

Ou poderíamos fazer da seguinte forma:

          1              0              0               1             0               1             1              1
2^7 * 1 + 2^6 * 0 + 2^5 * 0 + 2^4 * 1+ 2^3 * 0 + 2^2 * 1 + 2^1 * 1+ 2^0 * 1
128 + 0 + 0 + 16 + 0 + 4 + 2 + 1 = 151 <- Conversão de binário para decimal
151 / 16  = 9 mod 7 <- Conversão de decimal para hex

          1              0              1               0             1               1             1              1 
2^7 * 1 + 2^6 * 0 + 2^5 * 1 + 2^4 * 0+ 2^3 * 1 + 2^2 * 1 + 2^1 * 1+ 2^0 * 1
128 + 0 + 32 + 8 + 4 + 2 + 1 = 175 <- Conversão de binário para decimal
175 / 16 =  10 mod 15, logo 10 = A; 15 = F  <- Conversão de decimal para hex

A explicação do cálculo acima é 160 / 16 = 10, porém ""não existe"" o ""número"" 10 em hex e sim a letra A, e sobra 15 e pela sequência apresentada acima 15 = F.

Espero ter ajudado.

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo