This is an old revision of the document!
Assembler
- Erklären Sie, was jeder einzelne der folgenden Befehle tut und was passieren würde, wenn man die Zeile
POP A
(befehl6) löschen würde.
befehl1: MOV A, [42] befehl2: MOV A, 42 befehl3: CALL blabla befehl4: JMP befehl1 blabla: PUSH A befehl5: INC A befehl6: POP A befehl7: RET
- Folgende Information ist gegeben:
Die Ausgabe auf die drei 7-Segment Anzeigen erfolgt auf die Adressen 253 bis 255.
Die Bits auf der Anzeige sind wie folgt nummeriert:
+--0--+ 5 1 :--6--: 4 2 +--3--+
- Schreiben Sie eine Zeile Code, die die Ziffer 4 auf die erste der drei 7-Segment Anzeigen erscheinen lässt.
- Erklären Sie, was folgendes Programm tut (0xe8 ist die Startadresse der Textausgabe). Insbesondere, was ist der Zweck der letzten Zeile
DB 0
?
start: MOV A, 0xe8 MOV B, hello loop: MOV C, [B] CMP C,0 JZ ende ; JUMP if Zero MOV [A], C INC A INC B JMP loop ende: HLT hello: DB "Hallo" DB 0
Unicode
- Was ist Unicode?
- Was sind die konzeptuellen Unterschiede zwischen Unicode und UTF-8?
- Was ist der Vorteil von der Verwendung von Start- und Folgebytes?
SQL
Highscores
Gegeben ist eine sqlite-Datenbank mit folgenden Schema:
.schema CREATE TABLE USER (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT UNIQUE NOT NULL); CREATE TABLE score (id INTEGER PRIMARY KEY AUTOINCREMENT, userid INT NOT NULL, zeit TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, score INT, FOREIGN KEY(userid) REFERENCES USER(id));
Die Tabellen sind mit folgendem Inhalt gefüllt:
sqlite> select * from user; id name -- ---------- 1 vreni 2 hans 3 ueli 4 margarethe sqlite> select * from score; id userid zeit score -- ------ ------------------- ----- 1 1 2024-04-30 05:41:37 120 2 3 2024-04-30 05:41:47 104 3 4 2024-04-30 05:41:53 84 4 2 2024-04-30 05:42:00 120 5 4 2024-04-30 05:42:39 144 6 2 2024-04-30 05:42:50 110
Was liefert folgende Abfrage? Kommentieren Sie die einzelnen Teil der Abfrage.
SELECT score.score,USER.name FROM score,USER WHERE score.userid=USER.id ORDER BY score.score DESC, score.zeit ASC LIMIT 3;
Geben Sie eine Anfrage an, die alle Scores mit Zeitstempel von margarethe
in absteigender Reihenfolge ausgibt.
Freifächer
Folgendes Schema ist definiert:
CREATE TABLE student (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT NOT NULL); CREATE TABLE freifach (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT UNIQUE NOT NULL); CREATE TABLE wahl (id INTEGER PRIMARY KEY AUTOINCREMENT, freifachid INTEGER NOT NULL, studentid INTEGER NOT NULL, FOREIGN KEY(freifachid) REFERENCES freifach(id), FOREIGN KEY(studentid) REFERENCES student(id));
Folgende Daten sind eingetragen: <code txt> sqlite> select * from student; id name – ———- 1 vreni 2 hans 3 ueli 4 margarethe
sqlite> select * from freifach; id name – ———- 1 python 2 javascript 3 sql
sqlite> select * from wahl; id freifachid studentid – ———- ——— 1 1 1 2 1 3 3 2 3 4 1 4 5 2 4 6 3 4 </txt>
Schreiben Sie eine Abfrage, die die Namen aller Freifächer auflistet, die von ueli
gewählt wurden.
Erklären Sie folgende Anfrage und deren Ausgabe: <code txt> sqlite> select freifach.name, count(freifachid) from wahl,freifach where freifach.id=wahl.freifachid group by freifachid; name count(freifachid) ———- —————– python 3 javascript 2 sql 1 </txt>