Advertisement
Eldoprano

Untitled

Jun 5th, 2019
297
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.56 KB | None | 0 0
  1. .file "aufgabe4.S"
  2. .text @ legt eine Textsection fuer PrgrammCode + Konstanten an
  3. .align 2 @ sorgt dafuer, dass nachfolgende Anweisungen auf einer durch 4 teilbaren Adresse liegen
  4. @ unteren 2 Bit sind 0
  5. .global main @ nimmt das Symbol main in die globale Sysmboltabelle auf
  6. .type main,function
  7. main:
  8. ldr r0, = Table
  9.  
  10. ldr r7,=Total
  11. ldr r2,= Table
  12. ldr r3,= Count // Anzahl an Elementen in der Liste
  13. ldr r3, [r3]
  14. mov r1, #0 // "Zielregister", die das aufsummierte Ergebnis der Listeneintr\ufffdge enth\ufffdlt
  15. loop:
  16.  
  17. load_instr:
  18. ldr r4, [r2], #4 // L\ufffddt x'te Element der Liste in r4 und speichert die n\ufffdchste Speicherstelle in r2
  19. add r1, r1, r4 // r1 = r1 + r4 (r4 = Element x von der Liste zum aufsummieren)
  20. //adr r6, load_instr // We use this just to see how the operation changes his code in memory
  21. //ldr r5, load_instr // We copy the operation code from "ldr r4,[r2]" to r5
  22. //add r5, r5, #4 // Offset addieren
  23. //str r5, load_instr // Originiale Anweisung mit der neuen \ufffdberschreiben
  24.  
  25. subs r3, r3, #1 // Counter - 1
  26. bge loop // Loop if counter > 0
  27.  
  28. str r1, [r7] // Aufsummierte Summe vor den Listenelementen im Memory speichern
  29.  
  30.  
  31. Halt:
  32. b Halt
  33.  
  34. .Lfe1:
  35. .size main,.Lfe1-main
  36.  
  37. .data
  38. //; Data definitions
  39. //Total DEFW 0 ; Total - initially zero
  40. Total: .word 0
  41. //One DEFW 1 ; The number one
  42. //Count DEFW 4 ; Loop counter (loop 5x)
  43. Count: .word 4
  44. //Table DEFW 39 ; The numbers to total ...
  45. // DEFW 25 ;
  46. // DEFW 4 ;
  47. // DEFW 98 ;
  48. // DEFW 17 ;
  49. Table: .word 39, 25, 4, 98, 17
  50.  
  51.  
  52.  
  53. // End of File
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement