Geral
Sistemas Computacionais
Semana 7
0

Questão

Você está desenvolvendo um programa em C que precisa realizar cálculos matemáticos complexos de maneira eficiente. Para isso, você decide usar inline Assembly para otimizar a execução de certas operações críticas. O programa utiliza um compilador GCC e você está familiarizado com as instruções Assembly básicas.

Observe o seguinte código C com inline Assembly:


#include <stdio.h>


int main() {

    int a = 5, b = 10, result;

    asm("movl %1, %%eax; 

         addl %2, %%eax; 

         movl %%eax, %0;" 

         : "=r" (result) 

         : "r" (a), "r" (b) 

         : "%eax");

    printf("Resultado: %d\n", result);

    return 0;

}

Selecione a alternativa que descreve corretamente a operação realizada pela instrução Assembly:
A) A instrução Assembly realiza a multiplicação de a e b, armazenando o resultado em result.
B) A instrução Assembly move os valores de a e b para registradores, os compara e armazena o maior valor em result.
C) A instrução Assembly subtrai o valor de b de a e armazena o resultado em result.
D) A instrução Assembly move o valor de a para eax, adiciona o valor de b a eax e move o resultado para result.
E) A instrução Assembly realiza a divisão de a por b, armazenando o resultado em result.
function vote(questaoId, value) { window.location.href = "/accounts/login/?next=/questao/2222/"; return; fetch(`/vote/questao/${questaoId}/`, { method: 'POST', headers: { 'Content-Type': 'application/json', 'X-CSRFToken': 'mS8aTpo9srTpCjVFZyHuOTutuF0uFchAaJwjR3Ai6Jo2rZa15WVmTk6GpiBuDIi9' }, body: JSON.stringify({ value: value }) }) .then(response => response.json()) .then(data => { if (data.success) { document.getElementById(`score-${questaoId}`).textContent = data.score; const upBtn = document.querySelector(`button[onclick="vote(${questaoId}, 1)"]`); const downBtn = document.querySelector(`button[onclick="vote(${questaoId}, -1)"]`); upBtn.classList.remove('active-up'); downBtn.classList.remove('active-down'); if (data.user_vote === 1) upBtn.classList.add('active-up'); if (data.user_vote === -1) downBtn.classList.add('active-down'); } }); }