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.

  1. online cpu

  2. - instruktionssæt

  3. - internal info (ikk så interessant)

  4. Github for implementation af “maskinen” https://github.com/Schweigi/assembler-simulator

  5. ID af opcodes(instruktioner) https://github.com/Schweigi/assembler-simulator/blob/master/src/emulator/opcodes.js

  6. 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

  1. Nr 2 er instruktionssæt for Schweigi

  2. Bullet 4,(5),(6) er kun til hjælp :-)

  3. Nr 3 er god at læse for at forstå hvordan CPU virker

Opgaver

  1. Få gang i Schweigi cpu compiler

  2. kør det program der popper op på siden når man starter https:schweigi.github.ioassembler-simulator

  3. Ret tekststreng til “ABCOMTEK1111” hvad er ascii koderne for ABC osv ? Kan I se den i koden

  4. Ret tekststreng til “123” Hvor lang skal første instruktion(JMP) hoppe ? tæl før du kompilerer

  5. 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

  6. Ret original program så reference til tekststreng overføres på stack

  7. 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

  8. Lav en template hvrodan I cil dokumentere maskinkode så man nemt kan …

  9. beskrive funktion uden parametre

  10. funktion med en parameter der overføres i register

  11. 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……….