Questão de Programação — Assembly — FCC 2019
- Código
- fc053702
- Banca
- FCC
- Órgão
- METRÔ-SP
- Ano
- 2019
- Cargo
- Analista Desenvolvimento Gestão Júnior – Ciências da Computação
- Aadd ebx, eax;
- Binc ebx, eax;
- Cinc ebx+=eax;
- Dmov ebx, eax;
- Eadd ebx<<eax;
GabaritoA — add ebx, eax;
Gabarito: letra A. A instrução add ebx, eax realiza a adição dos valores dos registradores EBX e EAX, armazenando o resultado em EBX (EBX = EBX + EAX). Essa é a sintaxe padrão do assembly x86 (sintaxe Intel) para a operação de soma.
A banca testa o conhecimento da sintaxe básica das instruções aritméticas do processador 80386. Lembre-se: a instrução ADD recebe dois operandos – destino e origem – e efetua destino = destino + origem.
add ebx, eax é a forma correta. O mnemnônico ADD seguido dos registradores separados por vírgula, na ordem destino, origem, realiza exatamente a operação pedida: ebx = ebx + eax.
inc ebx, eax é inválida. A instrução INC (increment) aceita apenas um operando, incrementando-o em 1. Ela não realiza soma entre dois registradores.
inc ebx+=eax não é sintaxe assembly. Essa notação é comum em linguagens de alto nível (C/C++), mas não existe no conjunto de instruções do 80386.
mov ebx, eax copia o valor de EAX para EBX, sobrescrevendo EBX. Não há soma; o valor original de EBX é perdido.
add ebx<<eax mistura o operador de deslocamento bit a bit (<<) com a instrução ADD. Não é uma instrução válida. O << é usado em outras linguagens, não em assembly.
Em assembly x86, a instrução ADD sempre segue o formato ADD destino, origem. O destino é o primeiro operando e será o local que receberá o resultado. Para fixar, pratique com outros mnemnônicos como SUB, MUL, DIV, que seguem a mesma lógica.
Gabarito: letra A.
Link permanente: /questoes/fc053702