SóProvas


ID
1707079
Banca
FGV
Órgão
FIOCRUZ
Ano
2010
Provas
Disciplina
Engenharia Eletrônica
Assuntos

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:

Alternativas
Comentários
  • O teste não achará o erro que é o seguinte: Caso a soma bit a bit dê maior q F (16), não será possível registrar esse número maior.

  • O programa não leva em conta o carry bit da soma, caso o resultado de uma soma parcial seja maior que 65535, valor máximo representado em 16 bits.