Programowanie: Zapis na ekran w różnych systemach liczbowych

From Atariki

(Różnice między wersjami)
Jump to: navigation, search
Wersja z dnia 21:36, 23 cze 2008
Xxl (Dyskusja | wkład)

← Previous diff
Aktualna wersja
Xxl (Dyskusja | wkład)
(Zapis na ekran bajtu w systemie dziesiętnym - optymalizacja)
Linia 1: Linia 1:
 +==Zapis na ekran w systemie heksadecymalnym==
 +
Pod adresem wskazywanym przez 'ekr' znajduje się początek pamięci ekranu gdzie będzie zapisana liczba heksadecymalna. Dzięki rejestrowi Y można drukować na ekranie liczby w pętli. Pod adresem wskazywanym przez 'ekr' znajduje się początek pamięci ekranu gdzie będzie zapisana liczba heksadecymalna. Dzięki rejestrowi Y można drukować na ekranie liczby w pętli.
Linia 7: Linia 9:
lsr @ lsr @
lsr @ lsr @
- jsr nibbel+ jsr nibble
pla pla
and #$0f and #$0f
-nibbel tax+nibble cmp #$0a
- lda tab_hex,x+ sed
 + adc #$10
 + cld
sta (ekr),y sta (ekr),y
iny iny
rts rts
 +</pre>
-tab_hex dta d'0123456789ABCDEF'+==Zapis na ekran liczby BCD==
 + 
 +<pre>
 +putbcd pha
 + lsr @
 + lsr @
 + lsr @
 + lsr @
 + jsr _bcd
 + pla
 + and #$0f
 +_bcd ora #$10
 + sta (ekr),y
 + iny
 + rts
 +</pre>
 + 
 + 
 +==Zapis na ekran w systemie binarnym==
 + 
 +<pre>
 +putbin sec
 + rol @
 +_bit tax
 + lda #$08
 + rol @
 + sta (ekr),y
 + iny
 + txa
 + asl @
 + bne _bit
 + rts
 +</pre>
 + 
 +==Zapis na ekran bajtu w systemie dziesiętnym==
 + 
 +<pre>
 +putdec ldx #$0f
 + stx temp0
 + ldx #$1a
 + sec
 +_n1 inc temp0
 + sbc #100
 + bcs _n1
 +_n2 dex
 + adc #10
 + bmi _n2
 + adc #$0f
 + sta temp1
 + lda temp0
 + jsr _bcd
 + txa
 + jsr _bcd
 + lda temp1
 +_bcd sta (ekr),y
 + iny
 + rts
</pre> </pre>
[[Kategoria:Niezbędnik kodera]] [[Kategoria:Niezbędnik kodera]]

Aktualna wersja

Spis treści

Zapis na ekran w systemie heksadecymalnym

Pod adresem wskazywanym przez 'ekr' znajduje się początek pamięci ekranu gdzie będzie zapisana liczba heksadecymalna. Dzięki rejestrowi Y można drukować na ekranie liczby w pętli.

puthex          pha
                lsr @
                lsr @
                lsr @
                lsr @
                jsr nibble
                pla
                and #$0f
nibble          cmp #$0a
                sed
                adc #$10
                cld
                sta (ekr),y
                iny
                rts

Zapis na ekran liczby BCD

putbcd          pha
                lsr @
                lsr @
                lsr @
                lsr @
                jsr _bcd
                pla
                and #$0f
_bcd            ora #$10
                sta (ekr),y
                iny
                rts


Zapis na ekran w systemie binarnym

putbin          sec
                rol @
_bit            tax
                lda #$08
                rol @
                sta (ekr),y
                iny
                txa
                asl @
                bne _bit
                rts

Zapis na ekran bajtu w systemie dziesiętnym

putdec          ldx #$0f
                stx temp0
                ldx #$1a
                sec
_n1             inc temp0
                sbc #100
                bcs _n1
_n2             dex
                adc #10
                bmi _n2
                adc #$0f
                sta temp1
                lda temp0
                jsr _bcd
                txa
                jsr _bcd
                lda temp1
_bcd            sta (ekr),y
                iny
                rts
Personal tools