/* This program has a bug in it! It is supposed to demonstrate that 01010101 (binary) becomes 10101010 (binary) after the "not" instruction. It should print ffffffaa but instead, it prints: ff34007c What is the problem? */ .section ".rodata" .align 8 .LLC0: .asciz " %x \n" .section ".text" .align 4 .global main main: save %sp, -120, %sp ! Give the variable a default value mov 0x55, %l0 ! Try a new command not %l0 ! Print the resulting value mov %l1, %o0 st %o0, [%fp-20] sethi %hi(.LLC0), %o1 or %o1, %lo(.LLC0), %o0 ld [%fp-20], %o1 call printf, 0 nop mov 0, %i0 ret restore