Zur Haupt­na­vi­ga­ti­on sprin­gen [Alt]+[0] Zum Sei­ten­in­halt sprin­gen [Alt]+[1]

Re­gis­ter­ma­schi­ne

Nach­dem die Schü­ler ge­lernt haben, wie aus lo­gi­schen Bau­ele­men­ten ma­the­ma­ti­sche Funk­tio­nen auf­ge­baut wer­den kön­nen, kann dar­aus ein Com­pu­ter auf­ge­baut wer­den. Die Bil­dungs­stan­dards sind auch er­füllt, wenn nur die­ses Ka­pi­tel be­han­delt wird, da in den Stan­dards nur der Auf­bau des Von-Neu­mann-Rech­ners und die Über­set­zungs­vor­gän­ge zwi­schen den ver­schie­de­nen Sprach­ebe­nen ver­langt wer­den. Die vor­an­ge­hen­den Ka­pi­tel sind damit Teil eines mög­li­chen Schul­cur­ri­cu­l­ums.

Im Vor­der­grund muss dabei ste­hen, den Schü­lern deut­lich zu ma­chen, dass mit we­ni­gen ver­schie­de­nen elek­tro­ni­schen Bau­ele­men­ten/Schal­tun­gen eine Viel­zahl von al­go­rith­mi­schen Pro­ble­men ge­nau­so gut ge­löst wer­den kön­nen wie mit einer Hoch­spra­che. Dazu müs­sen min­des­tens die Grund­ele­men­te eines Al­go­rith­mus Se­quenz, Ent­schei­dung und Schlei­fe be­han­delt wer­den.

Um dies zu ver­deut­li­chen, bie­tet es sich an, ein Si­mu­la­ti­ons­pro­gramm einer Re­gis­ter­ma­schi­ne ein­zu­set­zen. Im In­ter­net fin­den sich viele ver­schie­de­ne kos­ten­lo­se Pro­gram­me, die dies leis­ten.

z.B.

Sie fin­den eine di­dak­ti­sche Be­wer­tung in den Hand­rei­chun­gen zum In­for­ma­tik­un­ter­richt des ISB (Staats­in­sti­tut für Schul­qua­li­tät und Bil­dungs­for­schung Mün­chen) für Klas­se 12 (Stand: Sep. 2011).

Bis auf MI­KRO­SIM si­mu­lie­ren alle diese Pro­gram­me den Von-Neu­mann-Zy­klus als „Black Box“. Das Steu­er­werk führt den Von-Neu­mann-Zy­klus aus, ohne dass deut­lich wird, wie das mit ein­fa­chen elek­tro­ni­schen Bau­stei­nen mög­lich ist. MI­KRO­SIM be­sitzt als ein­zi­ges Si­mu­la­ti­ons­pro­gramm einen Mi­kro­pro­gramm­spei­cher, der den Über­gang von den elek­tro­ni­schen Bau­ele­men­ten zur Ma­schi­nen­spra­che schafft. Ver­zich­tet man im Un­ter­richt auf die Be­hand­lung von elek­tro­ni­schen Bau­ele­men­ten, ist die­ser Schritt nicht not­wen­dig und es kann einer der an­de­ren Si­mu­la­to­ren ver­wen­det wer­den. Für den hier vor­ge­schla­ge­nen Un­ter­richts­gang ist MI­KRO­SIM aber am bes­ten ge­eig­net.

Ein­zi­ger Nach­teil: Um MI­KRO­SIM mög­lichst ein­fach zu hal­ten, müs­sen auch Daten, die ins OP bzw. IP Re­gis­ter über­tra­gen wer­den, durch die ALU lau­fen. Dies ist bei einem rea­len Rech­ner nicht so, da dies den PC er­heb­lich aus­brem­sen würde. Ein Ne­ben­ef­fekt davon ist, dass das Sta­tus­re­gis­ter in MI­KRO­SIM nicht vom Er­geb­nis der letz­ten Be­rech­nung der ALU son­dern vom Zu­stand des AX Re­gis­ters ab­hängt. Dies ist nicht an­ders rea­li­sier­bar, weil an­dern­falls die Trans­por­to­pe­ra­tio­nen in das OP-Re­gis­ter (Von-Neu­mann Zy­klus), die In­for­ma­tio­nen im Sta­tus­re­gis­ter so­fort wie­der über­schrei­ben wür­den.

MI­KRO­SIM kann ent­we­der im Tau­schlauf­werk be­reit­ge­stellt oder in einem Ver­zeich­nis auf dem Ser­ver ab­ge­legt wer­den. Es ist keine spe­zi­el­le In­stal­la­ti­on er­for­der­lich.

Un­ter­richts­gang mit MI­KRO­SIM

Die Datei Mi­kro­sim.odt ent­hält ein Leit­pro­gramm, mit dem die Schü­le­rin­nen und Schü­ler ler­nen mit MI­KRO­SIM um­zu­ge­hen, einen funk­ti­ons­fä­hi­gen Com­pu­ter auf­zu­bau­en und am Ende die Über­set­zung von Java-Pro­gram­men in Ma­schi­nen­code für den MI­KRO­SIM-Com­pu­ter zu be­werk­stel­li­gen. Die Schü­ler kön­nen die­ses Leit­pro­gramm im We­sent­li­chen selbst­stän­dig ab­ar­bei­ten. Als Leh­rer ist es nur wich­tig, den Schü­lern den „roten Faden“ zu zei­gen: Wel­chen Zweck er­fül­len die Auf­ga­ben des Leit­pro­gramms? In wel­cher Ebene der Über­set­zung eines Java-Pro­gramms in Schalt­im­pul­se für den Com­pu­ter be­we­gen wir uns ge­ra­de?

Le­dig­lich die Ein­füh­rung der As­sem­bler-Be­feh­le einer be­schränk­ten Mini-As­sem­bler-Spra­che soll­te in einem Leh­rer-Schü­ler-Ge­spräch er­fol­gen. Dabei ist es wich­tig, den Schü­lern die (etwas ge­wöh­nungs­be­dürf­ti­ge) Schreib­wei­se von As­sem­bler­be­feh­len zu er­läu­tern. Es ist un­na­tür­lich, dass die Ziel­adres­se, an der das Er­geb­nis einer Ope­ra­ti­on ge­spei­chert wird, zu­erst ge­nannt wird und gleich­zei­tig auch noch der ein Pa­ra­me­ter sein kann.

Das Leit­pro­gramm glie­dert sich in meh­re­re Schrit­te:

  1. Ein­stieg: Ken­nen­ler­nen der MI­KRO­SIM-Um­ge­bung

    Es ist wich­tig, dass die Schü­ler von An­fang an, mit Tor-Öff­nun­gen ar­bei­ten und die Zah­len­wer­te nicht von Hand in die Re­gis­ter ein­ge­tra­gen wer­den.

    Die un­ter­schied­li­che Schreib­wei­se für Zah­len und Adres­sen im RAM (mit ecki­gen Klam­mern) muss even­tu­ell er­läu­tert wer­den.

    Die Auf­ga­be l) be­han­delt die Pro­ble­ma­tik des Spei­cher­über­laufs durch eine be­schränk­te Re­gis­ter­brei­te. Sie rich­tet sich vor allem an gute Schü­ler.

  2. Fol­gen von Tor­öff­nun­gen für As­sem­bler-Be­feh­le

    Hier soll­ten die not­wen­di­gen As­sem­bler-Be­feh­le be­spro­chen wer­den. Es ist klar, dass es Da­ten­trans­port- und Re­chen­be­feh­le geben muss. Die Sprung­be­feh­le kön­nen nur unter Vor­griff auf das Über­set­zen von Java-Pro­gram­men mo­ti­viert wer­den, da diese in den ein­fa­chen Übun­gen noch nicht vor­ka­men. Wich­tig ist die Un­ter­schei­dung von Zah­len­wer­ten und Adress­an­ga­ben. Die Schreib­wei­se der As­sem­bler-Be­feh­le soll­te the­ma­ti­siert wer­den.

    Dann kön­nen die Schü­ler die Fol­gen von Tor­öff­nun­gen für ex­em­pla­ri­sche As­sem­bler-Be­feh­le be­stim­men. Dies ist sinn­voll, da spä­ter eine au­to­ma­ti­sche Aus­füh­rung er­fol­gen soll und daher die Folge von Tor­öff­nun­gen be­kannt sein muss.

  3. Au­to­ma­ti­sche Aus­füh­rung von Tor­öff­nun­gen / Mi­kro­pro­gram­me

    Die Folge von Tor­öff­nun­gen wird in den Mi­kro­pro­gramm­spei­cher über­tra­gen. Dort ist eine au­to­ma­ti­sche Aus­füh­rung mög­lich. Es ist wich­tig, den Pro­zess der Er­stel­lung von Mi­kro­pro­gram­men und spä­ter von As­sem­bler-Pro­gram­men klar zu tren­nen. Der Com­pu­ter wird nicht über die Mi­kro­pro­gram­me pro­gram­miert. Diese de­fi­nie­ren nur den Be­fehls­satz des Com­pu­ters und lie­gen bei der Aus­lie­fe­rung des Com­pu­ters schon fer­tig vor.

    Zum Tes­ten der Mi­kro­pro­gram­me ist es hilf­reich, mit der Maus im MPS auf den Be­fehl (in der lin­ken Spal­te) zu kli­cken, der als nächs­tes aus­ge­führt wer­den soll.

  4. Von-Neu­mann-Zy­klus

    Der Von-Neu­mann Zy­klus wird durch Er­for­schen des fer­ti­gen Mi­kro­pro­gramms er­ar­bei­tet. Die Um­set­zung un­ter­schei­det sich ge­ring­fü­gig von der Dar­stel­lung des Von-Neu­mann Zy­klus im In­ter­net (die auch nicht immer gleich sind). Ins­be­son­de­re der De­co­de und Exe­cu­te-Teil sind durch­mischt. Bei einem rea­len Pro­zes­sor wer­den die Steu­er­si­gna­le aus dem Mi­kro­pro­gramm­spei­cher aus­ge­le­sen und in einen War­te­schlan­ge über­tra­gen (DE­CO­DE). Der Pro­zes­sor ar­bei­tet dann die War­te­schlan­ge ab (EXE­CU­TE).

    Die Auf­ga­be d) rich­tet sich nur an gute, schnel­le Schü­ler.

  5. Sprung­be­feh­le

    Die Schü­ler müs­sen er­ken­nen, dass die Sprung­be­feh­le durch die Ver­än­de­rung des IP-Re­gis­ters rea­li­siert sind und bei be­ding­ten Sprün­gen vom Sign-Flag ab­hän­gen. Das Zu­stands­dia­gramm (Ta­bel­le) soll den Schü­lern hel­fen, den Ab­lauf des As­sem­bler­pro­gramms nach­zu­voll­zie­hen. Sie kön­nen damit auch zei­gen, dass sie den Ab­lauf eines un­be­kann­ten Pro­gramms ver­stan­den haben (vgl. Ab­itur­auf­ga­be Bay­ern 20111).

    Auf­ga­be b ist eine ein­fa­che Pro­gram­mier­auf­ga­be, die eine Ent­schei­dung ver­langt. Sie soll­te von allen Schü­lern ge­löst wer­den. Auf­ga­be c) soll­te mit einer Schlei­fe um­ge­setzt wer­den. Auf­ga­ben e) und f) sind wie­der nur als Er­gän­zung ge­dacht.

  6. Hoch­spra­che / As­sem­bler

    Die Schü­ler sol­len er­ken­nen, dass Pro­gram­me der Hoch­spra­chen au­to­ma­tisch in As­sem­bler um­ge­setzt wer­den kön­nen. Au­ßer­dem sol­len sie üben, As­sem­bler-Pro­gram­me zu schrei­ben. Die Schü­ler müs­sen na­tür­lich keine per­fek­ten As­sem­bler-Pro­gram­mie­rer wer­den...

    Die Auf­ga­ben sind daher auch eher als Aus­wahl ge­dacht und müs­sen nicht alle um­ge­setzt wer­den. Die Gren­zen eines Pro­gram­mes zu er­ken­nen und be­nen­nen zu kön­nen, ge­hört zur hohen Kunst des In­for­ma­ti­kers und ist nicht von jedem Schü­ler zu leis­ten.

    Die Ver­wen­dung des Java-Com­pi­lers soll den Schü­lern nur zei­gen, dass die­ser Über­set­zungs­vor­gang auch au­to­ma­tisch er­fol­gen kann. Es geht nicht darum, die­ses Pro­gramm aus­gie­big ein­zu­set­zen. Es ist auch nicht not­wen­dig, dass die Schü­ler ver­ste­hen, wie die Be­rech­nung von Ter­men mit einem Stack von­stat­ten geht. Für in­ter­es­sier­te Schü­ler bie­tet sich dies aber als GFS-Thema an2.


1 Ab­itur­auf­ga­ben In­for­ma­tik – Bay­ern 2011 (Stand: Sep. 2011)

2 Um­ge­kehr­te Pol­ni­sche No­ta­ti­on In: Wi­ki­pe­dia, Die freie En­zy­klo­pä­die. (Stand: 26. Sep. 2011)

 

 

Un­ter­richts­gang: Her­un­ter­la­den [odt][72 KB]

 

Wei­ter zu Un­ter­richts­ver­lauf