Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- *-----------------------------------------------------------
- * Title : Aufgabe 3
- * Written by : Maximilian Smrcka, 295459
- * Dennis Todoric, 295178
- * Date : 22.05.2017
- * Description: Zerlegung von Zahlen in ihre Primfaktoren
- *-----------------------------------------------------------
- ORG $3000
- START: ; first instruction of program
- * Put program code here
- MOVEA #Liste, A0 ; Kopiert die Adresse von Liste in A0
- MOVEA.L #Zahl1, A1 ; Kopiert die Adresse vom Wert Zahl1 in A1
- MOVE.W #$0002, D1 ; Kopiert 2 in D1
- MOVE.B Anzahl, D3 ; Kopiert die Anzahl in D3
- HauptLOOP ; Hauptschleife
- MOVE.L (A1)+, D0 ; Kopiert die Aktuelle Zahl von A1 in D0 und inkrementiert A1 um eins um auf die nächste Zahl zu zeigen
- LOOP ; Schleifenbeginn zur berechnung von Primfaktoren
- MOVE.L D0, D2 ; Kopiert den Wert in D0 in D2 als temporär gespeicherten Wert
- DIVU.W D1, D0 ; Dividiert D0 mit D1
- CMP.L #$00000001 , D0 ; Vergleicht 1 mit D0
- BEQ ENDELOOP ; Falls D0 gleich 1 ist, dann springt es zu ENDELOOP
- CMP.L #$0000FFFF ,D0 ; Vergleicht D0 mit FFFF
- BLE Restnull ; Falls D0 gleich FFFF ist, dann springt es zu Restnull
- ; Falls Rest vorhanden dann einfach weiter
- MOVE.L D2, D0 ; Kopiert D2 wieder in D0
- ADD.W #1, D1 ; Addiert 1 auf D1
- BRA LOOP ; Springt wieder zum Anfang der LOOP
- Restnull ; Restnull Sprungmarke
- MOVE.W D1, (A0)+ ; Kopiert D1 in das Adressregister A0 und inkrementiert diese
- MOVE.W #$0002, D1 ; Kopiert 2 in D1
- BRA LOOP ; Springt wieder an den Anfang der LOOP
- ENDELOOP ; ENDELOOP Sprungmarke
- MOVE.W D1, (A0)+ ; Kopiert D1 in das Adressregister A0 und inkrementiert diese
- SUB.B #1, D3 ; Subrahiert 1 von D3
- CMP #0, D3 ; Schaut ob für alle Zahlen Primfaktoren gefunden wurden
- BNE HauptLOOP ; Falls nicht dann springt er zur HauptLOOP zurück
- ; Falls ja, endet das Programm
- SIMHALT ; halt simulator
- * Put variables and constants here
- Zahl1 DC.L 42
- Zahl2 DC.L 6930
- Zahl3 DC.L 997
- Anzahl DC.B 3
- Liste DS.W 10
- END START ; last line of source
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement