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

From Atariki

(Różnice między wersjami)
Jump to: navigation, search
Wersja z dnia 18:52, 24 cze 2008
0xF (Dyskusja | wkład)
(krótsze i szybsze putbin)
← 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:+==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 9: Linia 9:
lsr @ lsr @
lsr @ lsr @
- jsr nibbel+ jsr nibble
pla pla
and #$0f and #$0f
-nibbel cmp #$0a+nibble cmp #$0a
sed sed
adc #$10 adc #$10
Linia 21: Linia 21:
</pre> </pre>
- +==Zapis na ekran liczby BCD==
-Zapis na ekran liczby BCD:+
<pre> <pre>
Linia 40: Linia 39:
-Zapis na ekran w systemie binarnym:+==Zapis na ekran w systemie binarnym==
<pre> <pre>
Linia 56: Linia 55:
</pre> </pre>
- +==Zapis na ekran bajtu w systemie dziesiętnym==
-Zapis na ekran bajtu w systemie dziesiętnym:+
<pre> <pre>
-putdec sta temp0+putdec ldx #$0f
- lda #0+ stx temp0
 + ldx #$1a
 + sec
 +_n1 inc temp0
 + sbc #100
 + bcs _n1
 +_n2 dex
 + adc #10
 + bmi _n2
 + adc #$0f
sta temp1 sta temp1
- sta temp2+ lda temp0
- ldx #$08+
- sed+
-_nxt asl temp0+
- lda temp1+
- adc temp1+
- sta temp1+
- lda temp2+
- adc temp2+
- sta temp2+
- dex+
- bne _nxt+
- cld+
- lda temp2+
jsr _bcd jsr _bcd
- lda temp1+ txa
- lsr @+
- lsr @+
- lsr @+
- lsr @+
jsr _bcd jsr _bcd
lda temp1 lda temp1
- and #$0f+_bcd sta (ekr),y
-_bcd ora #$10+
- sta (ekr),y+
iny iny
rts rts

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