Grundkurs Informatik Aufgabensammlung mit Lösungen Teil 1

Grundkurs Informatik Aufgabensammlung mit Lösungen Teil 1 Grundkurs Informatik Aufgabensammlung mit Lösungen Teil 1

www2.fh.rosenheim.de
von www2.fh.rosenheim.de Mehr von diesem Publisher
30.11.2012 Aufrufe

1-94 Aufgaben und Lösungen 4.6 Maschinensprache und ASSEMBLER Aufgabe 4.6.1 (T1) a) Beschreiben Sie kurz die Vor- und Nachteile von memory-mapped und isolated I/O. b) Erläutern Sie die Wirkungsweise der Adressierungsart ARI und erklären Sie, warum gerade diese Adressierungsart in der Praxis besonders wichtig ist. c) Erläutern Sie den Unterschied zwischen arithmetischer und logischer Verschiebung. d) Grenzen Sie die Bedeutung des C-Flag und des X-Flag gegeneinander ab. e) Welche Adressierungsarten werden vor allem bei Stack-Operationen angewendet. Lösung ### e) Als Beispiel für ARI mit Predekrement dient der Befehl MOVE.W D0,-(A7). Hierbei handelt es sich um den Transfer des Inhalts des Registers D0 in den Stack. Die Adresse ergibt sich aus dem Inhalt von A7 minus 1. In manchen anderen Assemblersprachen wird diese Operation durch den Befehl PUSH codiert, dies gilt beispielsweise für die Intel- Prozessoren. Adressregister indirekt mit Postinkrement: Durch MOVE.W (A7)+,D0 wird der Inhalt des durch (A7), d.h. durch den Inhalt des Adressregisters A7 adressierten obersten Stack-Elements wird in das Register D0 übertragen. Hier wird nach der Befehlsausführung der Inhalt von A7 durch Postinkrement um 1 erhöht. Die indirekte Adressierung mit Predekrement oder Postinkrement wird vor allem bei Stack-Operationen angewendet. Die Operandenadresse ergibt sich dann aus dem Stack-Pointer A7. In anderen Assemblersprachen steht dafür oft der Befehl POP. Aufgabe 4.6.2 (L1) Geben Sie für die folgenden Assembler-Befehle die Adressierungsarten bzgl. Quelle und Ziel an: a) MOVE D0,A0 b) MOVE #$123,(A1) c) MOVE (A7)+,D3 d) MOVE D1,$12345 Lösung Adressierungsart Adressierungsart Befehl für Quelle für Ziel MOVE D0,A0 Datenregister direkt Adressreg. direkt (implizit) MOVE #$123,(A1) Konstantenadr. (immediate) Adressregister indirekt, ARI MOVE (A7)+,D3 ARI mit Postincrement (Stack) Datenregister direkt MOVE D1,$12345 Datenregister direkt Absolut lang Aufgabe 4.6.3 (P2) Ein einfacher Mikroprozessor soll Befehle der Formate OP adr und OP verarbeiten können. Dabei soll der Befehlsteil OP jeweils durch ein Byte codiert sein, die Adressen adr sollen zwei Byte lang sein und die Speicherzellen sollen ein Byte speichern können. Es sind folgende Befehle möglich, wobei AC den Akkumulator bezeichnet: OP Befehl Bedeutung A9 LDA a Lade ein Byte von Speicherzelle a in AC 8D STA a Speichere das in AC enthaltene Byte in Speicherzelle a

Aufgaben und Lösungen 1-95 C7 SUB a Subtrahiere das Byte in Speicherzelle a von dem Inhalt des AC C8 ADD a Addiere das Byte in Speicherzelle a zu dem Inhalt von AC 76 HLT Programmende a) Im Hauptspeicher sei ab Speicherzelle 0100hex bis 0112hex ein Programm gespeichert. Ferner sollen die Speicherzellen 0113hex bis 0116hex Daten enthalten. Der relevante Speicherausschnitt habe folgenden Inhalt: 0100hex: A9 01 14 C7 01 13 8D 01 0108hex: 13 A9 01 15 C7 01 13 8D 0110hex: 01 16 76 F0 FF 0F AB 01 Der Befehlszähler soll nun mit 0100hex initialisiert werden und das Programm soll ausgeführt werden. Geben sie für jeden Einzelschritt den Inhalt des Akkumulators an. Was steht nach Beendigung des Programms in den Speicherzellen 0113hex bis 0116hex? b) Schreiben Sie unter Verwendung der oben angegebenen Befehle ein Programm, das die Inhalte der Speicherzellen 0113hex und 0114hex vertauscht. Lösung a) Adresse Befehl / Daten Was passiert? AC 0100 A9 0114 (0114) AC FF 0103 C7 0113 AC-(0114) AC 0F = FF-F0 0106 8D 0113 AC (0113) 0F 0109 A9 0115 (0115) AC 0F 010C C7 0113 AC-(0113) AC 00 = 0F-0F 010F 8D 0116 AC 0116 00 0112 76 HLT Speicherinhalt: 0113: 0F 0114: FF 0115: 0F 0116: 00 b) A9 0113 8D 0115 A9 0114 8D 0113 A9 0115 8D 0114 76

1-94 Aufgaben und <strong>Lösungen</strong><br />

4.6 Maschinensprache und ASSEMBLER<br />

Aufgabe 4.6.1 (T1)<br />

a) Beschreiben Sie kurz die Vor- und Nachteile von memory-mapped und isolated I/O.<br />

b) Erläutern Sie die Wirkungsweise der Adressierungsart ARI und erklären Sie, warum gerade<br />

diese Adressierungsart in der Praxis besonders wichtig ist.<br />

c) Erläutern Sie den Unterschied zwischen arithmetischer und logischer Verschiebung.<br />

d) Grenzen Sie die Bedeutung des C-Flag und des X-Flag gegeneinander ab.<br />

e) Welche Adressierungsarten werden vor allem bei Stack-Operationen angewendet.<br />

Lösung<br />

###<br />

e) Als Beispiel für ARI <strong>mit</strong> Predekrement dient der Befehl MOVE.W D0,-(A7). Hierbei handelt<br />

es sich um den Transfer des Inhalts des Registers D0 in den Stack. Die Adresse<br />

ergibt sich aus dem Inhalt von A7 minus 1. In manchen anderen Assemblersprachen wird<br />

diese Operation durch den Befehl PUSH codiert, dies gilt beispielsweise für die Intel-<br />

Prozessoren.<br />

Adressregister indirekt <strong>mit</strong> Postinkrement:<br />

Durch MOVE.W (A7)+,D0 wird der Inhalt des durch (A7), d.h. durch den Inhalt des Adressregisters<br />

A7 adressierten obersten Stack-Elements wird in das Register D0 übertragen.<br />

Hier wird nach der Befehlsausführung der Inhalt von A7 durch Postinkrement um 1<br />

erhöht. Die indirekte Adressierung <strong>mit</strong> Predekrement oder Postinkrement wird vor allem<br />

bei Stack-Operationen angewendet. Die Operandenadresse ergibt sich dann aus dem<br />

Stack-Pointer A7. In anderen Assemblersprachen steht dafür oft der Befehl POP.<br />

Aufgabe 4.6.2 (L1)<br />

Geben Sie für die folgenden Assembler-Befehle die Adressierungsarten bzgl. Quelle und Ziel<br />

an:<br />

a) MOVE D0,A0 b) MOVE #$123,(A1) c) MOVE (A7)+,D3 d) MOVE D1,$12345<br />

Lösung<br />

Adressierungsart Adressierungsart<br />

Befehl für Quelle für Ziel<br />

MOVE D0,A0 Datenregister direkt Adressreg. direkt (implizit)<br />

MOVE #$123,(A1) Konstantenadr. (immediate) Adressregister indirekt, ARI<br />

MOVE (A7)+,D3 ARI <strong>mit</strong> Postincrement (Stack) Datenregister direkt<br />

MOVE D1,$12345 Datenregister direkt Absolut lang<br />

Aufgabe 4.6.3 (P2)<br />

Ein einfacher Mikroprozessor soll Befehle der Formate OP adr und OP verarbeiten können.<br />

Dabei soll der Befehlsteil OP jeweils durch ein Byte codiert sein, die Adressen adr sollen<br />

zwei Byte lang sein und die Speicherzellen sollen ein Byte speichern können. Es sind folgende<br />

Befehle möglich, wobei AC den Akkumulator bezeichnet:<br />

OP Befehl Bedeutung<br />

A9 LDA a Lade ein Byte von Speicherzelle a in AC<br />

8D STA a Speichere das in AC enthaltene Byte in Speicherzelle a

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!