// Loesung Aufgabe 3 und 4 von Termin4 Rechnerarchitektur SS2024 // Variante Caesar Verschlüsselung // 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 // ASCII Tabelle 65 - 90 : 'A' - 'Z' // ASCII Tabelle 97 - 122: 'a' - 'z' main: push {r4, r5,r6, lr} @ Ruecksprungadresse und Register sichern mov r4, #3 @ Schlüssellänge in R4 mov r5, #29 @ andere Schlüssellänge in R5 mov r6, #55 @ andere Schlüssellänge in R6 @ hier Ihr Programm zum Verschluesseln von Text ..... MOV R0, R4 // Testfall auswaehlen, Schlüssel in R0 // ..... @ hier Ihr Programm zum Rück-Entschluesseln vom verschluesselten Text .... // ..... ende: pop {r4, r5, r6, pc} @ Ruecksprungadresse und Register Text1: .word Text Text2: .word Text_verschluesselt @ Beispiel um an Adressen aus anderen Segmenten zu kommen Text3: .word Text_unverschluesselt .Lfe1: .size main,.Lfe1-main // .data-Section fuer initialisierte Daten .data // Text, der zu verschluesseln ist Text: .asciz "CAESAR" TextEnde: // .comm-Section fuer nicht initialisierte Daten .comm Text_verschluesselt, (TextEnde-Text) @ Speicherbereich mit der von Text reservieren .comm Text_unverschluesselt, (TextEnde-Text) @ Speicherbereich mit der von Text reservieren // End of File