Ybadoo - Soluções em Software Livre
Tutoriais
Compiladores

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

 

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

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