Intermediate Language
A subset of C

Header

main()
{ int reg[8];
  int mem[20000];

generated code

}

Code

data movement
reg[q] = mem[p];               // load
reg[q] = mem[reg[p]];          // load
reg[q] = integer constant;     // store
mem[p] = reg[q];               // save
mem[reg[p]] = reg[q];          // save

reg[p] = reg[q];               // copy

arithmetic operations
reg[p] += reg[q];              // add
reg[p] -= reg[q];              // sub
reg[p] /= reg[q];              // div
reg[p] *= reg[q];              // mul
reg[p] %= reg[q];              // mod
reg[p] = -reg[q];              // neg

logical operations
reg[p] = (reg[p] == reg[q]);   // EQ
reg[p] = (reg[p] < reg[q]);    // LT

control statements
ident:                         // label
goto ident                     // jmp
if (reg[p]) goto ident         // jmp not zero
if (! reg[p]) goto ident       // jmp zero

input/output operations
cout << reg[p];                // write integer value
cout << "\n";                  // write newline
cout << integer const;         // write integer constant
cout << string const;          // write string constant
cin >> reg[p];                 // read integer value

Note: The compiler may output to the object code comments as the compiler writer sees fit.