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

From Atariki

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

← Previous diff
Wersja z dnia 08:28, 24 cze 2008
Xxl (Dyskusja | wkład)

Next diff →
Linia 52: Linia 52:
dex dex
bne _bit bne _bit
 + rts
 +</pre>
 +
 +
 +Zapis na ekran bajtu w systemie dziesiętnym:
 +
 +<pre>
 +putdec sta temp0
 + lda #0
 + sta temp1
 + sta temp2
 + 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
 + lda temp1
 + lsr @
 + lsr @
 + lsr @
 + lsr @
 + jsr _bcd
 + lda temp1
 + and #$0f
 +_bcd ora #$10
 + sta (ekr),y
 + iny
rts rts
</pre> </pre>
[[Kategoria:Niezbędnik kodera]] [[Kategoria:Niezbędnik kodera]]

Wersja z dnia 08:28, 24 cze 2008

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 nibbel
                pla
                and #$0f
nibbel          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          ldx #$08
                sta temp
_bit            asl temp
                lda #$08
                rol @
                sta (ekr),y
                iny
                dex
                bne _bit
                rts


Zapis na ekran bajtu w systemie dziesiętnym:

putdec		sta temp0
		lda #0
		sta temp1
		sta temp2
		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
		lda temp1
                lsr @
                lsr @
                lsr @
                lsr @
                jsr _bcd
                lda temp1
                and #$0f
_bcd            ora #$10
                sta (ekr),y
                iny
                rts
Personal tools