Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- .file "aufgabe4.S"
- .text @ legt eine Textsection fuer PrgrammCode + Konstanten an
- .align 2 @ sorgt dafuer, dass nachfolgende Anweisungen auf einer durch 4 teilbaren Adresse liegen
- @ unteren 2 Bit sind 0
- .global main @ nimmt das Symbol main in die globale Sysmboltabelle auf
- .type main,function
- main:
- ldr r0, = Table
- ldr r7,=Total
- ldr r2,= Table
- ldr r3,= Count // Anzahl an Elementen in der Liste
- ldr r3, [r3]
- mov r1, #0 // "Zielregister", die das aufsummierte Ergebnis der Listeneintr\ufffdge enth\ufffdlt
- loop:
- load_instr:
- ldr r4, [r2], #4 // L\ufffddt x'te Element der Liste in r4 und speichert die n\ufffdchste Speicherstelle in r2
- add r1, r1, r4 // r1 = r1 + r4 (r4 = Element x von der Liste zum aufsummieren)
- //adr r6, load_instr // We use this just to see how the operation changes his code in memory
- //ldr r5, load_instr // We copy the operation code from "ldr r4,[r2]" to r5
- //add r5, r5, #4 // Offset addieren
- //str r5, load_instr // Originiale Anweisung mit der neuen \ufffdberschreiben
- subs r3, r3, #1 // Counter - 1
- bge loop // Loop if counter > 0
- str r1, [r7] // Aufsummierte Summe vor den Listenelementen im Memory speichern
- Halt:
- b Halt
- .Lfe1:
- .size main,.Lfe1-main
- .data
- //; Data definitions
- //Total DEFW 0 ; Total - initially zero
- Total: .word 0
- //One DEFW 1 ; The number one
- //Count DEFW 4 ; Loop counter (loop 5x)
- Count: .word 4
- //Table DEFW 39 ; The numbers to total ...
- // DEFW 25 ;
- // DEFW 4 ;
- // DEFW 98 ;
- // DEFW 17 ;
- Table: .word 39, 25, 4, 98, 17
- // End of File
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement