25.01.2014 Aufrufe

Musterlösung - Institut für Kommunikationsnetze und ...

Musterlösung - Institut für Kommunikationsnetze und ...

Musterlösung - Institut für Kommunikationsnetze und ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

Aufgabe 2<br />

IKR-CISC Modellprozessor: Assemblerprogrammierung<br />

Frage 1 a) Geben Sie die Assemblerbefehlszeile an, mit welcher der Inhalt des Feldes<br />

3 Punkte LEN in myArray ausgelesen <strong>und</strong> in Register D0 geschrieben wird. Die<br />

Startadresse von myArray sei in Adressregister A0 abgelegt.<br />

MOVE (2,A0),D0<br />

b) Geben Sie die genaue Bezeichnung der verwendeten Adressierungsart an.<br />

Adressregister indirekt mit Offset<br />

Frage 2<br />

6 Punkte<br />

Schreiben Sie die Routine ARRAY_GET. Falls der Index auf einen Wert außerhalb<br />

des Arrays verweist, soll in D1 der Wert 1 zurückgegeben werden.<br />

ARRAY_GET: CMP (2,A0),D0 ;Index zu groß?<br />

BCC ARRAY_ERROR ;CC? = Higher or Same?<br />

LSL D0<br />

;Byte-Index berechnen<br />

MOVE (4,A0,D0),D0 ;Datenwert auslesen<br />

CLR D1<br />

;Fehlerflag loeschen<br />

RTS<br />

ARRAY_ERROR: MOVE #1,D1<br />

RTS<br />

;Fehlerflag setzen<br />

Frage 3<br />

9 Punkte<br />

Schreiben Sie die vollständige Routine LLIST_GET.<br />

LLIST_GET: MOVE (2,A0),A0 ;A0 := HEAD<br />

LLIST_LOOP: CMP #0,A0 ;Element-Adresse = 0 ?<br />

BEQ LLIST_ERROR<br />

TST D0<br />

;Position erreicht?<br />

BEQ LLIST_FOUND<br />

SUB #1,D0<br />

;Zaehler dekrementieren<br />

MOVE (2,A0),A0 ;A0 := NEXT<br />

BRA LLIST_LOOP<br />

LLIST_FOUND: MOVE (4,A0),D0 ;VALUE auslesen<br />

CLR D1<br />

;Fehlerflag loeschen<br />

RTS<br />

LLIST_ERROR: MOVE #1,D1<br />

RTS<br />

;Fehlerflag setzen<br />

Aufgabe 2 Seite 6

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!