Ybadoo - Soluções em Software Livre
Tutoriais
Compiladores

(Ricarte, 2008) Dado o comando de atribuição x = (a + b + c) * (b + c) - d, apresente o código objeto gerado, considerando as otimizações disponíveis e a disponibilidade de no máximo dois registradores.

 

LOAD   b, R0 // R0 = b
LOAD c, R1 // R1 = c
ADD R1, R0 // R0 = R0 + R1 (b + c)
LOAD a, R1 // R1 = a
ADD R0, R1 // R1 = R1 + R0 (a + b + c)
MUL R0, R1 // R1 = R1 * R0 (a + b + c) * (b + c)
LOAD d, R0 // R0 = d
SUB R0, R1 // R1 = R1 - R0 (a + b + c) * (b + c) - d
STORE R1, x // x = R1

Ricarte, Ivan. (2008). Introdução à Compilação. Rio de Janeiro: Elsevier. 264 páginas.