aboutsummaryrefslogtreecommitdiff
path: root/examples/test2.s
blob: 750829e0dbd6ebe664122058dedc2cfff387c98d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
; Assembler test for DCPU
; by Markus Persson

        set a, 0xbeef               ; Assign 0xbeef to register a
        set [0x1000], a             ; Assign memory at 0x1000 to value of register a
        ifn a, [0x1000]             ; Compare value of register a to memory at 0x1000 ..
            set PC, end             ; .. and jump to end if they don't match

        set i, 0                    ; Init loop counter, for clarity
:nextchar
        ife [data+i], 0             ; If the character is 0 ..
        set PC, end                 ; .. jump to the end
        set [0x8000+i], [data+i]    ; Video ram starts at 0x8000, copy char there
        add i, 1                    ; Increase loop counter
        set PC, nextchar            ; Loop
  
:data   dat "Hello world!", 0       ; Zero terminated string

:end    sub PC, 1                   ; Freeze the CPU forever