Questão de Programação — Assembly — FGV 2024
- Código
- fg085504
- Banca
- FGV
- Órgão
- INPE
- Ano
- 2024
- Nível
- Superior
- Cargo
- Tecnologista Júnior I - Desenvolvimento de Software Embarcado
- AB4h.
- BB5h.
- C16Fh.
- D1Bh.
- E5Bh.
GabaritoB — B5h.
Gabarito: letra B. Após as operações de multiplicação e duas rotações à esquerda no acumulador, o valor final é B5h. A sequência correta é: carrega A com 49h, B com 05h, multiplica (resultado 16Dh, com parte baixa 6Dh em A), depois duas rotações RL convertem 6Dh em B5h.
A questão exige conhecimento do funcionamento da instrução MUL AB (que multiplica A e B, colocando parte alta em B e parte baixa em A) e da instrução RL A (rotação circular à esquerda de 8 bits, sem carry).
Passo a passo:
MOV A, #049h → A = 0x49
MOV B, #05h → B = 0x05
MUL AB → A × B = 0x49 × 0x05 = 0x16D (decimal 365). Resultado: B = 0x01 (parte alta), A = 0x6D (parte baixa)
RL A → A = 0x6D = 0110 1101, após rotação esquerda: 1101 1010 = 0xDA
RL A → A = 0xDA = 1101 1010, após rotação: 1011 0101 = 0xB5
Valor final em A = 0xB5 = B5h.
B4h não corresponde ao resultado do cálculo. Seria obtido se houvesse erro na rotação ou na multiplicação.
Conforme cálculo, após as duas rotações, A = B5h.
16Fh é o resultado completo da multiplicação (0x16D) com interpretação errônea – a parte baixa é 6Dh, não 6Fh.
1Bh é resultado de uma multiplicação ou rotação diferente (ex.: apenas uma rotação após multiplicação errada).
5Bh seria obtido se houvesse apenas uma rotação partindo de valor incorreto.
Gabarito: letra B
Link permanente: /questoes/fg085504