Advertisement
Guest User

Untitled

a guest
May 29th, 2017
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.56 KB | None | 0 0
  1. *-----------------------------------------------------------
  2. * Title : Aufgabe 3
  3. * Written by : Maximilian Smrcka, 295459
  4. * Dennis Todoric, 295178
  5. * Date : 22.05.2017
  6. * Description: Zerlegung von Zahlen in ihre Primfaktoren
  7. *-----------------------------------------------------------
  8. ORG $3000
  9. START: ; first instruction of program
  10.  
  11. * Put program code here
  12.  
  13. MOVEA #Liste, A0 ; Kopiert die Adresse von Liste in A0
  14. MOVEA.L #Zahl1, A1 ; Kopiert die Adresse vom Wert Zahl1 in A1
  15.  
  16. MOVE.W #$0002, D1 ; Kopiert 2 in D1
  17. MOVE.B Anzahl, D3 ; Kopiert die Anzahl in D3
  18. HauptLOOP ; Hauptschleife
  19. 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
  20. LOOP ; Schleifenbeginn zur berechnung von Primfaktoren
  21. MOVE.L D0, D2 ; Kopiert den Wert in D0 in D2 als temporär gespeicherten Wert
  22. DIVU.W D1, D0 ; Dividiert D0 mit D1
  23.  
  24. CMP.L #$00000001 , D0 ; Vergleicht 1 mit D0
  25. BEQ ENDELOOP ; Falls D0 gleich 1 ist, dann springt es zu ENDELOOP
  26. CMP.L #$0000FFFF ,D0 ; Vergleicht D0 mit FFFF
  27. BLE Restnull ; Falls D0 gleich FFFF ist, dann springt es zu Restnull
  28. ; Falls Rest vorhanden dann einfach weiter
  29. MOVE.L D2, D0 ; Kopiert D2 wieder in D0
  30. ADD.W #1, D1 ; Addiert 1 auf D1
  31. BRA LOOP ; Springt wieder zum Anfang der LOOP
  32. Restnull ; Restnull Sprungmarke
  33. MOVE.W D1, (A0)+ ; Kopiert D1 in das Adressregister A0 und inkrementiert diese
  34. MOVE.W #$0002, D1 ; Kopiert 2 in D1
  35. BRA LOOP ; Springt wieder an den Anfang der LOOP
  36.  
  37. ENDELOOP ; ENDELOOP Sprungmarke
  38. MOVE.W D1, (A0)+ ; Kopiert D1 in das Adressregister A0 und inkrementiert diese
  39. SUB.B #1, D3 ; Subrahiert 1 von D3
  40. CMP #0, D3 ; Schaut ob für alle Zahlen Primfaktoren gefunden wurden
  41. BNE HauptLOOP ; Falls nicht dann springt er zur HauptLOOP zurück
  42. ; Falls ja, endet das Programm
  43.  
  44.  
  45. SIMHALT ; halt simulator
  46.  
  47. * Put variables and constants here
  48.  
  49. Zahl1 DC.L 42
  50. Zahl2 DC.L 6930
  51. Zahl3 DC.L 997
  52. Anzahl DC.B 3
  53. Liste DS.W 10
  54.  
  55. END START ; last line of source
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement