Engenharia eletrônicaMicrocontroladores
- (FGV 2010)
Um programador de microcontroladores, pensando em uma maneira de realizar somas de dois números de 48 bits , escreveu um código assembly , utilizando registradores de 16 bits . A sua idéia foi fragmentar os números em 3 partes de 16 bits e armazená-los, um deles nos registradores ax (mais significativo), bx e cx (menos significativo) e o outro nos registradores dx (mais significativo), si e di (menos significativo).
Neste código, os resultados das somas parciais são guardados nos endereços var1, var2 e var3, para a realização das etapas posteriores necessárias à impressão do resultado final. Desta forma, considerando os fragmentos já armazenados nos seus respectivos registradores, o código desenvolvido pelo programador foi o seguinte:
add cx,di
mov [var1],cx
add bx, si
mov [var2],bx
add ax, dx
mov [var3], ax
A fim de testar o seu código, o programador irá realizar a soma 280A42h + 12335Ah, esperando encontrar o resultado correto.
Sobre o resultado a ser encontrado, o resultado esperado (entre parênteses), a correção do programa e a eficácia do teste, pode-se dizer que:
A) o resultado encontrado será igual ao esperado (3A3D9Ch). O programa está correto e o teste comprovará isso.
B) o resultado encontrado não será igual ao esperado (3A3D9Ch). O programa está incorreto e o teste comprovará isso.
C) o resultado encontrado será igual ao esperado (3A3D9Ch). O programa está incorreto, mas o teste não comprovará isso.
D) o resultado encontrado será igual ao esperado (403D9Ch). O programa está correto e o teste comprovará isso.
E) o resultado encontrado será igual ao esperado (403D9Ch). O programa está incorreto, mas o teste não comprovará isso.
Próximo:
EXERCÍCIOS - Exercício 28
Vamos para o Anterior: Exercício 26
Tente Este: Exercício 5
Primeiro: Exercício 1
VOLTAR ao índice: Engenharia eletrônica