Größen aus Bildertags entfernt

master
Robert Jacob 3 months ago
parent 53397856aa
commit 3dfdaf6ab8
  1. 30
      content/projekt/HE32/index.md

@ -9,7 +9,7 @@ image: HE32_Overview.png
keywords: NAND2TETRIS, jack, hack
---
{{< image alt="Showtime" src="HE32_Overview.png" size="1920x1080 q90">}}
{{< image alt="Showtime" src="HE32_Overview.png">}}
## Motivation ##
@ -20,8 +20,8 @@ Dragon-Books erinnere (dort werden im Wesentlichen die Grundlagen für die Nutzu
lex & yacc gelegt - heute: flex & bison). Ich habe damals nach ca. 3/4 des Buches aufgehört ...
<div class="pure-g">
{{<image alt="Cover1" src="BookCover.jpg" size="400x240 q90" class="pure-u-1 pure-u-md-1-2" >}}
{{<image alt="Cover2" src="BookCoverOld.jpg" size="400x240 q90" class="pure-u-1 pure-u-md-1-2" >}}
{{< image alt="Cover1" src="BookCover.jpg" class="pure-u-1 pure-u-md-1-2" >}}
{{< image alt="Cover2" src="BookCoverOld.jpg" class="pure-u-1 pure-u-md-1-2" >}}
</div>
Das neuere Buch ist ursprünglich aus dem - in der angelsächsischen Welt - recht bekannten
@ -71,19 +71,19 @@ im beigestellten Simulator mittels Testscript verifiziert.
Das sieht dann ungefähr so aus:
<div class="pure-g">
{{<image alt="HDL Code Sample" src="hdl_code.png" size="640x480 q90" class="pure-u-1 pure-u-md-1-2" >}}
{{<image alt="HDL Simulator" src="hdl_simulator.png" size="640x480 q90" class="pure-u-1 pure-u-md-1-2" >}}
{{< image alt="HDL Code Sample" src="hdl_code.png" class="pure-u-1 pure-u-md-1-2" >}}
{{< image alt="HDL Simulator" src="hdl_simulator.png" class="pure-u-1 pure-u-md-1-2" >}}
</div>
Der Befehlssatz en détail:
{{<image alt="IS Overview" src="hack_is.png" size="1024x640 q90">}}
{{< image alt="IS Overview" src="hack_is.png" >}}
Hierfür ist ein Assembler zu erstellen, der als Output 16-Bit Code (als 'Binär-Text') generiert, z.Bsp. wie folgt:
<div class="pure-g">
{{<image alt="Assembly Sample" src="asm_code.png" size="640x480 q90" class="pure-u-1 pure-u-md-1-2" >}}
{{<image alt="Machine Code Sample" src="machine_code.png" size="640x480 q90" class="pure-u-1 pure-u-md-1-2" >}}
{{< image alt="Assembly Sample" src="asm_code.png" class="pure-u-1 pure-u-md-1-2" >}}
{{< image alt="Machine Code Sample" src="machine_code.png" class="pure-u-1 pure-u-md-1-2" >}}
</div>
### 2.2 VM / IL ###
@ -92,8 +92,8 @@ Zunächst macht man sich mit einer vordefinierten IL (Intermediate language) fü
vertraut. Hierzu kann der beigestellte VM-Emulator genutzt werden:
<div class="pure-g">
{{<image alt="VM Code Sample" src="vm_code.png" size="640x480 q90" class="pure-u-1 pure-u-md-1-2" >}}
{{<image alt="VM Emulator" src="vm_emulator.png" size="640x480 q90" class="pure-u-1 pure-u-md-1-2" >}}
{{< image alt="VM Code Sample" src="vm_code.png" class="pure-u-1 pure-u-md-1-2" >}}
{{< image alt="VM Emulator" src="vm_emulator.png" class="pure-u-1 pure-u-md-1-2" >}}
</div>
Als nächstes wird ein Übersetzer erstellt, von VM-Code zu Assembly Language. Wenn man diesen mit dem unter
@ -107,17 +107,17 @@ Sogar Objekte können bereits angelegt werden!
Hier mal die formale Definition:
{{<image alt="Jack Grammar" src="jack_grammar.png" size="1920x1080 q90">}}
{{< image alt="Jack Grammar" src="jack_grammar.png" >}}
Praktisch sieht der Code z.Bsp. so aus:
{{<image alt="Jack Code Sample" src="jack_code.png" size="640x480 q90" class="pure-u-1 pure-u-md-1-2" >}}
{{< image alt="Jack Code Sample" src="jack_code.png" >}}
Auch hierfür ist - unter Anleitung - ein Compiler zu erstellen. Dieser erzeugt aus Jack dann VM-Code:
<div class="pure-g">
{{<image alt="Jack Code" src="jack_code_main.png" size="640x480 q90" class="pure-u-1 pure-u-md-1-2" >}}
{{<image alt="VM Code" src="vm_code_main.png" size="640x480 q90" class="pure-u-1 pure-u-md-1-2" >}}
{{< image alt="Jack Code" src="jack_code_main.png" class="pure-u-1 pure-u-md-1-2" >}}
{{< image alt="VM Code" src="vm_code_main.png" class="pure-u-1 pure-u-md-1-2" >}}
</div>
Sieht doch gar nicht so kompliziert aus!
@ -192,7 +192,7 @@ Nach einigen Performance-Optimierungen läuft der HE32 jetzt ganz passabel. Nur
System-Bibliotheken anzupassen: In Math.multiply musste die Bitzahl erhöht werden und Sys.wait musste an
die neue Abarbeitungsgeschwindigkeit angepasst werden.
{{<image alt="HE32 running Pong" src="he32_run_pong.png" size="1920x1080 q90">}}
{{< image alt="HE32 running Pong" src="he32_run_pong.png" >}}
Die [Quellen zu HE32](https://git.hacknology.de/projekte/HE32) finden sich wie gehabt auf dem hacKNology git-server.

Loading…
Cancel
Save