S L E M

S.L.E.M. (Sådan Lærer Elever Maskinsprog eller Søren Lauesens Elementære Maskine) er en udgave af Søren Lauesens model - maskine SL69.

Emner

Indledning

Datamaskinernes enorme succes skyldes ikke blot, at de er blevet utroligt billige, men nok så meget, at de er fleksible. Den samme maskine er i et øjeblik en stærk skakspiller, i det næste efterligner (simulerer) den en flyvemaskine, og i det tredie er den en raffineret skrivemaskine. Så hvorfor ikke lade datamaskinen simulere - en datamaskine.

SLEM efterligner en enkel datamakine med 64 lagerceller og en processor med ét register og et ordresæt bestående af kun 11 ordrer. Desuden er den åben i den forstand, at alt, hvad der foregår, vises på skærmen. Det skulle herved være muligt at undgå den fornemmelse af "sort kasse", mange naturligt nok får ved omgangen med de herlige maskiner.

[ Hovedmenu ] [ Ordliste ]

Datamaskiners opbygning

Alle sædvanlige datamaskiner består af

  1. et lager der indeholder en række data. Nogle af disse vil normalt ændres, når maskinen arbejder.
  2. en regneenhed der kan udføre en antal meget enkle operationer, f.eks. addere to tal. Tallene er data, der hentes til regneenheden fra lageret.
  3. en styreenhed der sørger for, at maskinen udfører de ønskede processer og i den ønskede rækkefølge.
  4. forskellige ydre enheder som er nødvendige eller nyttige, f.eks.

Lager, regneenhed og styreenhed er normalt bygget sammen til det, man kalder centralenheden (i modsætning til de ydre enheder).

Lageret (eng: Store, Memory)

En maskines lager kan opfattes som en reol med et antal hylder. Hylderne kaldes lagerceller eller blot celler. På virkelige maskiner indeholder lageret milioner af lagerceller. For overblikkets skyld har SLEM kun 64 med numrene 0 til 63. En celles nummer kaldes dens adresse.

På hver hylde kan der anbringes netop ét data-element kaldet et ord. På SLEM er et dataord et helt tal. Vi vil ikke interessere os for, hvordan lagringen af dataord foregår i praksis.

Det kan være nyttigt at forestille sig lageret som et magnetbånd: man kan læse fra det, uden at dets indhold ændres. Men skriver man et ord i en celle, forsvinder dens tidligere indhold sporløst. Man siger, at cellen er overskrevet.

Regneenheden (ALU   -   Aritmetisk - Logisk Unit)

Når et ord i lageret læses af regneenheden, opfattes det som et tal.

SLEMs regneenhed kan kun regne med hele tal (pas på ved divisioner: 7/2 = 3). Regneenheden kan udføre additioner, subtraktioner multiplikationer samt divisioner. Resultatet af en regneoperation findes i et register i regneenheden.

I virkelige maskiner er multiplikation og division stykket sammen af mange enkeltoperationer. i SLEM er de samlet i to ordrer: MLT og DIV. En anden forskel er, at virkelige regneenheder indeholder flere registre. I SLEM sker al opbevaring af data i lageret.

Styreenheden (Control Unit)

Ligesom regneenheden har et regneregister, har styreenheden et register kaldet ordepilen. Den "peger på" en celle i lageret. D.v.s. tallet i ordrepilen er adressen på en lagercelle.

Når et ord læses fra lageret ind i styreenheden, opfattes det som en ordre eller instruktion. Når maskinen arbejder, er proceduren:

  1. Det ord ordrepilen peger på hentes ind i styreenheden.
  2. Ordrepilen tælles 1 op.
  3. Ordet i styreenheden fortolkes som en ordre. D.v.s. ordet skilles i en adresse-del (de sidste 2 ciffre) og en instruktions-del (resten).
  4. Instruktionen udføres
  5. Der startes forfra, d.v.s. det ord ordrepilen nu peger på læses o.s.v.

[ Hovedmenu ] [ Ordliste ]

SLEMs ordrekatalog

SLEMs ordrekatalog er

[ Hovedmenu ] [ Ordliste ]

Programmer

Et program er en række koder, der få maskinen til at udføre et specielt job. Drejer det sig om at addere to tal, kan man gå frem som følger:

  1. Maskinen læser to tal fra tastaturet.
  2. Summen af de to tal beregnes.
  3. Resultatet udskrives.

Programmet kan være:

Bootstrap

Baron von Münchaussen trak efter sigende sig selv op af en sump ved at hive i sine støvlestropper. Maskinens "støvlestrop" er et medfødt program, der gør det muligt at indlæse de egentlige programmer. SLEM's bootstrap - program er:

Læg mærke til, at bootstrappen behandler en ordre (læsordren 700) som data.

[ Hovedmenu ] [ Ordliste ]

SLEM

Brugsanvisning

0:STP   1:HNT   2:GEM   3:ADD   4:SUB   5:MLT   6:DIV   7:LÆS   8:TRK   9:HOP   10:HNG
Register: Ordrepil: Ordre: Breakpoint:
0 8 16 24 32 40 48 56
1 9 17 25 33 41 49 57
2 10 18 26 34 42 50 58
3 11 19 27 35 43 51 59
4 12 20 28 36 44 52 60
5 13 21 29 37 45 53 61
6 14 22 30 38 46 54 62
7 15 23 31 39 47 55 63

MaskinkodeAssemblertekst


Gemme og hente programmer
At gemme programmet
  1. Programmet kopierers til skrivefeltet med Hent.
  2. Læg programmet i udklipsholderen ved at selektere det og Ctrl c.
  3. Programteksten overføres til et tekstbehandlingsprogram med Ctrl v og gemmes.
At hente programmet
  1. Programteksten åbnes i et tekstbehandlingsprogram og overføres til udklipsholderen med Ctrl a + Ctrl c.
  2. Programmet kopierers til SLEM's skrivefelt med Ctrl v.
  3. Indlæs overfører programmet til SLEM's lager.

Programeksempler

Du kan downloade følgende SLEM - programmer

[ Hovedmenu ] [ Ordliste ]

SLAM - en assembler til SLEM

Der er mange problemer forbundet ved at skrive programmer direkte i maskinkode. Man skal f.eks selv holde rede på, hvor instruktioner og data ligger i lageret.
Derfor udvikles assemblere, som er programmer, der oversætter en mere læselig programtekst til maskinsprog. Prisen er, at assemblergenereret maskinkode ofte er noget længere, end hvis den var skrevet i hånden, og at det er vanskeligt at skrive programmer, der som SLEMs bootstrap manipulerer kode (og ikke blot data).

Der kan anvendes symbolske navne for variable og adresser i lageret.
Variabelnavne består af bogstaver og tal og begynder med at bogstav. Labelnavne består af ét tal eller bogstav.
Alle bogstaver er små.

SLAM accepterer sætningerne

Hertil kommer tildelingssætninger, som kan have to former

' variabel2 ' og ' variabel3' kan eventuelt være tal.

SLAM foretager (for nærværende) ikke syntax - check og giver ikke fejlmeddelelser.

Programeksempler

Du kan downloade følgende SLAM - programmer

[ Hovedmenu ] [ Ordliste ]

Links

Her er en amerikansk side om computerarkitektur

[ Hovedmenu ] [ Ordliste ] [ Tilbage til hovedsiden ]