Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Loesung zu Aufgaben 3 und folgende
- // Name: Matrikelnummer:
- // Name: Matrikelnummer:
- // Datum:
- .file "aufgabe3.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:
- push {lr} @ Ruecksprungadresse und Register sichern
- @ ..
- ldr r1, Adr_StringA
- ldr r0, Adr_StringB
- bl kopieren
- @ ..
- bl grossschreibung
- @ ..
- bl sortieren
- pop {pc}
- kopieren:
- @ hier Ihr Programm zum Kopieren eines String
- loop_kopieren:
- ldrb r2, [r1], #1
- strb r2, [r0], #1
- cmn r2, r2 @addiert und setzt flaggs
- bne loop_kopieren @prüft zerobit
- ldr R0, Adr_StringB
- bx lr
- grossschreibung:
- @ hier Ihr Programm zum Wandeln in Grossbuchstaben
- ldrb r3, [r0]
- cmp r3, #91 @subtrahiert 1 von 2
- subpl r3, #32 @pl -> falls positiv
- strb r3, [r0], #1
- cmn r3, r3 @addiert die beiden uns setzt passend flaggs
- bne grossschreibung @prüft zerobit
- ldr r0, Adr_StringB
- bx lr
- sortieren:
- @ hier Ihr Programm zum alphabetisch sortieren
- push {r5, lr}
- outer_loop:
- ldr r0 , Adr_StringB
- mov r1, #0
- inner_loop:
- ldrb r2, [r0]
- ldrb r3, [r0,#1]!
- cmp r3, r2
- strmib r3, [r0, #-1]
- strmib r2, [r0]
- movmi r1, #1
- ldrb r5, [r0,#1]
- cmn r5, r5
- bne inner_loop
- adr pc, exit
- exit:
- cmn r1, r1
- bne outer_loop
- pop {r5, pc}
- @ bx lr
- Adr_StringA: .word StringA @ auf dieser Speicherstelle liegt die Adresse, welche auf das erste Zeichen von StringA zeigt
- Adr_StringB: .word StringB
- .Lfe1:
- .size main,.Lfe1-main
- // .data-Section fuer initialisierte Daten
- .data
- StringA: .byte 'D','i','e','s','s','i','n','d','v','i','e','l','e','B','u','c','h','s','t','a','b','e','n',0
- // .comm-Section fuer nicht initialisierte Daten
- .comm StringB, 256 @ Speicherbereich mit der max. Groesse eines StringA reservieren
- // End of File
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement