lehrkraefte:blc:informatik:ffprg2-2018:ffprg2-2018

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Last revision Both sides next revision
lehrkraefte:blc:informatik:ffprg2-2018:ffprg2-2018 [2019/01/18 16:04]
Ivo Blöchliger [7-Segment-Anzeige-Demo]
lehrkraefte:blc:informatik:ffprg2-2018:ffprg2-2018 [2019/01/18 17:19]
Ivo Blöchliger [Busy Beaver]
Line 55: Line 55:
 MOV [255], 0111000b MOV [255], 0111000b
 </code> </code>
 +
 +
 +Manipulierte Rücksprungadresse
  
 <code asm> <code asm>
- mov A, 'A'+ mov A, 'A'   ; Schreibt 65 (ASCII A) ins Register A
 start: start:
- inc A+ inc A          ; Erhöht den Inhalt vom Register A um 1
  mov [232], A   ;Schreibt den Wert 65 'A' in die Zelle 232  mov [232], A   ;Schreibt den Wert 65 'A' in die Zelle 232
  call bla         ;Unterprogramm aufrufen (Adr. auf Stack)  call bla         ;Unterprogramm aufrufen (Adr. auf Stack)
 +ruecksprung:
  hlt ;Halt  hlt ;Halt
  
  
 bla: bla:
- mov [253], 1111111b   ;Alle 7 Bits für 7-Segment-Anzeige+ mov [253],   ;Alle 7 Bits für 7-Segment-Anzeige 
 + mov [SP+1], start    ; Rücksprungadresse überschreiben
  ret                   ;Rücksprung auf nach call  ret                   ;Rücksprung auf nach call
 +</code>
 +
 +
 +Ausgabe des LOL-Codes:
 +<code asm>
 +
 +lol:
 +MOV [253], 0111000b
 +MOV [254], 0111111b
 +MOV [255], 0111000b
 +
 +fertig:
 + mov A, fertig
 + dec A
 + mov B, 252
 +loop:
 + mov C, [A]
 + mov [B], C
 + dec B
 + dec A
 + JNC loop
 + hlt
 +
 </code> </code>
 ===== Hackme Code ===== ===== Hackme Code =====
Line 100: Line 128:
 Schaffen Sie es, indem Sie nur die DB-Zeile anpassen (das wäre so quasi der User-Input), dass <nowiki>LOL</nowiki> auf der 7-Segment Anzeige erscheint?  Schaffen Sie es, indem Sie nur die DB-Zeile anpassen (das wäre so quasi der User-Input), dass <nowiki>LOL</nowiki> auf der 7-Segment Anzeige erscheint? 
  
 +<hidden Lösungsvorschlag>
 +Mit Rücksprung direkt in die DB-Konstante (Adresse 0x02)
 +<code asm>
 +DB "ý8þ?ÿ8+       Hello World!"
 +</code>
 +Oder mit Rücksprung in die kopierten Daten an der Adresse 0xdc:
 +<code asm>
 +DB "ý8þ?ÿ8+Ü       Hello World!"
 +</code>
 +
 +</hidden>
 +
 +
 +===== Busy Beaver =====
 +<code asm>
 +start:
 + MOV B, 255
 +
 +humpfdidumpf:
 + MOV A, [B]
 + INC A
 + MOV [B], A
 + JNC humpfdidumpf
 +while:
 + DEC B
 + CMP B, ende
 + JE ende
 + MOV A, [B]
 + INC A
 + MOV [B], A
 + JC while
 + JMP start
 +ende:
 + HLT
 +</code>
  
 ===== Roborobo-Fernbedienung / Ivobot ===== ===== Roborobo-Fernbedienung / Ivobot =====
  • lehrkraefte/blc/informatik/ffprg2-2018/ffprg2-2018.txt
  • Last modified: 2019/01/25 15:34
  • by Ivo Blöchliger