mirror of
https://gitlab.com/camelot/kickc.git
synced 2024-09-29 03:56:15 +00:00
32 lines
586 B
NASM
32 lines
586 B
NASM
// Test effective live range and register allocation
|
|
// out::c should be a hardware register, main::i should be a hardware register, global idx should be a hardware register
|
|
.pc = $801 "Basic"
|
|
:BasicUpstart(main)
|
|
.pc = $80d "Program"
|
|
.label SCREEN = $400
|
|
main: {
|
|
ldx #0
|
|
ldy #0
|
|
__b1:
|
|
// out(msg[i])
|
|
lda msg,y
|
|
jsr out
|
|
// for( byte i: 0..11)
|
|
iny
|
|
cpy #$c
|
|
bne __b1
|
|
// }
|
|
rts
|
|
}
|
|
// out(byte register(A) c)
|
|
out: {
|
|
// SCREEN[idx++] = c
|
|
sta SCREEN,x
|
|
// SCREEN[idx++] = c;
|
|
inx
|
|
// }
|
|
rts
|
|
}
|
|
msg: .text "hello world!"
|
|
.byte 0
|