Benutzer:Mstma/fibonacci
Aus C64-Wiki
Zur Navigation springenZur Suche springen
Diese Programm demonstriert die Berechnung der Fibonacii-Zahlenfolge in Assembler und zeigt dabei die Addition die Ausgabe von 16-Bit-Zahlen.
Quelltext[Bearbeiten | Quelltext bearbeiten]
Das Programm muss zuerst mit ACME übersetzt werden. Dies
geschieht mit dem Aufruf acme [QUELLDATEI]. Das übersetzte Programm wird dann auf dem C64 mit LOAD "FIB", 8, 1
geladen und SYS 49152
gestartet.
!to "fib", cbm *= $c000 axout = $bdcd ; lowbyte in X, highbyte in A chrout = $ffd2 jmp start newline lda #13 ; CR jsr chrout rts start lda #0 ; x = 0 sta x sta x + 1 lda #1 ; y = 1 sta y lda #0 sta y + 1 loop ldx x ; x ausgeben lda x + 1 jsr axout jsr newline clc ; z = x + y lda x adc y sta z lda x + 1 adc y + 1 bcs end ; z > 65535 bwz. highbyte > 255 (carry set) sta z + 1 lda y ; x = y sta x lda y + 1 sta x + 1 lda z ; y = z sta y lda z + 1 sta y + 1 jmp loop end ldx y ; letzten Wert der Zahlenfolge ausgeben, da die ; Ausgabe vor der Addition erfolgt lda y + 1 jsr axout jsr newline rts ; Variablen (lowbyte, highbyte) x !wo 0 y !wo 0 z !wo 0
Die 16-Bit-Addition und -Ausgabe sind sind bereits im Wiki in der Beschreibung zum Befehl ADC_$hhll erklärt worden. Für die Ausgabe des Zeilenumbruchs wird die Routine CHROUT verwendet.
Ausgabe[Bearbeiten | Quelltext bearbeiten]
Mit dem Wertebereich, der sich mit 16 Bit darstellen lässt (0 bis 65535), können die ersten 24 Durchläufe der Fibonacci-Zahlenfolge berechnet werden.
0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765 10946 17711 28657 46368 |
Weblinks[Bearbeiten | Quelltext bearbeiten]
Wikipedia: Fibonacci-Folge |