Hallo zusammen, Ich muss für ein Schulprojekt ein Caesar-Verschlüsselungsprogramm mit Assembler8051 realisieren, hab allerdings keine Ahnung wie ich das hinbekommen soll da ich keinen Ansatz und insgesamt nicht viel Ahnung von Assembler-Programmierung habe. Ein Klartext soll über eine Tastatur eingegeben werden und an einem LCD Display angezeigt werden. Dann soll ein Schlüssel ausgewählt werden(Ziffer zwischen 1 und 9). Der Schlüssel beschreibt die Verschiebung der einzelnen Buchstaben des Klartextes. Am Schluss soll der zuvor eingegebene Klartext wieder entschlüsselt werden und auf dem LCD Display ausgegeben werden. Wenn jemand Lösungsvorschläge hätte würde ich mich sehr freuen.:)
John schrieb: > Ein Klartext soll über eine Tastatur > eingegeben werden und an einem LCD Display angezeigt werden. Dann soll > ein Schlüssel ausgewählt werden(Ziffer zwischen 1 und 9). Dieser Teil des Programms wird ein,zwei Größenordnungen aufwändiger sein als die Verschlüsselung...
Vorschlag zur Verschlüsselung: Mach die zuerst mal in Calc, Excel oder was du gerade da hast. Es gibt Funktionen um Zeichen in ASCII-Code umzuwandeln (und wieder zurück). Dann brauchst du nur noch dein Wissen über den Cäsarcode und die Modulo-Funktion... Dann überlegst du wie das auf einem Prozessor funktioniert. Tipp: bei einem 8-Bit-Prozessor brauchst du für die Cäsarverschlüsselung (Verschieben der Buchstaben gemäß Schlüssel, soweit ich mich erinnere) nur einen einzigen Befehl :-)
Den "einfachen Cäsar" hatte ich seinerzeit schon auf einem 6502 hinbekommen, das ist kein Akt, der Fremdunterstützung braucht. :-)
Wenn ich das richtig verstehe, besteht der ganze Algorithmus der Verschlüsselung nur aus der Addtition einer konstanten Zahl zu der Ordnungszahl eines jeden Zeichens. Alles andere macht mehr Arbeit bei der Programmierung.... ;-)
Jochen F. schrieb: > Wenn ich das richtig verstehe, besteht der ganze Algorithmus der > Verschlüsselung nur aus der Addtition einer konstanten Zahl zu der > Ordnungszahl eines jeden Zeichens. Wenn das ROT13 ist: Ja. Plus wrap-around wenn man über z bzw. Z drüberkommt.
John schrieb: > Wenn jemand Lösungsvorschläge hätte würde ich mich sehr freuen.:) versuche, deine Aufgabenstellung erst mal "umgangssprachlich" in Form eines Ablaufplanes zu formulieren. Du mußt dir VORHER über die Grundstruktur deines Gesamt-Programmes klar sein, und kannst DANN erst anfangen, dir passende Assembler-Codierbefehle oder Register raus zu suchen, welche das dann abbilden.... Welche Assemblerbefehle [oder Hochsprachen-Befehle] z.B. für "Text über Tastatur eingeben" oder "Daten auf LC Display ausgeben" benötigt werden, ist da erst mal vollkommen egal. Tatsache ist jedoch, dass du solche Funktionen/Subroutinen/Unterprogramme benötigst, welche genau das machen. Jede dieser Unter-Funktionen hat definierte Eingabewerte (die "wie auch immer" in diese Funktion hinein gelangen), eine defierte Verarbeitungslogik, und eine definierte Ausgabe. Das klassische E-V-A Prinzip halt. Überlege dir also, was pasiert wenn dein Computer eingeschaltet wird, müssen sicherlich erst mal ein paar Variablen initialisiert werden. Danach muß irgendwas in einer Endlosschleife passsieren (Warten auf Texteingabe, warten auf Schlüsseleingabe, Verschlüsseln des Textes, Entschlüsseln des Textes, Teextausgabe, ....) Beispielweise wird deine "Verschlüsslungsroutine" als {Eingabe} deinen zu verschlüsselnden Text, sowie den zu nutzenden Schlüssel kennen müssen, um in der {Verarbeitung} diesen Schlüssel gemäß Herrn Caesar auf deinen Text anzuwenden. Anschließend wird die {Ausgabe} deiner Verschlüsselungsroutine der verschlüsselte Text sein. Diese {Ausgabe} des Verschlüsselten Textes wird dann auch gleich die {Eingabe} derjenigen Rotine sein, welche als {Verarbeitungsfunktion} Textnachrichten auf einem Display darstellt etc.
:
Bearbeitet durch User
Jochen F. schrieb: > Wenn ich das richtig verstehe, besteht der ganze Algorithmus der > Verschlüsselung nur aus der Addtition einer konstanten Zahl zu der > Ordnungszahl eines jeden Zeichens. > Alles andere macht mehr Arbeit bei der Programmierung.... ;-) jep so siehts aus. Über Pointer bzw Tabelle arbeiten ;)
Jochen F. schrieb: > Wenn ich das richtig verstehe, besteht der ganze Algorithmus der > Verschlüsselung nur aus der Addtition einer konstanten Zahl zu der > Ordnungszahl eines jeden Zeichens. Den Modulo nicht vergessen... Wahlweise: wenn result größer x, dann result=result-modulo John schrieb: >... Schulprojekt ... hab allerdings keine Ahnung... Was soll das? Werden an der Schule wirklich Aufgaben verteilt, ohne dem Schüler vorher die Grundlagen zu geben? Wenn Du KEINE Ahnung hast, dann geh zum Lehrer und sag ihm das.
Marcus H. schrieb: > Was soll das? Werden an der Schule wirklich Aufgaben verteilt, ohne dem > Schüler vorher die Grundlagen zu geben? Jein. Wenn du nicht zuhörst, fehlen dir die Grundlagen. Und dann kommt die Aufgabe.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.