Caesar Verschlüsselung in Assambler 8051

Gast #4523352
Lesenswert?

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.:)
#4523654
Lesenswert?

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 :-)
#4524108
Lesenswert?

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.
Gast #4524138
Lesenswert?

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 ;)
(Firma: www.harerod.de) Persönliche Seite #4524507
Lesenswert?

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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren