So langsam komme ich wieder rein in die Assemblerprogrammierung.
Der untenstehende Code zeigt ein Byte im Akku nach PETSCII konvertiert auf dem Screen an.
Alles schön, aber vermutlich viel zu umständlich. Daher meine Frage an Euch: was könnte ich noch optimieren?
Jedes gute Feedback hilft mir, mich zu verbessern, also vielen Dank im Voraus!
Code
lda #$c7
jsr display_hex_value
jmp *
display_hex_value
stx restore_x + 1 ; first we save X for later restore
tax ; now we save A in X
and #$f0 ; we want the high nibble only
clc ; clear carry
ror ; move high nibble into low nibble
ror
ror
ror
jsr compare
sta $0400 ; display high nibble on screen
txa ; get back original hex value
and #$0f ; we want the low nibble now
jsr compare
sta $0401 ; display low nibble on screen
restore_x
ldx #$00 ; load initial X into X again
rts ; done ;)
compare
cmp #$0a ; depending on 0-9 or A-F
bcc + ; we need to add or substract to get
sbc #$09 ; the right petscii code
rts
+ adc #$30
rts
Alles anzeigen