HAFIZADAN OKUNAN BİR BYTE’I HEX OLARAK EKRANA
YAZDIRMA RUTİNİ (2. YÖNTEM)
Bazen bir problemin birden fazla çözümü olabilir. Bu nedenle aynı işi yapan bir rutin daha veriyoruz. Fakat bu rutinde, önceki gibi karşılaştırma, toplama vs. gibi işlerle uğraşmayacağız.
*=$0801
.word nextline
.word 2004
; 2004
.byte $9e
; SYS
.text "2061"
; 2061
.byte 0
; komutu
nextline
.word 0
mem_read
lda
adres
; hafızadan bir byte oku
pha
; yığına at
lsr
; sağa kaydır
lsr
; sağa kaydır
lsr
; sağa kaydır
lsr
; sağa kaydır
jsr
convert
; çevirme rutinine uğra
pla
; yığındaki değeri geri al
and
#$0f
; üst 4 biti sıfırla alt 4 biti kullan
convert
tax
; aküdeki değeri x registerine kopyala
lda
tablo,x
; tablodan X registerinin gösterdiği byte’ı al
jsr
$ffd2
; ekrana yazdır
rts
; geri dön.
tablo
.text “0123456789ABCDEF”
adres
.byte 179
Bu arada 1. yöntemdeki rutin 29 byte, 2. yöntemdeki rutin 39 byte uzunluğundadır. Anlaşılabilirlik yönünden 2. yöntem daha iyidir. Bazı durumlarda tablo kullanmak kısa ve karışık bir program yazmaktan daha avantajlı olabilir.