Caesar Verschlüsselung

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • Caesar Verschlüsselung

      Quellcode

      1. ;-----------------------------------------------------------
      2. ; Praktikum Rechnerstrukturen und Betriebssysteme 1
      3. ; Fachhochschule Dortmund
      4. ; Caesar-Verschlüsselung dechiffrieren
      5. ;-----------------------------------------------------------
      6. .include "m32def.inc"
      7. .cseg ; Programmspeicher adressieren
      8. .org 0x0000 ; Platziert das Programm ab Adresse 0x0000 im Programmspeicher
      9. ;-----------------------------------------------------------
      10. ; Stackpointer initialisieren
      11. ldi r17,low(RAMEND) ; Low Stackpointer und
      12. out spl,r17
      13. ldi r17,high(RAMEND) ; High Stackpointer auf
      14. out sph,r17 ; Ende des SRAMs setzen
      15. ; die folgende Subroutine beim Debuggen am besten mit F10 überspringen!
      16. rcall startup ; Konstanten in den Datenspeicher (SRAM) kopieren
      17. ;-----------------------------------------------------------
      18. ; Layout des Datenspeichers nach der Initialisierung
      19. ; $0100-$01FF Schlüssel zum Verschlüsseln
      20. ; $0200-$02FF Schlüssel zum Entschlüsseln
      21. ; $0300 Hier legen Sie die Länge der Botschaft ab!
      22. ; $0302- die Botschaft als C-String
      23. ;-----------------------------------------------------------
      24. ; schreiben Sie Ihr Programm hierher!
      25. ldi xl, 0x02
      26. ldi xh, 0x03
      27. ldi yh, 0x02
      28. ldi zl, 0x30
      29. ldi zh, 0x03
      30. ldi r25, 0
      31. loop_name:
      32. ld yl, x+
      33. cpi yl, 0
      34. breq end_name
      35. inc r25
      36. ld r24, y
      37. st z+, r24
      38. rjump loop_name
      39. end_name:
      40. sts $300, r25
      41. ;-----------------------------------------------------------
      42. ; Endlosschleife zum Programmende
      43. end:
      44. rjmp end ; Endlosschleife am Programmende
      45. ;-----------------------------------------------------------
      46. ; Den folgenden Code müssen Sie nicht lesen oder verstehen!
      47. ; Startup-Code zur Initialisierung des Systems
      48. ; Konstanten aus dem Programmspeicher (FLASH) in den
      49. ; Datenspeicher (SRAM) kopieren
      50. startup:
      51. ldi zl, low(2*const_start) ; zh:zl <- Quelladresse
      52. ldi zh, high(2*const_start); Quelle im Programmspeicher
      53. ldi yl, low(2*const_end) ; yh:yl <- End-Quelladresse
      54. ldi yh, high(2*const_end)
      55. ldi xl, $00 ; xh:xl <- Zieladresse
      56. ldi xh, $01 ; Ziel im Datenspeicher
      57. startup_loop:
      58. lpm r0, z+ ; Quellbyte aus Programmspeicher
      59. st x+, r0
      60. cp zl, yl
      61. cpc zh, yh
      62. brne startup_loop
      63. ret
      64. ;-----------------------------------------------------------
      65. ; Den folgenden Code müssen Sie nicht lesen oder verstehen!
      66. ; Die folgenden Daten werden von der startup-Subroutine
      67. ; aus dem Programm- in den Datenspeicher kopiert.
      68. const_start:
      69. ; Schlüssel zum Verschlüsseln
      70. .db $03,$04,$05,$06,$07,$08,$09,$0a,$0b,$0c,$0d,$0e,$0f,$10,$11,$12
      71. .db $13,$14,$15,$16,$17,$18,$19,$1a,$1b,$1c,$1d,$1e,$1f,$20,$21,$22
      72. .db $23,$24,$25,$26,$27,$28,$29,$2a,$2b,$2c,$2d,$2e,$2f,$30,$31,$32
      73. .db $33,$34,$35,$36,$37,$38,$39,$3a,$3b,$3c,$3d,$3e,$3f,$40,$41,$42
      74. .db $43,$44,$45,$46,$47,$48,$49,$4a,$4b,$4c,$4d,$4e,$4f,$50,$51,$52
      75. .db $53,$54,$55,$56,$57,$58,$59,$5a,$5b,$5c,$5d,$5e,$5f,$60,$61,$62
      76. .db $63,$64,$65,$66,$67,$68,$69,$6a,$6b,$6c,$6d,$6e,$6f,$70,$71,$72
      77. .db $73,$74,$75,$76,$77,$78,$79,$7a,$7b,$7c,$7d,$7e,$7f,$80,$81,$82
      78. .db $83,$84,$85,$86,$87,$88,$89,$8a,$8b,$8c,$8d,$8e,$8f,$90,$91,$92
      79. .db $93,$94,$95,$96,$97,$98,$99,$9a,$9b,$9c,$9d,$9e,$9f,$a0,$a1,$a2
      80. .db $a3,$a4,$a5,$a6,$a7,$a8,$a9,$aa,$ab,$ac,$ad,$ae,$af,$b0,$b1,$b2
      81. .db $b3,$b4,$b5,$b6,$b7,$b8,$b9,$ba,$bb,$bc,$bd,$be,$bf,$c0,$c1,$c2
      82. .db $c3,$c4,$c5,$c6,$c7,$c8,$c9,$ca,$cb,$cc,$cd,$ce,$cf,$d0,$d1,$d2
      83. .db $d3,$d4,$d5,$d6,$d7,$d8,$d9,$da,$db,$dc,$dd,$de,$df,$e0,$e1,$e2
      84. .db $e3,$e4,$e5,$e6,$e7,$e8,$e9,$ea,$eb,$ec,$ed,$ee,$ef,$f0,$f1,$f2
      85. .db $f3,$f4,$f5,$f6,$f7,$f8,$f9,$fa,$fb,$fc,$fd,$fe,$ff,$00,$01,$02
      86. ; Schlüssel zum Entschlüsseln
      87. .db $fd,$fe,$ff,$00,$01,$02,$03,$04,$05,$06,$07,$08,$09,$0a,$0b,$0c
      88. .db $0d,$0e,$0f,$10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$1a,$1b,$1c
      89. .db $1d,$1e,$1f,$20,$21,$22,$23,$24,$25,$26,$27,$28,$29,$2a,$2b,$2c
      90. .db $2d,$2e,$2f,$30,$31,$32,$33,$34,$35,$36,$37,$38,$39,$3a,$3b,$3c
      91. .db $3d,$3e,$3f,$40,$41,$42,$43,$44,$45,$46,$47,$48,$49,$4a,$4b,$4c
      92. .db $4d,$4e,$4f,$50,$51,$52,$53,$54,$55,$56,$57,$58,$59,$5a,$5b,$5c
      93. .db $5d,$5e,$5f,$60,$61,$62,$63,$64,$65,$66,$67,$68,$69,$6a,$6b,$6c
      94. .db $6d,$6e,$6f,$70,$71,$72,$73,$74,$75,$76,$77,$78,$79,$7a,$7b,$7c
      95. .db $7d,$7e,$7f,$80,$81,$82,$83,$84,$85,$86,$87,$88,$89,$8a,$8b,$8c
      96. .db $8d,$8e,$8f,$90,$91,$92,$93,$94,$95,$96,$97,$98,$99,$9a,$9b,$9c
      97. .db $9d,$9e,$9f,$a0,$a1,$a2,$a3,$a4,$a5,$a6,$a7,$a8,$a9,$aa,$ab,$ac
      98. .db $ad,$ae,$af,$b0,$b1,$b2,$b3,$b4,$b5,$b6,$b7,$b8,$b9,$ba,$bb,$bc
      99. .db $bd,$be,$bf,$c0,$c1,$c2,$c3,$c4,$c5,$c6,$c7,$c8,$c9,$ca,$cb,$cc
      100. .db $cd,$ce,$cf,$d0,$d1,$d2,$d3,$d4,$d5,$d6,$d7,$d8,$d9,$da,$db,$dc
      101. .db $dd,$de,$df,$e0,$e1,$e2,$e3,$e4,$e5,$e6,$e7,$e8,$e9,$ea,$eb,$ec
      102. .db $ed,$ee,$ef,$f0,$f1,$f2,$f3,$f4,$f5,$f6,$f7,$f8,$f9,$fa,$fb,$fc
      103. ; Dummy für die Stringlänge
      104. .db 0, 0
      105. ; Geheime Botschaft
      106. .db "Yhql/#ylgl/#ylfl#0#Lfk#ndp/#vdk#xqg#vlhjwh$", 0
      107. const_end:
      108. .db 0
      Alles anzeigen

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Oberleutnant20 () aus folgendem Grund: Vervollständigung des Quelltextes