Dagens lektion er introduktion til maskin kodning. Dvs de instruktioner CPU'en afvikler
Vi skal bruge en virtuel simuleret CPU.
Vi skal idag se på en virtual CPU (ren simulering) der er enkel og nem at gå til :
Den er webbaseret, dvs I skal ikke installerer noget som helst.
online cpu
- instruktionssæt
- internal info (ikk så interessant)
Github for implementation af “maskinen” https://github.com/Schweigi/assembler-simulator
ID af opcodes(instruktioner) https://github.com/Schweigi/assembler-simulator/blob/master/src/emulator/opcodes.js
https://github.com/Schweigi/assembler-simulator/blob/master/src/emulator/cpu.js javascript kode impl af CPU (så I kan se hvorledes instruktioner dekodes)
Kommentar til litteratur
Nr 2 er instruktionssæt for Schweigi
Bullet 4,(5),(6) er kun til hjælp :-)
Nr 3 er god at læse for at forstå hvordan CPU virker
Opgaver
Få gang i Schweigi cpu compiler
kør det program der popper op på siden når man starter https:schweigi.github.ioassembler-simulator
Ret tekststreng til “ABCOMTEK1111” hvad er ascii koderne for ABC osv ? Kan I se den i koden
Ret tekststreng til “123” Hvor lang skal første instruktion(JMP) hoppe ? tæl før du kompilerer
Ret første program så print kaldes med to parametre 1) adr i output hvor der skal skrives 2) adre på første karakter 3) hvor mange der skal skrives ud
Ret original program så reference til tekststreng overføres på stack
Lav en funktion byte gang2(byte b) dvs returnerer i A reg parameter * 2. Frit om I vil tage var med i register eller stak
Lav en template hvrodan I cil dokumentere maskinkode så man nemt kan …
beskrive funktion uden parametre
funktion med en parameter der overføres i register
funktion med en parameter der overføres på stak - husk der er noget med at rydde op på stak før efter, husk der er noget med cvall by reference/value……….
|