Considere o trecho de rotina apresentado a seguir: ...
MOV A,#7FH
MOV P0,A
ORL A,#80H
MOV P1,A
CPL P0.0
SETB P0.7
CLR P1.1
Ao final da rotina, os valores de P0 e P1 serão, respectivamente, em hexadecimal:
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
A alternativa correta é a E - FE e FD.
Para resolver essa questão, precisamos entender os conceitos de manipulação de bits e operações lógicas no contexto de programação em assembly, especificamente para microcontroladores como o 8051. Essa questão foca em operações como a movimentação de dados entre registradores e portas, além de operações de manipulação bit a bit, como "CPL" (complemento) e "SETB/CLR" (setar ou limpar bits específicos).
Vamos analisar o código linha por linha:
MOV A,#7FH
Essa instrução move o valor hexadecimal 7F (que é 0111 1111 em binário) para o acumulador A.
MOV P0,A
O conteúdo do acumulador A (7F) é movido para a porta P0. Portanto, P0 = 7F.
ORL A,#80H
Realiza a operação lógica OR entre o acumulador A e o valor 80H (1000 0000 em binário). O resultado é FF (1111 1111 em binário), que fica no acumulador A.
MOV P1,A
O valor do acumulador A (FF) é movido para a porta P1. Portanto, P1 = FF.
CPL P0.0
A instrução complementa o bit 0 da porta P0. Como P0 era 7F (0111 1111), o bit 0 é 1. Após o complemento, o bit 0 se torna 0. Então, P0 = 7E (0111 1110).
SETB P0.7
Essa instrução seta (define como 1) o bit 7 da porta P0. P0 já tinha 7E (0111 1110), e ao setar o bit 7, temos FE (1111 1110).
CLR P1.1
Limpa (define como 0) o bit 1 da porta P1. P1 era FF (1111 1111), e limpando o bit 1, obtemos FD (1111 1101).
Portanto, ao final da rotina, os valores de P0 e P1 são FE e FD, respectivamente.
E - FE e FD é a resposta correta.
As alternativas incorretas podem ser explicadas pelo entendimento errado do código, por exemplo, não aplicar corretamente a operação de complemento ou a manipulação individual de bits.
Gostou do comentário? Deixe sua avaliação aqui embaixo!
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo