Neue Befehle erfinden

LeitfrageKann man einer CPU neue Befehle beibringen – oder mit weniger Befehlen auskommen?
langsam schnell
0 Takte · 0 Befehle

Speicher RAM

1000 Zellen · 000–999
pc ab 000 11.100 ? 11100
001 10.000 HLT 000
002 00.000
003 00.000
004 00.000
005 00.000
006 00.000
007 00.000
008 00.000
009 00.000
010 00.000
011 00.000
012 00.000
013 00.000
014 00.000
015 00.000
016 00.000
017 00.000
018 00.000
Zelle anklicken, Wert eingeben, mit Enter schreiben.
Adressbus ab
000

Welche Zelle?

Datenbus db
00000

Welcher Wert?

Rechenwerk ALU

Akkumulator acc
00000
=0?

Steuerwerk CU

als Nächstes: pc→ab
Befehlsregister ins
Opcode00 . Adresse000
kein Befehl
Programmzähler pc
000
Mikroprogrammzähler mc
000 FETCH · Schritt 0
Mikrocode – die „Rezepte“ der Befehle
000 FETCH
0pc→ab1ram→db2db→ins3ins→mc
010 TAKE Opcode 01
0ins→ab1ram→db2db→acc3pc++4mc:=0
020 ADD Opcode 02
0ins→ab1ram→db2plus3pc++4mc:=0
030 SUB Opcode 03
0ins→ab1ram→db2minus3pc++4mc:=0
040 SAVE Opcode 04
0ins→ab1acc→db2db→ram3pc++4mc:=0
050 JMP Opcode 05
0ins→pc1mc:=0
060 TST Opcode 06
0ins→ab1ram→db2db→acc3=0:pc++4pc++5mc:=0
070 INC Opcode 07
0ins→ab1ram→db2db→acc3acc++4acc→db5db→ram6pc++7mc:=0
080 DEC Opcode 08
0ins→ab1ram→db2db→acc3acc--4acc→db5db→ram6pc++7mc:=0
090 NULL Opcode 09
0ins→ab1acc:=02acc→db3db→ram4pc++5mc:=0
100 HLT Opcode 10
0stopp1mc:=0
Eigenen Befehl aufnehmen
Protokoll – was ist gerade passiert? (0)
  1. Noch nichts passiert.