; Program: sum two values and store the result in RAM ; ROM (and program execution) starts at offset 0x0 @address 0x0 jpi program @label ram_offset 0x8000 ; store ram offset for later memory access @label program ldi 10 RA ; RA := 10 ldi 20 RB ; RB := 20 alr al_plus RA RB RC ; RC := RA + RB ldi ram_offset RD ; store address of ram_offset in RD ldr RD RD ; dereference ram_offset address @label debug str RC RD ; store RC in RAM ; Check that 10 + 20 = 30 ali al_plus RC 0 RA ; RA := result of sum ldi 30 RB ; RB := 30 alr al_minus RA RB RC ; RC := RA - RB bri zero success ; if result is zero, jump to success ldi 2 RA ; RA := 2 to signal failure hlt ; Else @label success ldi 1 RA ; RA := 1 to signal success hlt