Advertisement
Guest User

Untitled

a guest
May 22nd, 2017
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ;************************************************
  2. ;* Beginn der globalen Daten *
  3. ;************************************************
  4.                    AREA MyData, DATA, align = 2
  5.  
  6. isPrime FILL    1000,"x",1                          ;
  7.  
  8. ;***********************************************
  9. ;* Beginn des Programms *
  10. ;************************************************
  11.     AREA |.text|, CODE, READONLY, ALIGN = 3
  12. ; ----- S t a r t des Hauptprogramms -----
  13.                 EXPORT main
  14.                 EXTERN Init_TI_Board
  15. main            PROC
  16.                 bl    Init_TI_Board                 ;HW Initialisieren
  17. ;Laden von Konstanten in Register
  18.                 ldr r0,=isPrime                     ;Primzahlenfeld füllen
  19.                                                
  20. ;Zur Übersicht laden der Konstanten
  21.                 mov r1,#2                           ;r1= thisPrime
  22.                 mov r3,#32                          ;r3= maxValue(Wurzel 1000)
  23.                 add r3,r3,r0;                       ;Startpunkt+MaxValue
  24.                 mov r4,#1                           ;r4= counterFindNext
  25.                 mov r10,#"."                        ;Keine Primzahl
  26.                 mov r11,#1000                       ;höchste Zahl
  27. ;erste schleife        
  28.                 cmp r1,r3                           ;ob thisPrime>maxValue(Wurzel 1000)
  29.                 ble starthochrechn                  ;gehe zu starthochrechn
  30.                 b forever                           ;beende Programm
  31. starthochrechn  mov r5,r1                           ;bereite Sieb vor
  32.                 mul r5,r1  
  33.                 sub r5,r1
  34. ;zweite Schleife
  35. hochrechnen     add r5,r1                           ;rechne um Primzahl hoch
  36.                 mov r12,r0                          ;Primzahlenfeld fuellen
  37.                 add r12,r12,r5                      ;Bestimmung Vielfaches
  38.                 strb r10,[r12]                      ;Vielfaches speichern
  39.                 cmp r5,r11                          ;Pruefen ob Feldende
  40.                 bmi hochrechnen                     ;gehe zu hochrechnen
  41. ;dritte schleife
  42. findeprim       add r1,r1,#1                        ;Erhoehe die letzte Primzahl um 1
  43.                 add r4,r1,r0                        ;Primzahl+Offset
  44.                 ldrb r2,[r4]                        ;Lade Wert in r2
  45.                 cmp r4,r3                           ;Pruefung ob thisPrime<=maxValue
  46.                 bhs speichereum                     ;gehe zu speichereum
  47.                 cmp r2,#"x"                         ;Markieren von Primzahlen mit "x"
  48.                 beq starthochrechn                  ;gehe zu starthochrechn
  49.                 b findeprim                         ;gehe zu Schleifenanfang
  50.  
  51. speichereum     add r0,#2                           ;Speichere:Start bei 2
  52.  
  53. forever        
  54.  
  55.                 b   forever                     ;
  56.                 ENDP
  57.                 END
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement