Questão FC405947
Em um trecho de um programa em linguagem assembly para um microcontrolador 8051, foi encontrada a seguinte sequência de instruções: MOV A, #049h MOV B, #05h MUL AB RL A RL A Após o
Questões sem classificação de assunto (TI - Engenharia de Software)
FGV · 2024
Em um trecho de um programa em linguagem assembly para um microcontrolador 8051, foi encontrada a seguinte sequência de instruções:
MOV A, #049h
MOV B, #05h
MUL AB
RL A
RL A
Após o processamento dessas instruções, o valor armazenado no registrador acumulador é
- B4h.
- B5h.
- 16Fh.
- 1Bh.
- 5Bh.
Mostrar resposta e comentário
Gabarito
B
Comentário do professor
Começamos com MOV A, #049h e MOV B, #05h, portanto \(A=0x49\) (decimal 73) e \(B=0x05\) (decimal 5).
A instrução MUL AB realiza a multiplicação de 8 bits: \(A \times B = 73 \times 5 = 365_{10} = 0x16D\). No 8051 o resultado ocupa dois registradores: o byte menos significativo vai para A e o byte mais significativo para B. Assim, após MUL AB temos \(A=0x6D\) e \(B=0x01\).
As instruções seguintes são duas rotações à esquerda do acumulador (RL A duas vezes). A operação RL A roda circularmente os 8 bits de A; não envolve o flag C.
Binariamente \(0x6D = 0110\ 1101\). Rotacionando uma vez: 1101\ 1010 = \(0xDA\). Rotacionando novamente: 1011\ 0101 = \(0xB5\).
Portanto, ao final o acumulador contém 0xB5, ou B5h.
Conteúdo do catálogo FC Concursos · Atualizado em