diff --git a/build.ninja b/build.ninja
index 1ed28b41c9cfecaf6db6d0eef878f74fe4428825..09826ecea0d15753e1f79025a6658c862bf7eb20 100644
--- a/build.ninja
+++ b/build.ninja
@@ -1,9 +1,18 @@
 rule svg_to_pdf
     command = inkscape -o $out $in
 
+rule svg_to_eps
+    command = inkscape -o $out $in
+
 rule concatenate_pdf
     command = pdftk $in cat output $out
 
+rule asymptote_program
+    command = (cd fig/program && asy ../../$in)
+
+rule asymptote_memory
+    command = (cd fig/memory && asy ../../$in)
+
 build pipe-usage-example.pdf: concatenate_pdf fig/00-parent-begin.pdf fig/01-parent-pipe.pdf fig/02-parent-fork.pdf fig/03-parent-fork-focus-pipe.pdf fig/04-parent-switch.pdf fig/05-parent-close.pdf fig/06-parent-close-done.pdf fig/07-parent-read-blocked.pdf fig/08-child-switch.pdf fig/09-child-close.pdf fig/10-child-close-done.pdf fig/11-child-dup2.pdf fig/12-child-dup2-done.pdf fig/13-child-dup2-done2.pdf fig/14-child-exec.pdf fig/15-child-exec-done.pdf fig/16-parent-read-loop.pdf fig/17-child-exit.pdf fig/18-child-exit-done.pdf fig/18b-child-exit-done-deadlock-note.pdf fig/19-parent-close.pdf fig/20-parent-close-done.pdf
 
 build fig/00-parent-begin.pdf: svg_to_pdf fig/00-parent-begin.svg
@@ -28,3 +37,27 @@ build fig/18-child-exit-done.pdf: svg_to_pdf fig/18-child-exit-done.svg
 build fig/18b-child-exit-done-deadlock-note.pdf: svg_to_pdf fig/18b-child-exit-done-deadlock-note.svg
 build fig/19-parent-close.pdf: svg_to_pdf fig/19-parent-close.svg
 build fig/20-parent-close-done.pdf: svg_to_pdf fig/20-parent-close-done.svg
+
+build fig/program/slides-00.pdf: asymptote_program fig/program/slides.asy
+build fig/program/slides-all.pdf: concatenate_pdf fig/program/slides-00.pdf fig/program/slides-01.pdf fig/program/slides-02.pdf fig/program/slides-03.pdf fig/program/slides-04.pdf | fig/program/asm-bg-color.eps fig/program/asm-text-black.eps fig/program/bin-multiline-bg-color.eps fig/program/bin-multiline-text.eps fig/program/bin-singleline-base2-text.eps fig/program/bin-singleline-text.eps fig/program/src-bg-color.eps fig/program/src-text-black.eps fig/program/src-text-color.eps
+build fig/program/asm-bg-color.eps: svg_to_eps fig/program/asm-bg-color.svg
+build fig/program/asm-text-black.eps: svg_to_eps fig/program/asm-text-black.svg
+build fig/program/bin-multiline-bg-color.eps: svg_to_eps fig/program/bin-multiline-bg-color.svg
+build fig/program/bin-multiline-text.eps: svg_to_eps fig/program/bin-multiline-text.svg
+build fig/program/bin-singleline-base2-text.eps: svg_to_eps fig/program/bin-singleline-base2-text.svg
+build fig/program/bin-singleline-text.eps: svg_to_eps fig/program/bin-singleline-text.svg
+build fig/program/src-bg-color.eps: svg_to_eps fig/program/src-bg-color.svg
+build fig/program/src-text-black.eps: svg_to_eps fig/program/src-text-black.svg
+build fig/program/src-text-color.eps: svg_to_eps fig/program/src-text-color.svg
+
+build fig/memory/memory-all.pdf: concatenate_pdf fig/memory/memory-01.pdf fig/memory/memory-02.pdf fig/memory/memory-03.pdf fig/memory/memory-04.pdf fig/memory/memory-05.pdf fig/memory/memory-06.pdf fig/memory/memory-07.pdf fig/memory/memory-08.pdf fig/memory/memory-09.pdf fig/memory/memory-10.pdf fig/memory/memory-11.pdf
+build fig/memory/memory.pdf fig/memory/memory-00.pdf fig/memory/memory-01.pdf fig/memory/memory-02.pdf fig/memory/memory-03.pdf fig/memory/memory-04.pdf fig/memory/memory-05.pdf fig/memory/memory-06.pdf fig/memory/memory-07.pdf fig/memory/memory-08.pdf fig/memory/memory-09.pdf fig/memory/memory-10.pdf fig/memory/memory-11.pdf: asymptote_memory fig/memory/memory.asy | fig/memory/64bit-addr-read.eps fig/memory/64bit-addr-values-hexa.eps fig/memory/64bit-addr-values-hexa-final.eps fig/memory/64bit-addr-pre-write.eps fig/memory/64bit-addr-write.eps fig/memory/64bit-values-binary.eps fig/memory/64bit-values-decimal.eps fig/memory/64bit-values-hexa.eps fig/memory/memory-circuit-figure.eps
+build fig/memory/64bit-addr-read.eps: svg_to_eps fig/memory/64bit-addr-read.svg
+build fig/memory/64bit-addr-values-hexa.eps: svg_to_eps fig/memory/64bit-addr-values-hexa.svg
+build fig/memory/64bit-addr-pre-write.eps: svg_to_eps fig/memory/64bit-addr-pre-write.svg
+build fig/memory/64bit-addr-write.eps: svg_to_eps fig/memory/64bit-addr-write.svg
+build fig/memory/64bit-addr-values-hexa-final.eps: svg_to_eps fig/memory/64bit-addr-values-hexa-final.svg
+build fig/memory/64bit-values-binary.eps: svg_to_eps fig/memory/64bit-values-binary.svg
+build fig/memory/64bit-values-decimal.eps: svg_to_eps fig/memory/64bit-values-decimal.svg
+build fig/memory/64bit-values-hexa.eps: svg_to_eps fig/memory/64bit-values-hexa.svg
+build fig/memory/memory-circuit-figure.eps: svg_to_eps fig/memory/memory-circuit-figure.svg
diff --git a/code/index_of.c b/code/index_of.c
new file mode 100644
index 0000000000000000000000000000000000000000..3ce3ca5f3bbb5a73f79367d43e378f7127582069
--- /dev/null
+++ b/code/index_of.c
@@ -0,0 +1,34 @@
+// Renvoie l'indice de la première occurrence de value dans le tableau array.
+// Renvoie -1 si value n'est pas dans array.
+int index_of(int value, int size, int * array)
+{
+  for (int i = 0; i < size; ++i) {
+    if (array[i] == value)
+      return i;
+  }
+  return -1;
+}
+
+// Test de la fonction.
+#include <stdio.h>
+#include <stdlib.h>
+#define CHECK(ARRAY, SIZE, VALUE, POS) \
+  if (index_of(VALUE, SIZE, ARRAY) != POS) {\
+    fprintf(stderr, "index_of(%d) should be %d\n", VALUE, POS);\
+    exit(1);\
+  }
+
+int main() {
+  int array[6] = {1, 2, 3, 4, 2, 6};
+  CHECK(array, 6, 0, -1);
+  CHECK(array, 6, 42000, -1);
+  CHECK(array, 6, 1, 0);
+  CHECK(array, 6, 2, 1);
+  CHECK(array, 6, 3, 2);
+  CHECK(array, 6, 4, 3);
+  CHECK(array, 6, 6, 5);
+
+  CHECK(NULL, 0, 0, -1);
+  CHECK(NULL, 0, 42000, -1);
+  return 0;
+}
diff --git a/fig/memory/64bit-addr-pre-write.svg b/fig/memory/64bit-addr-pre-write.svg
new file mode 100644
index 0000000000000000000000000000000000000000..6c5917dff99fa9f5548551f77ba57f1ff7a7446f
--- /dev/null
+++ b/fig/memory/64bit-addr-pre-write.svg
@@ -0,0 +1,334 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   width="51.896801mm"
+   height="78.246597mm"
+   viewBox="0 0 51.8968 78.246597"
+   version="1.1"
+   id="svg5"
+   inkscape:version="1.2.1 (9c6d41e410, 2022-07-14)"
+   sodipodi:docname="64bit-addr-pre-write.svg"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:svg="http://www.w3.org/2000/svg">
+  <sodipodi:namedview
+     id="namedview7"
+     pagecolor="#ffffff"
+     bordercolor="#999999"
+     borderopacity="1"
+     inkscape:showpageshadow="0"
+     inkscape:pageopacity="0"
+     inkscape:pagecheckerboard="0"
+     inkscape:deskcolor="#d1d1d1"
+     inkscape:document-units="mm"
+     showgrid="false"
+     inkscape:zoom="2.209788"
+     inkscape:cx="45.026943"
+     inkscape:cy="154.08718"
+     inkscape:window-width="1916"
+     inkscape:window-height="1032"
+     inkscape:window-x="1920"
+     inkscape:window-y="22"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="layer1" />
+  <defs
+     id="defs2" />
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(-32.8283,-7.6976515)">
+    <text
+       xml:space="preserve"
+       style="font-size:4.9389px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:sans-serif;stroke-width:0.264583"
+       x="32.119595"
+       y="44.114777"
+       id="text1516"><tspan
+         sodipodi:role="line"
+         id="tspan1514"
+         style="stroke-width:0.264583"
+         x="32.119595"
+         y="44.114777" /></text>
+    <path
+       id="rect12128-7"
+       style="fill:#ffffff;stroke:#000000;stroke-width:0.499999"
+       d="m 58.560274,25.096849 v -8.478201 h 25.914828 v 8.478201"
+       sodipodi:nodetypes="cccc" />
+    <path
+       id="rect12128-7-5"
+       style="fill:#ffffff;stroke:#000000;stroke-width:0.499999"
+       d="M 58.560274,33.57505 V 25.096849 H 84.475102 V 33.57505"
+       sodipodi:nodetypes="cccc" />
+    <path
+       id="rect12128-7-3"
+       style="fill:#ffffff;stroke:#000000;stroke-width:0.499999"
+       d="M 58.560274,42.053251 V 33.57505 h 25.914828 v 8.478201"
+       sodipodi:nodetypes="cccc" />
+    <path
+       id="rect12128-7-56"
+       style="fill:#ffffff;stroke:#000000;stroke-width:0.499999"
+       d="M 58.560274,50.781451 V 42.30325 h 25.914828 v 8.478201"
+       sodipodi:nodetypes="cccc" />
+    <path
+       id="rect12128-7-2"
+       style="fill:#ffb9b9;stroke:#000000;stroke-width:0.499999;stroke-opacity:1;fill-opacity:1"
+       d="M 58.560274,59.509651 V 51.03145 h 25.914828 v 8.478201"
+       sodipodi:nodetypes="cccc" />
+    <path
+       id="rect12128-7-9"
+       style="fill:#ffffff;stroke:#000000;stroke-width:0.499999"
+       d="M 58.560274,68.237851 V 59.75965 h 25.914827 v 8.478201"
+       sodipodi:nodetypes="cccc" />
+    <path
+       id="rect12128-7-1"
+       style="fill:#ffffff;stroke:#000000;stroke-width:0.499999"
+       d="M 58.560274,76.966051 V 68.48785 h 25.914828 v 8.478201"
+       sodipodi:nodetypes="cccc" />
+    <path
+       id="rect12128-7-27"
+       style="fill:#ffffff;stroke:#000000;stroke-width:0.499999"
+       d="M 58.560274,85.694251 V 77.21605 h 25.914828 v 8.478201 z"
+       sodipodi:nodetypes="ccccc" />
+    <text
+       xml:space="preserve"
+       style="font-size:4.9389px;line-height:1.5;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle;stroke-width:0.264583"
+       x="99.89402"
+       y="23.584381"
+       id="text16825"><tspan
+         sodipodi:role="line"
+         id="tspan16823"
+         style="stroke-width:0.264583"
+         x="99.89402"
+         y="23.584381" /><tspan
+         sodipodi:role="line"
+         style="stroke-width:0.264583"
+         x="99.89402"
+         y="30.992731"
+         id="tspan16827" /><tspan
+         sodipodi:role="line"
+         style="stroke-width:0.264583"
+         x="99.89402"
+         y="38.401081"
+         id="tspan16829" /><tspan
+         sodipodi:role="line"
+         style="stroke-width:0.264583"
+         x="99.89402"
+         y="45.809433"
+         id="tspan16831" /><tspan
+         sodipodi:role="line"
+         style="stroke-width:0.264583"
+         x="99.89402"
+         y="53.217781"
+         id="tspan16833" /><tspan
+         sodipodi:role="line"
+         style="stroke-width:0.264583"
+         x="99.89402"
+         y="60.626129"
+         id="tspan16835" /><tspan
+         sodipodi:role="line"
+         style="stroke-width:0.264583"
+         x="99.89402"
+         y="68.034485"
+         id="tspan16837" /></text>
+    <text
+       xml:space="preserve"
+       style="font-size:4.9389px;line-height:1.5;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle;stroke-width:0.264583"
+       x="71.524925"
+       y="22.530577"
+       id="text16841"><tspan
+         sodipodi:role="line"
+         id="tspan16839"
+         style="stroke-width:0.264583"
+         x="71.524925"
+         y="22.530577">68</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:4.9389px;line-height:1.5;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle;stroke-width:0.264583"
+       x="71.524925"
+       y="31.008778"
+       id="text16845"><tspan
+         sodipodi:role="line"
+         id="tspan16843"
+         style="stroke-width:0.264583"
+         x="71.524925"
+         y="31.008778">69</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:4.9389px;line-height:1.5;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle;stroke-width:0.264583"
+       x="71.524925"
+       y="39.486977"
+       id="text16849"><tspan
+         sodipodi:role="line"
+         id="tspan16847"
+         style="stroke-width:0.264583"
+         x="71.524925"
+         y="39.486977">2C</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:4.9389px;line-height:1.5;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle;stroke-width:0.264583"
+       x="71.517693"
+       y="48.215179"
+       id="text16853"><tspan
+         sodipodi:role="line"
+         id="tspan16851"
+         style="stroke-width:0.264583"
+         x="71.517693"
+         y="48.215179">75</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:4.9389px;line-height:1.5;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle;stroke-width:0.264583;font-weight:normal;font-style:normal;font-stretch:normal;font-variant:normal"
+       x="71.517693"
+       y="56.943378"
+       id="text16857"><tspan
+         sodipodi:role="line"
+         id="tspan16855"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:monospace;-inkscape-font-specification:monospace;stroke-width:0.264583"
+         x="71.517693"
+         y="56.943378">67</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:4.9389px;line-height:1.5;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle;stroke-width:0.264583"
+       x="71.524925"
+       y="65.671577"
+       id="text16861"><tspan
+         sodipodi:role="line"
+         id="tspan16859"
+         style="stroke-width:0.264583"
+         x="71.524925"
+         y="65.671577">75</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:4.9389px;line-height:1.5;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle;stroke-width:0.264583"
+       x="71.524925"
+       y="74.39978"
+       id="text16865"><tspan
+         sodipodi:role="line"
+         id="tspan16863"
+         style="stroke-width:0.264583"
+         x="71.524925"
+         y="74.39978">64</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:4.9389px;line-height:1.5;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle;stroke-width:0.264583"
+       x="71.517693"
+       y="83.252975"
+       id="text16869"><tspan
+         sodipodi:role="line"
+         id="tspan16867"
+         style="stroke-width:0.264583"
+         x="71.517693"
+         y="83.252975">3F</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:4.9389px;line-height:1.5;font-family:monospace;-inkscape-font-specification:monospace;text-align:end;text-anchor:end;stroke-width:0.264583"
+       x="53.582291"
+       y="22.530577"
+       id="text39063"><tspan
+         sodipodi:role="line"
+         id="tspan39061"
+         style="text-align:end;text-anchor:end;stroke-width:0.264583"
+         x="53.582291"
+         y="22.530577">0</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:4.9389px;line-height:1.5;font-family:monospace;-inkscape-font-specification:monospace;text-align:end;text-anchor:end;stroke-width:0.264583"
+       x="53.59676"
+       y="31.011189"
+       id="text39067"><tspan
+         sodipodi:role="line"
+         id="tspan39065"
+         style="text-align:end;text-anchor:end;stroke-width:0.264583"
+         x="53.59676"
+         y="31.011189">1</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:4.9389px;line-height:1.5;font-family:monospace;-inkscape-font-specification:monospace;text-align:end;text-anchor:end;stroke-width:0.264583"
+       x="53.681164"
+       y="39.519531"
+       id="text39071"><tspan
+         sodipodi:role="line"
+         id="tspan39069"
+         style="text-align:end;text-anchor:end;stroke-width:0.264583"
+         x="53.681164"
+         y="39.519531">2</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:4.9389px;line-height:1.5;font-family:monospace;-inkscape-font-specification:monospace;text-align:end;text-anchor:end;stroke-width:0.264583"
+       x="53.632935"
+       y="48.215179"
+       id="text39075"><tspan
+         sodipodi:role="line"
+         id="tspan39073"
+         style="text-align:end;text-anchor:end;stroke-width:0.264583"
+         x="53.632935"
+         y="48.215179">3</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:4.9389px;line-height:1.5;font-family:monospace;-inkscape-font-specification:'monospace Bold';text-align:end;text-anchor:end;stroke-width:0.264583;fill:#000000;font-weight:bold;font-style:normal;font-stretch:normal;font-variant:normal"
+       x="53.497887"
+       y="56.945789"
+       id="text39079"><tspan
+         sodipodi:role="line"
+         id="tspan39077"
+         style="text-align:end;text-anchor:end;stroke-width:0.264583;fill:#000000;-inkscape-font-specification:'monospace Bold';font-family:monospace;font-weight:bold;font-style:normal;font-stretch:normal;font-variant:normal"
+         x="53.497887"
+         y="56.945789">4</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:4.9389px;line-height:1.5;font-family:monospace;-inkscape-font-specification:monospace;text-align:end;text-anchor:end;stroke-width:0.264583"
+       x="53.657047"
+       y="65.671577"
+       id="text39083"><tspan
+         sodipodi:role="line"
+         id="tspan39081"
+         style="text-align:end;text-anchor:end;stroke-width:0.264583"
+         x="53.657047"
+         y="65.671577">5</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:4.9389px;line-height:1.5;font-family:monospace;-inkscape-font-specification:monospace;text-align:end;text-anchor:end;stroke-width:0.264583"
+       x="53.582291"
+       y="74.39978"
+       id="text39087"><tspan
+         sodipodi:role="line"
+         id="tspan39085"
+         style="text-align:end;text-anchor:end;stroke-width:0.264583"
+         x="53.582291"
+         y="74.39978">6</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:4.9389px;line-height:1.5;font-family:monospace;-inkscape-font-specification:monospace;text-align:end;text-anchor:end;stroke-width:0.264583"
+       x="53.632935"
+       y="83.255386"
+       id="text39091"><tspan
+         sodipodi:role="line"
+         id="tspan39089"
+         style="text-align:end;text-anchor:end;stroke-width:0.264583"
+         x="53.632935"
+         y="83.255386">7</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:4.9389px;line-height:1.5;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle;stroke-width:0.264583"
+       x="71.524925"
+       y="12.070761"
+       id="text39095"><tspan
+         sodipodi:role="line"
+         id="tspan39093"
+         style="stroke-width:0.264583"
+         x="71.524925"
+         y="12.070761">Valeur</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:4.9389px;line-height:1.5;font-family:monospace;-inkscape-font-specification:monospace;text-align:end;text-anchor:end;stroke-width:0.264583"
+       x="53.553352"
+       y="11.450058"
+       id="text39095-0"><tspan
+         sodipodi:role="line"
+         id="tspan39093-9"
+         style="text-align:end;text-anchor:end;stroke-width:0.264583"
+         x="53.553352"
+         y="11.450058">Adresse</tspan></text>
+  </g>
+</svg>
diff --git a/fig/memory/64bit-addr-read.svg b/fig/memory/64bit-addr-read.svg
new file mode 100644
index 0000000000000000000000000000000000000000..b4eaacd1344c1d7edae2ed1005f20cbd47508bb0
--- /dev/null
+++ b/fig/memory/64bit-addr-read.svg
@@ -0,0 +1,334 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   width="51.896801mm"
+   height="78.246597mm"
+   viewBox="0 0 51.8968 78.246597"
+   version="1.1"
+   id="svg5"
+   inkscape:version="1.2.1 (9c6d41e410, 2022-07-14)"
+   sodipodi:docname="64bit-addr-read.svg"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:svg="http://www.w3.org/2000/svg">
+  <sodipodi:namedview
+     id="namedview7"
+     pagecolor="#ffffff"
+     bordercolor="#999999"
+     borderopacity="1"
+     inkscape:showpageshadow="0"
+     inkscape:pageopacity="0"
+     inkscape:pagecheckerboard="0"
+     inkscape:deskcolor="#d1d1d1"
+     inkscape:document-units="mm"
+     showgrid="false"
+     inkscape:zoom="2.209788"
+     inkscape:cx="46.837072"
+     inkscape:cy="134.17577"
+     inkscape:window-width="1916"
+     inkscape:window-height="1032"
+     inkscape:window-x="1920"
+     inkscape:window-y="22"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="layer1" />
+  <defs
+     id="defs2" />
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(-32.8283,-7.6976515)">
+    <text
+       xml:space="preserve"
+       style="font-size:4.9389px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:sans-serif;stroke-width:0.264583"
+       x="32.119595"
+       y="44.114777"
+       id="text1516"><tspan
+         sodipodi:role="line"
+         id="tspan1514"
+         style="stroke-width:0.264583"
+         x="32.119595"
+         y="44.114777" /></text>
+    <path
+       id="rect12128-7"
+       style="fill:#ffffff;stroke:#000000;stroke-width:0.499999"
+       d="m 58.560274,25.096849 v -8.478201 h 25.914828 v 8.478201"
+       sodipodi:nodetypes="cccc" />
+    <path
+       id="rect12128-7-5"
+       style="fill:#ffffff;stroke:#000000;stroke-width:0.499999"
+       d="M 58.560274,33.57505 V 25.096849 H 84.475102 V 33.57505"
+       sodipodi:nodetypes="cccc" />
+    <path
+       id="rect12128-7-3"
+       style="fill:#ffb9b9;stroke:#000000;stroke-width:0.499999;fill-opacity:1"
+       d="M 58.560274,42.053251 V 33.57505 h 25.914828 v 8.478201"
+       sodipodi:nodetypes="cccc" />
+    <path
+       id="rect12128-7-56"
+       style="fill:#ffffff;stroke:#000000;stroke-width:0.499999"
+       d="M 58.560274,50.781451 V 42.30325 h 25.914828 v 8.478201"
+       sodipodi:nodetypes="cccc" />
+    <path
+       id="rect12128-7-2"
+       style="fill:none;stroke:#000000;stroke-width:0.499999;stroke-opacity:1;fill-opacity:1"
+       d="M 58.560274,59.509651 V 51.03145 h 25.914828 v 8.478201"
+       sodipodi:nodetypes="cccc" />
+    <path
+       id="rect12128-7-9"
+       style="fill:#ffffff;stroke:#000000;stroke-width:0.499999"
+       d="M 58.560274,68.237851 V 59.75965 h 25.914827 v 8.478201"
+       sodipodi:nodetypes="cccc" />
+    <path
+       id="rect12128-7-1"
+       style="fill:#ffffff;stroke:#000000;stroke-width:0.499999"
+       d="M 58.560274,76.966051 V 68.48785 h 25.914828 v 8.478201"
+       sodipodi:nodetypes="cccc" />
+    <path
+       id="rect12128-7-27"
+       style="fill:#ffffff;stroke:#000000;stroke-width:0.499999"
+       d="M 58.560274,85.694251 V 77.21605 h 25.914828 v 8.478201 z"
+       sodipodi:nodetypes="ccccc" />
+    <text
+       xml:space="preserve"
+       style="font-size:4.9389px;line-height:1.5;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle;stroke-width:0.264583"
+       x="99.89402"
+       y="23.584381"
+       id="text16825"><tspan
+         sodipodi:role="line"
+         id="tspan16823"
+         style="stroke-width:0.264583"
+         x="99.89402"
+         y="23.584381" /><tspan
+         sodipodi:role="line"
+         style="stroke-width:0.264583"
+         x="99.89402"
+         y="30.992731"
+         id="tspan16827" /><tspan
+         sodipodi:role="line"
+         style="stroke-width:0.264583"
+         x="99.89402"
+         y="38.401081"
+         id="tspan16829" /><tspan
+         sodipodi:role="line"
+         style="stroke-width:0.264583"
+         x="99.89402"
+         y="45.809433"
+         id="tspan16831" /><tspan
+         sodipodi:role="line"
+         style="stroke-width:0.264583"
+         x="99.89402"
+         y="53.217781"
+         id="tspan16833" /><tspan
+         sodipodi:role="line"
+         style="stroke-width:0.264583"
+         x="99.89402"
+         y="60.626129"
+         id="tspan16835" /><tspan
+         sodipodi:role="line"
+         style="stroke-width:0.264583"
+         x="99.89402"
+         y="68.034485"
+         id="tspan16837" /></text>
+    <text
+       xml:space="preserve"
+       style="font-size:4.9389px;line-height:1.5;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle;stroke-width:0.264583"
+       x="71.524925"
+       y="22.530577"
+       id="text16841"><tspan
+         sodipodi:role="line"
+         id="tspan16839"
+         style="stroke-width:0.264583"
+         x="71.524925"
+         y="22.530577">68</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:4.9389px;line-height:1.5;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle;stroke-width:0.264583"
+       x="71.524925"
+       y="31.008778"
+       id="text16845"><tspan
+         sodipodi:role="line"
+         id="tspan16843"
+         style="stroke-width:0.264583"
+         x="71.524925"
+         y="31.008778">69</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:4.9389px;line-height:1.5;font-family:monospace;-inkscape-font-specification:'monospace Bold';text-align:center;text-anchor:middle;stroke-width:0.264583;font-weight:bold;font-style:normal;font-stretch:normal;font-variant:normal"
+       x="71.524925"
+       y="39.486977"
+       id="text16849"><tspan
+         sodipodi:role="line"
+         id="tspan16847"
+         style="stroke-width:0.264583;-inkscape-font-specification:'monospace Bold';font-family:monospace;font-weight:bold;font-style:normal;font-stretch:normal;font-variant:normal"
+         x="71.524925"
+         y="39.486977">2C</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:4.9389px;line-height:1.5;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle;stroke-width:0.264583"
+       x="71.517693"
+       y="48.215179"
+       id="text16853"><tspan
+         sodipodi:role="line"
+         id="tspan16851"
+         style="stroke-width:0.264583"
+         x="71.517693"
+         y="48.215179">75</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:4.9389px;line-height:1.5;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle;stroke-width:0.264583;font-weight:normal;font-style:normal;font-stretch:normal;font-variant:normal"
+       x="71.517693"
+       y="56.943378"
+       id="text16857"><tspan
+         sodipodi:role="line"
+         id="tspan16855"
+         style="stroke-width:0.264583;-inkscape-font-specification:monospace;font-family:monospace;font-weight:normal;font-style:normal;font-stretch:normal;font-variant:normal"
+         x="71.517693"
+         y="56.943378">67</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:4.9389px;line-height:1.5;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle;stroke-width:0.264583"
+       x="71.524925"
+       y="65.671577"
+       id="text16861"><tspan
+         sodipodi:role="line"
+         id="tspan16859"
+         style="stroke-width:0.264583"
+         x="71.524925"
+         y="65.671577">75</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:4.9389px;line-height:1.5;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle;stroke-width:0.264583"
+       x="71.524925"
+       y="74.39978"
+       id="text16865"><tspan
+         sodipodi:role="line"
+         id="tspan16863"
+         style="stroke-width:0.264583"
+         x="71.524925"
+         y="74.39978">64</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:4.9389px;line-height:1.5;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle;stroke-width:0.264583"
+       x="71.517693"
+       y="83.252975"
+       id="text16869"><tspan
+         sodipodi:role="line"
+         id="tspan16867"
+         style="stroke-width:0.264583"
+         x="71.517693"
+         y="83.252975">3F</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:4.9389px;line-height:1.5;font-family:monospace;-inkscape-font-specification:monospace;text-align:end;text-anchor:end;stroke-width:0.264583"
+       x="53.582291"
+       y="22.530577"
+       id="text39063"><tspan
+         sodipodi:role="line"
+         id="tspan39061"
+         style="text-align:end;text-anchor:end;stroke-width:0.264583"
+         x="53.582291"
+         y="22.530577">0</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:4.9389px;line-height:1.5;font-family:monospace;-inkscape-font-specification:monospace;text-align:end;text-anchor:end;stroke-width:0.264583"
+       x="53.59676"
+       y="31.011189"
+       id="text39067"><tspan
+         sodipodi:role="line"
+         id="tspan39065"
+         style="text-align:end;text-anchor:end;stroke-width:0.264583"
+         x="53.59676"
+         y="31.011189">1</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:4.9389px;line-height:1.5;font-family:monospace;-inkscape-font-specification:'monospace Bold';text-align:end;text-anchor:end;stroke-width:0.264583;font-weight:bold;font-style:normal;font-stretch:normal;font-variant:normal"
+       x="53.681164"
+       y="39.519531"
+       id="text39071"><tspan
+         sodipodi:role="line"
+         id="tspan39069"
+         style="text-align:end;text-anchor:end;stroke-width:0.264583;-inkscape-font-specification:'monospace Bold';font-family:monospace;font-weight:bold;font-style:normal;font-stretch:normal;font-variant:normal"
+         x="53.681164"
+         y="39.519531">2</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:4.9389px;line-height:1.5;font-family:monospace;-inkscape-font-specification:monospace;text-align:end;text-anchor:end;stroke-width:0.264583"
+       x="53.632935"
+       y="48.215179"
+       id="text39075"><tspan
+         sodipodi:role="line"
+         id="tspan39073"
+         style="text-align:end;text-anchor:end;stroke-width:0.264583"
+         x="53.632935"
+         y="48.215179">3</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:4.9389px;line-height:1.5;font-family:monospace;-inkscape-font-specification:monospace;text-align:end;text-anchor:end;stroke-width:0.264583;fill:#000000;font-weight:normal;font-style:normal;font-stretch:normal;font-variant:normal"
+       x="53.497887"
+       y="56.945789"
+       id="text39079"><tspan
+         sodipodi:role="line"
+         id="tspan39077"
+         style="text-align:end;text-anchor:end;stroke-width:0.264583;fill:#000000;-inkscape-font-specification:monospace;font-family:monospace;font-weight:normal;font-style:normal;font-stretch:normal;font-variant:normal"
+         x="53.497887"
+         y="56.945789">4</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:4.9389px;line-height:1.5;font-family:monospace;-inkscape-font-specification:monospace;text-align:end;text-anchor:end;stroke-width:0.264583"
+       x="53.657047"
+       y="65.671577"
+       id="text39083"><tspan
+         sodipodi:role="line"
+         id="tspan39081"
+         style="text-align:end;text-anchor:end;stroke-width:0.264583"
+         x="53.657047"
+         y="65.671577">5</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:4.9389px;line-height:1.5;font-family:monospace;-inkscape-font-specification:monospace;text-align:end;text-anchor:end;stroke-width:0.264583"
+       x="53.582291"
+       y="74.39978"
+       id="text39087"><tspan
+         sodipodi:role="line"
+         id="tspan39085"
+         style="text-align:end;text-anchor:end;stroke-width:0.264583"
+         x="53.582291"
+         y="74.39978">6</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:4.9389px;line-height:1.5;font-family:monospace;-inkscape-font-specification:monospace;text-align:end;text-anchor:end;stroke-width:0.264583"
+       x="53.632935"
+       y="83.255386"
+       id="text39091"><tspan
+         sodipodi:role="line"
+         id="tspan39089"
+         style="text-align:end;text-anchor:end;stroke-width:0.264583"
+         x="53.632935"
+         y="83.255386">7</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:4.9389px;line-height:1.5;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle;stroke-width:0.264583"
+       x="71.524925"
+       y="12.070761"
+       id="text39095"><tspan
+         sodipodi:role="line"
+         id="tspan39093"
+         style="stroke-width:0.264583"
+         x="71.524925"
+         y="12.070761">Valeur</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:4.9389px;line-height:1.5;font-family:monospace;-inkscape-font-specification:monospace;text-align:end;text-anchor:end;stroke-width:0.264583"
+       x="53.553352"
+       y="11.450058"
+       id="text39095-0"><tspan
+         sodipodi:role="line"
+         id="tspan39093-9"
+         style="text-align:end;text-anchor:end;stroke-width:0.264583"
+         x="53.553352"
+         y="11.450058">Adresse</tspan></text>
+  </g>
+</svg>
diff --git a/fig/memory/64bit-addr-values-hexa-final.svg b/fig/memory/64bit-addr-values-hexa-final.svg
new file mode 100644
index 0000000000000000000000000000000000000000..3382528593ef8f1b4110f912bcc1c1342685873a
--- /dev/null
+++ b/fig/memory/64bit-addr-values-hexa-final.svg
@@ -0,0 +1,334 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   width="51.896801mm"
+   height="78.247002mm"
+   viewBox="0 0 51.8968 78.247001"
+   version="1.1"
+   id="svg5"
+   inkscape:version="1.2.1 (9c6d41e410, 2022-07-14)"
+   sodipodi:docname="64bit-addr-values-hexa-final.svg"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:svg="http://www.w3.org/2000/svg">
+  <sodipodi:namedview
+     id="namedview7"
+     pagecolor="#ffffff"
+     bordercolor="#999999"
+     borderopacity="1"
+     inkscape:showpageshadow="0"
+     inkscape:pageopacity="0"
+     inkscape:pagecheckerboard="0"
+     inkscape:deskcolor="#d1d1d1"
+     inkscape:document-units="mm"
+     showgrid="false"
+     inkscape:zoom="1.5625561"
+     inkscape:cx="20.799253"
+     inkscape:cy="135.35514"
+     inkscape:window-width="1916"
+     inkscape:window-height="1032"
+     inkscape:window-x="1920"
+     inkscape:window-y="22"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="layer1" />
+  <defs
+     id="defs2" />
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(-32.8283,-7.6976515)">
+    <text
+       xml:space="preserve"
+       style="font-size:4.9389px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:sans-serif;stroke-width:0.264583"
+       x="32.119595"
+       y="44.114777"
+       id="text1516"><tspan
+         sodipodi:role="line"
+         id="tspan1514"
+         style="stroke-width:0.264583"
+         x="32.119595"
+         y="44.114777" /></text>
+    <path
+       id="rect12128-7"
+       style="fill:#ffffff;stroke:#000000;stroke-width:0.499999"
+       d="m 58.560274,25.096849 v -8.478201 h 25.914828 v 8.478201"
+       sodipodi:nodetypes="cccc" />
+    <path
+       id="rect12128-7-5"
+       style="fill:#ffffff;stroke:#000000;stroke-width:0.499999"
+       d="M 58.560274,33.57505 V 25.096849 H 84.475102 V 33.57505"
+       sodipodi:nodetypes="cccc" />
+    <path
+       id="rect12128-7-3"
+       style="fill:#ffffff;stroke:#000000;stroke-width:0.499999"
+       d="M 58.560274,42.053251 V 33.57505 h 25.914828 v 8.478201"
+       sodipodi:nodetypes="cccc" />
+    <path
+       id="rect12128-7-56"
+       style="fill:#ffffff;stroke:#000000;stroke-width:0.499999"
+       d="M 58.560274,50.781451 V 42.30325 h 25.914828 v 8.478201"
+       sodipodi:nodetypes="cccc" />
+    <path
+       id="rect12128-7-2"
+       style="fill:#ffffff;stroke:#000000;stroke-width:0.499999"
+       d="M 58.560274,59.509651 V 51.03145 h 25.914828 v 8.478201"
+       sodipodi:nodetypes="cccc" />
+    <path
+       id="rect12128-7-9"
+       style="fill:#ffffff;stroke:#000000;stroke-width:0.499999"
+       d="M 58.560274,68.237851 V 59.75965 h 25.914827 v 8.478201"
+       sodipodi:nodetypes="cccc" />
+    <path
+       id="rect12128-7-1"
+       style="fill:#ffffff;stroke:#000000;stroke-width:0.499999"
+       d="M 58.560274,76.966051 V 68.48785 h 25.914828 v 8.478201"
+       sodipodi:nodetypes="cccc" />
+    <path
+       id="rect12128-7-27"
+       style="fill:#ffffff;stroke:#000000;stroke-width:0.499999"
+       d="M 58.560274,85.694251 V 77.21605 h 25.914828 v 8.478201 z"
+       sodipodi:nodetypes="ccccc" />
+    <text
+       xml:space="preserve"
+       style="font-size:4.9389px;line-height:1.5;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle;stroke-width:0.264583"
+       x="99.89402"
+       y="23.584381"
+       id="text16825"><tspan
+         sodipodi:role="line"
+         id="tspan16823"
+         style="stroke-width:0.264583"
+         x="99.89402"
+         y="23.584381" /><tspan
+         sodipodi:role="line"
+         style="stroke-width:0.264583"
+         x="99.89402"
+         y="30.992731"
+         id="tspan16827" /><tspan
+         sodipodi:role="line"
+         style="stroke-width:0.264583"
+         x="99.89402"
+         y="38.401081"
+         id="tspan16829" /><tspan
+         sodipodi:role="line"
+         style="stroke-width:0.264583"
+         x="99.89402"
+         y="45.809433"
+         id="tspan16831" /><tspan
+         sodipodi:role="line"
+         style="stroke-width:0.264583"
+         x="99.89402"
+         y="53.217781"
+         id="tspan16833" /><tspan
+         sodipodi:role="line"
+         style="stroke-width:0.264583"
+         x="99.89402"
+         y="60.626129"
+         id="tspan16835" /><tspan
+         sodipodi:role="line"
+         style="stroke-width:0.264583"
+         x="99.89402"
+         y="68.034485"
+         id="tspan16837" /></text>
+    <text
+       xml:space="preserve"
+       style="font-size:4.9389px;line-height:1.5;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle;stroke-width:0.264583"
+       x="71.524925"
+       y="22.530577"
+       id="text16841"><tspan
+         sodipodi:role="line"
+         id="tspan16839"
+         style="stroke-width:0.264583"
+         x="71.524925"
+         y="22.530577">68</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:4.9389px;line-height:1.5;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle;stroke-width:0.264583"
+       x="71.524925"
+       y="31.008778"
+       id="text16845"><tspan
+         sodipodi:role="line"
+         id="tspan16843"
+         style="stroke-width:0.264583"
+         x="71.524925"
+         y="31.008778">69</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:4.9389px;line-height:1.5;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle;stroke-width:0.264583"
+       x="71.524925"
+       y="39.486977"
+       id="text16849"><tspan
+         sodipodi:role="line"
+         id="tspan16847"
+         style="stroke-width:0.264583"
+         x="71.524925"
+         y="39.486977">2C</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:4.9389px;line-height:1.5;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle;stroke-width:0.264583"
+       x="71.517693"
+       y="48.215179"
+       id="text16853"><tspan
+         sodipodi:role="line"
+         id="tspan16851"
+         style="stroke-width:0.264583"
+         x="71.517693"
+         y="48.215179">75</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:4.9389px;line-height:1.5;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle;stroke-width:0.264583"
+       x="71.517693"
+       y="56.943378"
+       id="text16857"><tspan
+         sodipodi:role="line"
+         id="tspan16855"
+         style="stroke-width:0.264583"
+         x="71.517693"
+         y="56.943378">6D</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:4.9389px;line-height:1.5;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle;stroke-width:0.264583"
+       x="71.524925"
+       y="65.671577"
+       id="text16861"><tspan
+         sodipodi:role="line"
+         id="tspan16859"
+         style="stroke-width:0.264583"
+         x="71.524925"
+         y="65.671577">75</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:4.9389px;line-height:1.5;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle;stroke-width:0.264583"
+       x="71.524925"
+       y="74.39978"
+       id="text16865"><tspan
+         sodipodi:role="line"
+         id="tspan16863"
+         style="stroke-width:0.264583"
+         x="71.524925"
+         y="74.39978">64</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:4.9389px;line-height:1.5;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle;stroke-width:0.264583"
+       x="71.517693"
+       y="83.252975"
+       id="text16869"><tspan
+         sodipodi:role="line"
+         id="tspan16867"
+         style="stroke-width:0.264583"
+         x="71.517693"
+         y="83.252975">3F</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:4.9389px;line-height:1.5;font-family:monospace;-inkscape-font-specification:monospace;text-align:end;text-anchor:end;stroke-width:0.264583"
+       x="53.582291"
+       y="22.530577"
+       id="text39063"><tspan
+         sodipodi:role="line"
+         id="tspan39061"
+         style="text-align:end;text-anchor:end;stroke-width:0.264583"
+         x="53.582291"
+         y="22.530577">0</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:4.9389px;line-height:1.5;font-family:monospace;-inkscape-font-specification:monospace;text-align:end;text-anchor:end;stroke-width:0.264583"
+       x="53.59676"
+       y="31.011189"
+       id="text39067"><tspan
+         sodipodi:role="line"
+         id="tspan39065"
+         style="text-align:end;text-anchor:end;stroke-width:0.264583"
+         x="53.59676"
+         y="31.011189">1</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:4.9389px;line-height:1.5;font-family:monospace;-inkscape-font-specification:monospace;text-align:end;text-anchor:end;stroke-width:0.264583"
+       x="53.681164"
+       y="39.519531"
+       id="text39071"><tspan
+         sodipodi:role="line"
+         id="tspan39069"
+         style="text-align:end;text-anchor:end;stroke-width:0.264583"
+         x="53.681164"
+         y="39.519531">2</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:4.9389px;line-height:1.5;font-family:monospace;-inkscape-font-specification:monospace;text-align:end;text-anchor:end;stroke-width:0.264583"
+       x="53.632935"
+       y="48.215179"
+       id="text39075"><tspan
+         sodipodi:role="line"
+         id="tspan39073"
+         style="text-align:end;text-anchor:end;stroke-width:0.264583"
+         x="53.632935"
+         y="48.215179">3</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:4.9389px;line-height:1.5;font-family:monospace;-inkscape-font-specification:monospace;text-align:end;text-anchor:end;stroke-width:0.264583"
+       x="53.497887"
+       y="56.945789"
+       id="text39079"><tspan
+         sodipodi:role="line"
+         id="tspan39077"
+         style="text-align:end;text-anchor:end;stroke-width:0.264583"
+         x="53.497887"
+         y="56.945789">4</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:4.9389px;line-height:1.5;font-family:monospace;-inkscape-font-specification:monospace;text-align:end;text-anchor:end;stroke-width:0.264583"
+       x="53.657047"
+       y="65.671577"
+       id="text39083"><tspan
+         sodipodi:role="line"
+         id="tspan39081"
+         style="text-align:end;text-anchor:end;stroke-width:0.264583"
+         x="53.657047"
+         y="65.671577">5</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:4.9389px;line-height:1.5;font-family:monospace;-inkscape-font-specification:monospace;text-align:end;text-anchor:end;stroke-width:0.264583"
+       x="53.582291"
+       y="74.39978"
+       id="text39087"><tspan
+         sodipodi:role="line"
+         id="tspan39085"
+         style="text-align:end;text-anchor:end;stroke-width:0.264583"
+         x="53.582291"
+         y="74.39978">6</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:4.9389px;line-height:1.5;font-family:monospace;-inkscape-font-specification:monospace;text-align:end;text-anchor:end;stroke-width:0.264583"
+       x="53.632935"
+       y="83.255386"
+       id="text39091"><tspan
+         sodipodi:role="line"
+         id="tspan39089"
+         style="text-align:end;text-anchor:end;stroke-width:0.264583"
+         x="53.632935"
+         y="83.255386">7</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:4.9389px;line-height:1.5;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle;stroke-width:0.264583"
+       x="71.524925"
+       y="12.070761"
+       id="text39095"><tspan
+         sodipodi:role="line"
+         id="tspan39093"
+         style="stroke-width:0.264583"
+         x="71.524925"
+         y="12.070761">Valeur</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:4.9389px;line-height:1.5;font-family:monospace;-inkscape-font-specification:monospace;text-align:end;text-anchor:end;stroke-width:0.264583"
+       x="53.553352"
+       y="11.450058"
+       id="text39095-0"><tspan
+         sodipodi:role="line"
+         id="tspan39093-9"
+         style="text-align:end;text-anchor:end;stroke-width:0.264583"
+         x="53.553352"
+         y="11.450058">Adresse</tspan></text>
+  </g>
+</svg>
diff --git a/fig/memory/64bit-addr-values-hexa.svg b/fig/memory/64bit-addr-values-hexa.svg
new file mode 100644
index 0000000000000000000000000000000000000000..b98d4c3951e73b55717d55cadbe77586045e9025
--- /dev/null
+++ b/fig/memory/64bit-addr-values-hexa.svg
@@ -0,0 +1,334 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   width="51.896801mm"
+   height="78.247002mm"
+   viewBox="0 0 51.8968 78.247001"
+   version="1.1"
+   id="svg5"
+   inkscape:version="1.2.1 (9c6d41e410, 2022-07-14)"
+   sodipodi:docname="64bit-addr-values-hexa.svg"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:svg="http://www.w3.org/2000/svg">
+  <sodipodi:namedview
+     id="namedview7"
+     pagecolor="#ffffff"
+     bordercolor="#999999"
+     borderopacity="1"
+     inkscape:showpageshadow="0"
+     inkscape:pageopacity="0"
+     inkscape:pagecheckerboard="0"
+     inkscape:deskcolor="#d1d1d1"
+     inkscape:document-units="mm"
+     showgrid="false"
+     inkscape:zoom="1.5625561"
+     inkscape:cx="20.799253"
+     inkscape:cy="135.35514"
+     inkscape:window-width="1916"
+     inkscape:window-height="1032"
+     inkscape:window-x="1920"
+     inkscape:window-y="22"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="layer1" />
+  <defs
+     id="defs2" />
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(-32.8283,-7.6976515)">
+    <text
+       xml:space="preserve"
+       style="font-size:4.9389px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:sans-serif;stroke-width:0.264583"
+       x="32.119595"
+       y="44.114777"
+       id="text1516"><tspan
+         sodipodi:role="line"
+         id="tspan1514"
+         style="stroke-width:0.264583"
+         x="32.119595"
+         y="44.114777" /></text>
+    <path
+       id="rect12128-7"
+       style="fill:#ffffff;stroke:#000000;stroke-width:0.499999"
+       d="m 58.560274,25.096849 v -8.478201 h 25.914828 v 8.478201"
+       sodipodi:nodetypes="cccc" />
+    <path
+       id="rect12128-7-5"
+       style="fill:#ffffff;stroke:#000000;stroke-width:0.499999"
+       d="M 58.560274,33.57505 V 25.096849 H 84.475102 V 33.57505"
+       sodipodi:nodetypes="cccc" />
+    <path
+       id="rect12128-7-3"
+       style="fill:#ffffff;stroke:#000000;stroke-width:0.499999"
+       d="M 58.560274,42.053251 V 33.57505 h 25.914828 v 8.478201"
+       sodipodi:nodetypes="cccc" />
+    <path
+       id="rect12128-7-56"
+       style="fill:#ffffff;stroke:#000000;stroke-width:0.499999"
+       d="M 58.560274,50.781451 V 42.30325 h 25.914828 v 8.478201"
+       sodipodi:nodetypes="cccc" />
+    <path
+       id="rect12128-7-2"
+       style="fill:#ffffff;stroke:#000000;stroke-width:0.499999"
+       d="M 58.560274,59.509651 V 51.03145 h 25.914828 v 8.478201"
+       sodipodi:nodetypes="cccc" />
+    <path
+       id="rect12128-7-9"
+       style="fill:#ffffff;stroke:#000000;stroke-width:0.499999"
+       d="M 58.560274,68.237851 V 59.75965 h 25.914827 v 8.478201"
+       sodipodi:nodetypes="cccc" />
+    <path
+       id="rect12128-7-1"
+       style="fill:#ffffff;stroke:#000000;stroke-width:0.499999"
+       d="M 58.560274,76.966051 V 68.48785 h 25.914828 v 8.478201"
+       sodipodi:nodetypes="cccc" />
+    <path
+       id="rect12128-7-27"
+       style="fill:#ffffff;stroke:#000000;stroke-width:0.499999"
+       d="M 58.560274,85.694251 V 77.21605 h 25.914828 v 8.478201 z"
+       sodipodi:nodetypes="ccccc" />
+    <text
+       xml:space="preserve"
+       style="font-size:4.9389px;line-height:1.5;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle;stroke-width:0.264583"
+       x="99.89402"
+       y="23.584381"
+       id="text16825"><tspan
+         sodipodi:role="line"
+         id="tspan16823"
+         style="stroke-width:0.264583"
+         x="99.89402"
+         y="23.584381" /><tspan
+         sodipodi:role="line"
+         style="stroke-width:0.264583"
+         x="99.89402"
+         y="30.992731"
+         id="tspan16827" /><tspan
+         sodipodi:role="line"
+         style="stroke-width:0.264583"
+         x="99.89402"
+         y="38.401081"
+         id="tspan16829" /><tspan
+         sodipodi:role="line"
+         style="stroke-width:0.264583"
+         x="99.89402"
+         y="45.809433"
+         id="tspan16831" /><tspan
+         sodipodi:role="line"
+         style="stroke-width:0.264583"
+         x="99.89402"
+         y="53.217781"
+         id="tspan16833" /><tspan
+         sodipodi:role="line"
+         style="stroke-width:0.264583"
+         x="99.89402"
+         y="60.626129"
+         id="tspan16835" /><tspan
+         sodipodi:role="line"
+         style="stroke-width:0.264583"
+         x="99.89402"
+         y="68.034485"
+         id="tspan16837" /></text>
+    <text
+       xml:space="preserve"
+       style="font-size:4.9389px;line-height:1.5;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle;stroke-width:0.264583"
+       x="71.524925"
+       y="22.530577"
+       id="text16841"><tspan
+         sodipodi:role="line"
+         id="tspan16839"
+         style="stroke-width:0.264583"
+         x="71.524925"
+         y="22.530577">68</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:4.9389px;line-height:1.5;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle;stroke-width:0.264583"
+       x="71.524925"
+       y="31.008778"
+       id="text16845"><tspan
+         sodipodi:role="line"
+         id="tspan16843"
+         style="stroke-width:0.264583"
+         x="71.524925"
+         y="31.008778">69</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:4.9389px;line-height:1.5;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle;stroke-width:0.264583"
+       x="71.524925"
+       y="39.486977"
+       id="text16849"><tspan
+         sodipodi:role="line"
+         id="tspan16847"
+         style="stroke-width:0.264583"
+         x="71.524925"
+         y="39.486977">2C</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:4.9389px;line-height:1.5;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle;stroke-width:0.264583"
+       x="71.517693"
+       y="48.215179"
+       id="text16853"><tspan
+         sodipodi:role="line"
+         id="tspan16851"
+         style="stroke-width:0.264583"
+         x="71.517693"
+         y="48.215179">75</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:4.9389px;line-height:1.5;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle;stroke-width:0.264583"
+       x="71.517693"
+       y="56.943378"
+       id="text16857"><tspan
+         sodipodi:role="line"
+         id="tspan16855"
+         style="stroke-width:0.264583"
+         x="71.517693"
+         y="56.943378">67</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:4.9389px;line-height:1.5;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle;stroke-width:0.264583"
+       x="71.524925"
+       y="65.671577"
+       id="text16861"><tspan
+         sodipodi:role="line"
+         id="tspan16859"
+         style="stroke-width:0.264583"
+         x="71.524925"
+         y="65.671577">75</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:4.9389px;line-height:1.5;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle;stroke-width:0.264583"
+       x="71.524925"
+       y="74.39978"
+       id="text16865"><tspan
+         sodipodi:role="line"
+         id="tspan16863"
+         style="stroke-width:0.264583"
+         x="71.524925"
+         y="74.39978">64</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:4.9389px;line-height:1.5;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle;stroke-width:0.264583"
+       x="71.517693"
+       y="83.252975"
+       id="text16869"><tspan
+         sodipodi:role="line"
+         id="tspan16867"
+         style="stroke-width:0.264583"
+         x="71.517693"
+         y="83.252975">3F</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:4.9389px;line-height:1.5;font-family:monospace;-inkscape-font-specification:monospace;text-align:end;text-anchor:end;stroke-width:0.264583"
+       x="53.582291"
+       y="22.530577"
+       id="text39063"><tspan
+         sodipodi:role="line"
+         id="tspan39061"
+         style="text-align:end;text-anchor:end;stroke-width:0.264583"
+         x="53.582291"
+         y="22.530577">0</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:4.9389px;line-height:1.5;font-family:monospace;-inkscape-font-specification:monospace;text-align:end;text-anchor:end;stroke-width:0.264583"
+       x="53.59676"
+       y="31.011189"
+       id="text39067"><tspan
+         sodipodi:role="line"
+         id="tspan39065"
+         style="text-align:end;text-anchor:end;stroke-width:0.264583"
+         x="53.59676"
+         y="31.011189">1</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:4.9389px;line-height:1.5;font-family:monospace;-inkscape-font-specification:monospace;text-align:end;text-anchor:end;stroke-width:0.264583"
+       x="53.681164"
+       y="39.519531"
+       id="text39071"><tspan
+         sodipodi:role="line"
+         id="tspan39069"
+         style="text-align:end;text-anchor:end;stroke-width:0.264583"
+         x="53.681164"
+         y="39.519531">2</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:4.9389px;line-height:1.5;font-family:monospace;-inkscape-font-specification:monospace;text-align:end;text-anchor:end;stroke-width:0.264583"
+       x="53.632935"
+       y="48.215179"
+       id="text39075"><tspan
+         sodipodi:role="line"
+         id="tspan39073"
+         style="text-align:end;text-anchor:end;stroke-width:0.264583"
+         x="53.632935"
+         y="48.215179">3</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:4.9389px;line-height:1.5;font-family:monospace;-inkscape-font-specification:monospace;text-align:end;text-anchor:end;stroke-width:0.264583"
+       x="53.497887"
+       y="56.945789"
+       id="text39079"><tspan
+         sodipodi:role="line"
+         id="tspan39077"
+         style="text-align:end;text-anchor:end;stroke-width:0.264583"
+         x="53.497887"
+         y="56.945789">4</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:4.9389px;line-height:1.5;font-family:monospace;-inkscape-font-specification:monospace;text-align:end;text-anchor:end;stroke-width:0.264583"
+       x="53.657047"
+       y="65.671577"
+       id="text39083"><tspan
+         sodipodi:role="line"
+         id="tspan39081"
+         style="text-align:end;text-anchor:end;stroke-width:0.264583"
+         x="53.657047"
+         y="65.671577">5</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:4.9389px;line-height:1.5;font-family:monospace;-inkscape-font-specification:monospace;text-align:end;text-anchor:end;stroke-width:0.264583"
+       x="53.582291"
+       y="74.39978"
+       id="text39087"><tspan
+         sodipodi:role="line"
+         id="tspan39085"
+         style="text-align:end;text-anchor:end;stroke-width:0.264583"
+         x="53.582291"
+         y="74.39978">6</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:4.9389px;line-height:1.5;font-family:monospace;-inkscape-font-specification:monospace;text-align:end;text-anchor:end;stroke-width:0.264583"
+       x="53.632935"
+       y="83.255386"
+       id="text39091"><tspan
+         sodipodi:role="line"
+         id="tspan39089"
+         style="text-align:end;text-anchor:end;stroke-width:0.264583"
+         x="53.632935"
+         y="83.255386">7</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:4.9389px;line-height:1.5;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle;stroke-width:0.264583"
+       x="71.524925"
+       y="12.070761"
+       id="text39095"><tspan
+         sodipodi:role="line"
+         id="tspan39093"
+         style="stroke-width:0.264583"
+         x="71.524925"
+         y="12.070761">Valeur</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:4.9389px;line-height:1.5;font-family:monospace;-inkscape-font-specification:monospace;text-align:end;text-anchor:end;stroke-width:0.264583"
+       x="53.553352"
+       y="11.450058"
+       id="text39095-0"><tspan
+         sodipodi:role="line"
+         id="tspan39093-9"
+         style="text-align:end;text-anchor:end;stroke-width:0.264583"
+         x="53.553352"
+         y="11.450058">Adresse</tspan></text>
+  </g>
+</svg>
diff --git a/fig/memory/64bit-addr-write.svg b/fig/memory/64bit-addr-write.svg
new file mode 100644
index 0000000000000000000000000000000000000000..263419cdf9fffaae751117050ac720813d9ceb75
--- /dev/null
+++ b/fig/memory/64bit-addr-write.svg
@@ -0,0 +1,334 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   width="51.896801mm"
+   height="78.246597mm"
+   viewBox="0 0 51.8968 78.246597"
+   version="1.1"
+   id="svg5"
+   inkscape:version="1.2.1 (9c6d41e410, 2022-07-14)"
+   sodipodi:docname="64bit-addr-write.svg"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:svg="http://www.w3.org/2000/svg">
+  <sodipodi:namedview
+     id="namedview7"
+     pagecolor="#ffffff"
+     bordercolor="#999999"
+     borderopacity="1"
+     inkscape:showpageshadow="0"
+     inkscape:pageopacity="0"
+     inkscape:pagecheckerboard="0"
+     inkscape:deskcolor="#d1d1d1"
+     inkscape:document-units="mm"
+     showgrid="false"
+     inkscape:zoom="2.209788"
+     inkscape:cx="39.596558"
+     inkscape:cy="139.60615"
+     inkscape:window-width="1916"
+     inkscape:window-height="1032"
+     inkscape:window-x="1920"
+     inkscape:window-y="22"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="layer1" />
+  <defs
+     id="defs2" />
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(-32.8283,-7.6976515)">
+    <text
+       xml:space="preserve"
+       style="font-size:4.9389px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:sans-serif;stroke-width:0.264583"
+       x="32.119595"
+       y="44.114777"
+       id="text1516"><tspan
+         sodipodi:role="line"
+         id="tspan1514"
+         style="stroke-width:0.264583"
+         x="32.119595"
+         y="44.114777" /></text>
+    <path
+       id="rect12128-7"
+       style="fill:#ffffff;stroke:#000000;stroke-width:0.499999"
+       d="m 58.560274,25.096849 v -8.478201 h 25.914828 v 8.478201"
+       sodipodi:nodetypes="cccc" />
+    <path
+       id="rect12128-7-5"
+       style="fill:#ffffff;stroke:#000000;stroke-width:0.499999"
+       d="M 58.560274,33.57505 V 25.096849 H 84.475102 V 33.57505"
+       sodipodi:nodetypes="cccc" />
+    <path
+       id="rect12128-7-3"
+       style="fill:#ffffff;stroke:#000000;stroke-width:0.499999"
+       d="M 58.560274,42.053251 V 33.57505 h 25.914828 v 8.478201"
+       sodipodi:nodetypes="cccc" />
+    <path
+       id="rect12128-7-56"
+       style="fill:#ffffff;stroke:#000000;stroke-width:0.499999"
+       d="M 58.560274,50.781451 V 42.30325 h 25.914828 v 8.478201"
+       sodipodi:nodetypes="cccc" />
+    <path
+       id="rect12128-7-2"
+       style="fill:#ffb9b9;stroke:#000000;stroke-width:0.499999;stroke-opacity:1;fill-opacity:1"
+       d="M 58.560274,59.509651 V 51.03145 h 25.914828 v 8.478201"
+       sodipodi:nodetypes="cccc" />
+    <path
+       id="rect12128-7-9"
+       style="fill:#ffffff;stroke:#000000;stroke-width:0.499999"
+       d="M 58.560274,68.237851 V 59.75965 h 25.914827 v 8.478201"
+       sodipodi:nodetypes="cccc" />
+    <path
+       id="rect12128-7-1"
+       style="fill:#ffffff;stroke:#000000;stroke-width:0.499999"
+       d="M 58.560274,76.966051 V 68.48785 h 25.914828 v 8.478201"
+       sodipodi:nodetypes="cccc" />
+    <path
+       id="rect12128-7-27"
+       style="fill:#ffffff;stroke:#000000;stroke-width:0.499999"
+       d="M 58.560274,85.694251 V 77.21605 h 25.914828 v 8.478201 z"
+       sodipodi:nodetypes="ccccc" />
+    <text
+       xml:space="preserve"
+       style="font-size:4.9389px;line-height:1.5;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle;stroke-width:0.264583"
+       x="99.89402"
+       y="23.584381"
+       id="text16825"><tspan
+         sodipodi:role="line"
+         id="tspan16823"
+         style="stroke-width:0.264583"
+         x="99.89402"
+         y="23.584381" /><tspan
+         sodipodi:role="line"
+         style="stroke-width:0.264583"
+         x="99.89402"
+         y="30.992731"
+         id="tspan16827" /><tspan
+         sodipodi:role="line"
+         style="stroke-width:0.264583"
+         x="99.89402"
+         y="38.401081"
+         id="tspan16829" /><tspan
+         sodipodi:role="line"
+         style="stroke-width:0.264583"
+         x="99.89402"
+         y="45.809433"
+         id="tspan16831" /><tspan
+         sodipodi:role="line"
+         style="stroke-width:0.264583"
+         x="99.89402"
+         y="53.217781"
+         id="tspan16833" /><tspan
+         sodipodi:role="line"
+         style="stroke-width:0.264583"
+         x="99.89402"
+         y="60.626129"
+         id="tspan16835" /><tspan
+         sodipodi:role="line"
+         style="stroke-width:0.264583"
+         x="99.89402"
+         y="68.034485"
+         id="tspan16837" /></text>
+    <text
+       xml:space="preserve"
+       style="font-size:4.9389px;line-height:1.5;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle;stroke-width:0.264583"
+       x="71.524925"
+       y="22.530577"
+       id="text16841"><tspan
+         sodipodi:role="line"
+         id="tspan16839"
+         style="stroke-width:0.264583"
+         x="71.524925"
+         y="22.530577">68</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:4.9389px;line-height:1.5;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle;stroke-width:0.264583"
+       x="71.524925"
+       y="31.008778"
+       id="text16845"><tspan
+         sodipodi:role="line"
+         id="tspan16843"
+         style="stroke-width:0.264583"
+         x="71.524925"
+         y="31.008778">69</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:4.9389px;line-height:1.5;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle;stroke-width:0.264583"
+       x="71.524925"
+       y="39.486977"
+       id="text16849"><tspan
+         sodipodi:role="line"
+         id="tspan16847"
+         style="stroke-width:0.264583"
+         x="71.524925"
+         y="39.486977">2C</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:4.9389px;line-height:1.5;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle;stroke-width:0.264583"
+       x="71.517693"
+       y="48.215179"
+       id="text16853"><tspan
+         sodipodi:role="line"
+         id="tspan16851"
+         style="stroke-width:0.264583"
+         x="71.517693"
+         y="48.215179">75</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:4.9389px;line-height:1.5;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle;stroke-width:0.264583"
+       x="71.517693"
+       y="56.943378"
+       id="text16857"><tspan
+         sodipodi:role="line"
+         id="tspan16855"
+         style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:monospace;-inkscape-font-specification:'monospace Bold';stroke-width:0.264583"
+         x="71.517693"
+         y="56.943378">6D</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:4.9389px;line-height:1.5;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle;stroke-width:0.264583"
+       x="71.524925"
+       y="65.671577"
+       id="text16861"><tspan
+         sodipodi:role="line"
+         id="tspan16859"
+         style="stroke-width:0.264583"
+         x="71.524925"
+         y="65.671577">75</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:4.9389px;line-height:1.5;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle;stroke-width:0.264583"
+       x="71.524925"
+       y="74.39978"
+       id="text16865"><tspan
+         sodipodi:role="line"
+         id="tspan16863"
+         style="stroke-width:0.264583"
+         x="71.524925"
+         y="74.39978">64</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:4.9389px;line-height:1.5;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle;stroke-width:0.264583"
+       x="71.517693"
+       y="83.252975"
+       id="text16869"><tspan
+         sodipodi:role="line"
+         id="tspan16867"
+         style="stroke-width:0.264583"
+         x="71.517693"
+         y="83.252975">3F</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:4.9389px;line-height:1.5;font-family:monospace;-inkscape-font-specification:monospace;text-align:end;text-anchor:end;stroke-width:0.264583"
+       x="53.582291"
+       y="22.530577"
+       id="text39063"><tspan
+         sodipodi:role="line"
+         id="tspan39061"
+         style="text-align:end;text-anchor:end;stroke-width:0.264583"
+         x="53.582291"
+         y="22.530577">0</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:4.9389px;line-height:1.5;font-family:monospace;-inkscape-font-specification:monospace;text-align:end;text-anchor:end;stroke-width:0.264583"
+       x="53.59676"
+       y="31.011189"
+       id="text39067"><tspan
+         sodipodi:role="line"
+         id="tspan39065"
+         style="text-align:end;text-anchor:end;stroke-width:0.264583"
+         x="53.59676"
+         y="31.011189">1</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:4.9389px;line-height:1.5;font-family:monospace;-inkscape-font-specification:monospace;text-align:end;text-anchor:end;stroke-width:0.264583"
+       x="53.681164"
+       y="39.519531"
+       id="text39071"><tspan
+         sodipodi:role="line"
+         id="tspan39069"
+         style="text-align:end;text-anchor:end;stroke-width:0.264583"
+         x="53.681164"
+         y="39.519531">2</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:4.9389px;line-height:1.5;font-family:monospace;-inkscape-font-specification:monospace;text-align:end;text-anchor:end;stroke-width:0.264583"
+       x="53.632935"
+       y="48.215179"
+       id="text39075"><tspan
+         sodipodi:role="line"
+         id="tspan39073"
+         style="text-align:end;text-anchor:end;stroke-width:0.264583"
+         x="53.632935"
+         y="48.215179">3</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:4.9389px;line-height:1.5;font-family:monospace;-inkscape-font-specification:'monospace Bold';text-align:end;text-anchor:end;stroke-width:0.264583;fill:#000000;font-weight:bold;font-style:normal;font-stretch:normal;font-variant:normal"
+       x="53.497887"
+       y="56.945789"
+       id="text39079"><tspan
+         sodipodi:role="line"
+         id="tspan39077"
+         style="text-align:end;text-anchor:end;stroke-width:0.264583;fill:#000000;-inkscape-font-specification:'monospace Bold';font-family:monospace;font-weight:bold;font-style:normal;font-stretch:normal;font-variant:normal"
+         x="53.497887"
+         y="56.945789">4</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:4.9389px;line-height:1.5;font-family:monospace;-inkscape-font-specification:monospace;text-align:end;text-anchor:end;stroke-width:0.264583"
+       x="53.657047"
+       y="65.671577"
+       id="text39083"><tspan
+         sodipodi:role="line"
+         id="tspan39081"
+         style="text-align:end;text-anchor:end;stroke-width:0.264583"
+         x="53.657047"
+         y="65.671577">5</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:4.9389px;line-height:1.5;font-family:monospace;-inkscape-font-specification:monospace;text-align:end;text-anchor:end;stroke-width:0.264583"
+       x="53.582291"
+       y="74.39978"
+       id="text39087"><tspan
+         sodipodi:role="line"
+         id="tspan39085"
+         style="text-align:end;text-anchor:end;stroke-width:0.264583"
+         x="53.582291"
+         y="74.39978">6</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:4.9389px;line-height:1.5;font-family:monospace;-inkscape-font-specification:monospace;text-align:end;text-anchor:end;stroke-width:0.264583"
+       x="53.632935"
+       y="83.255386"
+       id="text39091"><tspan
+         sodipodi:role="line"
+         id="tspan39089"
+         style="text-align:end;text-anchor:end;stroke-width:0.264583"
+         x="53.632935"
+         y="83.255386">7</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:4.9389px;line-height:1.5;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle;stroke-width:0.264583"
+       x="71.524925"
+       y="12.070761"
+       id="text39095"><tspan
+         sodipodi:role="line"
+         id="tspan39093"
+         style="stroke-width:0.264583"
+         x="71.524925"
+         y="12.070761">Valeur</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:4.9389px;line-height:1.5;font-family:monospace;-inkscape-font-specification:monospace;text-align:end;text-anchor:end;stroke-width:0.264583"
+       x="53.553352"
+       y="11.450058"
+       id="text39095-0"><tspan
+         sodipodi:role="line"
+         id="tspan39093-9"
+         style="text-align:end;text-anchor:end;stroke-width:0.264583"
+         x="53.553352"
+         y="11.450058">Adresse</tspan></text>
+  </g>
+</svg>
diff --git a/fig/memory/64bit-values-binary.svg b/fig/memory/64bit-values-binary.svg
new file mode 100644
index 0000000000000000000000000000000000000000..5d9a5e1abf533309696d471183706b549c318b6a
--- /dev/null
+++ b/fig/memory/64bit-values-binary.svg
@@ -0,0 +1,228 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   width="26.414827mm"
+   height="78.247002mm"
+   viewBox="0 0 26.414827 78.247002"
+   version="1.1"
+   id="svg5"
+   inkscape:version="1.2.1 (9c6d41e410, 2022-07-14)"
+   sodipodi:docname="64bit-values-binary.svg"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:svg="http://www.w3.org/2000/svg">
+  <sodipodi:namedview
+     id="namedview7"
+     pagecolor="#ffffff"
+     bordercolor="#999999"
+     borderopacity="1"
+     inkscape:showpageshadow="0"
+     inkscape:pageopacity="0"
+     inkscape:pagecheckerboard="0"
+     inkscape:deskcolor="#d1d1d1"
+     inkscape:document-units="mm"
+     showgrid="false"
+     inkscape:zoom="1.5625561"
+     inkscape:cx="-149.43463"
+     inkscape:cy="89.276795"
+     inkscape:window-width="1916"
+     inkscape:window-height="1032"
+     inkscape:window-x="1920"
+     inkscape:window-y="22"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="layer1" />
+  <defs
+     id="defs2" />
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(-58.310275,-16.368649)">
+    <g
+       id="g229048"
+       transform="translate(0,8.6714002)">
+      <text
+         xml:space="preserve"
+         style="font-size:4.9389px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:sans-serif;stroke-width:0.264583"
+         x="32.119595"
+         y="44.114777"
+         id="text1516"><tspan
+           sodipodi:role="line"
+           id="tspan1514"
+           style="stroke-width:0.264583"
+           x="32.119595"
+           y="44.114777" /></text>
+      <path
+         id="rect12128-7"
+         style="fill:#ffffff;stroke:#000000;stroke-width:0.499999"
+         d="m 58.560274,25.096849 v -8.478201 h 25.914828 v 8.478201"
+         sodipodi:nodetypes="cccc" />
+      <path
+         id="rect12128-7-5"
+         style="fill:#ffffff;stroke:#000000;stroke-width:0.499999"
+         d="M 58.560274,33.57505 V 25.096849 H 84.475102 V 33.57505"
+         sodipodi:nodetypes="cccc" />
+      <path
+         id="rect12128-7-3"
+         style="fill:#ffffff;stroke:#000000;stroke-width:0.499999"
+         d="M 58.560274,42.053251 V 33.57505 h 25.914828 v 8.478201"
+         sodipodi:nodetypes="cccc" />
+      <path
+         id="rect12128-7-56"
+         style="fill:#ffffff;stroke:#000000;stroke-width:0.499999"
+         d="M 58.560274,50.781451 V 42.30325 h 25.914828 v 8.478201"
+         sodipodi:nodetypes="cccc" />
+      <path
+         id="rect12128-7-2"
+         style="fill:#ffffff;stroke:#000000;stroke-width:0.499999"
+         d="M 58.560274,59.509651 V 51.03145 h 25.914828 v 8.478201"
+         sodipodi:nodetypes="cccc" />
+      <path
+         id="rect12128-7-9"
+         style="fill:#ffffff;stroke:#000000;stroke-width:0.499999"
+         d="M 58.560274,68.237851 V 59.75965 h 25.914827 v 8.478201"
+         sodipodi:nodetypes="cccc" />
+      <path
+         id="rect12128-7-1"
+         style="fill:#ffffff;stroke:#000000;stroke-width:0.499999"
+         d="M 58.560274,76.966051 V 68.48785 h 25.914828 v 8.478201"
+         sodipodi:nodetypes="cccc" />
+      <path
+         id="rect12128-7-27"
+         style="fill:#ffffff;stroke:#000000;stroke-width:0.499999"
+         d="M 58.560274,85.694251 V 77.21605 h 25.914828 v 8.478201 z"
+         sodipodi:nodetypes="ccccc" />
+      <text
+         xml:space="preserve"
+         style="font-size:4.9389px;line-height:1.5;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle;stroke-width:0.264583"
+         x="99.89402"
+         y="23.584381"
+         id="text16825"><tspan
+           sodipodi:role="line"
+           id="tspan16823"
+           style="stroke-width:0.264583"
+           x="99.89402"
+           y="23.584381" /><tspan
+           sodipodi:role="line"
+           style="stroke-width:0.264583"
+           x="99.89402"
+           y="30.992731"
+           id="tspan16827" /><tspan
+           sodipodi:role="line"
+           style="stroke-width:0.264583"
+           x="99.89402"
+           y="38.401081"
+           id="tspan16829" /><tspan
+           sodipodi:role="line"
+           style="stroke-width:0.264583"
+           x="99.89402"
+           y="45.809433"
+           id="tspan16831" /><tspan
+           sodipodi:role="line"
+           style="stroke-width:0.264583"
+           x="99.89402"
+           y="53.217781"
+           id="tspan16833" /><tspan
+           sodipodi:role="line"
+           style="stroke-width:0.264583"
+           x="99.89402"
+           y="60.626129"
+           id="tspan16835" /><tspan
+           sodipodi:role="line"
+           style="stroke-width:0.264583"
+           x="99.89402"
+           y="68.034485"
+           id="tspan16837" /></text>
+      <text
+         xml:space="preserve"
+         style="font-size:4.9389px;line-height:1.5;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle;stroke-width:0.264583"
+         x="71.524925"
+         y="22.530577"
+         id="text16841"><tspan
+           sodipodi:role="line"
+           id="tspan16839"
+           style="stroke-width:0.264583"
+           x="71.524925"
+           y="22.530577">01101000</tspan></text>
+      <text
+         xml:space="preserve"
+         style="font-size:4.9389px;line-height:1.5;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle;stroke-width:0.264583"
+         x="71.524925"
+         y="31.008778"
+         id="text16845"><tspan
+           sodipodi:role="line"
+           id="tspan16843"
+           style="stroke-width:0.264583"
+           x="71.524925"
+           y="31.008778">01101001</tspan></text>
+      <text
+         xml:space="preserve"
+         style="font-size:4.9389px;line-height:1.5;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle;stroke-width:0.264583"
+         x="71.524925"
+         y="39.486977"
+         id="text16849"><tspan
+           sodipodi:role="line"
+           id="tspan16847"
+           style="stroke-width:0.264583"
+           x="71.524925"
+           y="39.486977">00101100</tspan></text>
+      <text
+         xml:space="preserve"
+         style="font-size:4.9389px;line-height:1.5;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle;stroke-width:0.264583"
+         x="71.517693"
+         y="48.215179"
+         id="text16853"><tspan
+           sodipodi:role="line"
+           id="tspan16851"
+           style="stroke-width:0.264583"
+           x="71.517693"
+           y="48.215179">01110101</tspan></text>
+      <text
+         xml:space="preserve"
+         style="font-size:4.9389px;line-height:1.5;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle;stroke-width:0.264583"
+         x="71.517693"
+         y="56.943378"
+         id="text16857"><tspan
+           sodipodi:role="line"
+           id="tspan16855"
+           style="stroke-width:0.264583"
+           x="71.517693"
+           y="56.943378">01100111</tspan></text>
+      <text
+         xml:space="preserve"
+         style="font-size:4.9389px;line-height:1.5;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle;stroke-width:0.264583"
+         x="71.524925"
+         y="65.671577"
+         id="text16861"><tspan
+           sodipodi:role="line"
+           id="tspan16859"
+           style="stroke-width:0.264583"
+           x="71.524925"
+           y="65.671577">01110101</tspan></text>
+      <text
+         xml:space="preserve"
+         style="font-size:4.9389px;line-height:1.5;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle;stroke-width:0.264583"
+         x="71.524925"
+         y="74.39978"
+         id="text16865"><tspan
+           sodipodi:role="line"
+           id="tspan16863"
+           style="stroke-width:0.264583"
+           x="71.524925"
+           y="74.39978">01100100</tspan></text>
+      <text
+         xml:space="preserve"
+         style="font-size:4.9389px;line-height:1.5;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle;stroke-width:0.264583"
+         x="71.517693"
+         y="83.252975"
+         id="text16869"><tspan
+           sodipodi:role="line"
+           id="tspan16867"
+           style="stroke-width:0.264583"
+           x="71.517693"
+           y="83.252975">00111111</tspan></text>
+    </g>
+  </g>
+</svg>
diff --git a/fig/memory/64bit-values-decimal.svg b/fig/memory/64bit-values-decimal.svg
new file mode 100644
index 0000000000000000000000000000000000000000..52800d8d5980d3c5ed868bc4e1b8b31d074c9dd8
--- /dev/null
+++ b/fig/memory/64bit-values-decimal.svg
@@ -0,0 +1,228 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   width="26.414827mm"
+   height="78.247002mm"
+   viewBox="0 0 26.414827 78.247002"
+   version="1.1"
+   id="svg5"
+   inkscape:version="1.2.1 (9c6d41e410, 2022-07-14)"
+   sodipodi:docname="64bit-values-decimal.svg"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:svg="http://www.w3.org/2000/svg">
+  <sodipodi:namedview
+     id="namedview7"
+     pagecolor="#ffffff"
+     bordercolor="#999999"
+     borderopacity="1"
+     inkscape:showpageshadow="0"
+     inkscape:pageopacity="0"
+     inkscape:pagecheckerboard="0"
+     inkscape:deskcolor="#d1d1d1"
+     inkscape:document-units="mm"
+     showgrid="false"
+     inkscape:zoom="1.5625561"
+     inkscape:cx="-149.43463"
+     inkscape:cy="175.03372"
+     inkscape:window-width="1916"
+     inkscape:window-height="1032"
+     inkscape:window-x="1920"
+     inkscape:window-y="22"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="layer1" />
+  <defs
+     id="defs2" />
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(-58.310275,-16.368649)">
+    <g
+       id="g229849"
+       transform="translate(3.6008071e-7,8.6713997)">
+      <text
+         xml:space="preserve"
+         style="font-size:4.9389px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:sans-serif;stroke-width:0.264583"
+         x="32.119595"
+         y="44.114777"
+         id="text1516"><tspan
+           sodipodi:role="line"
+           id="tspan1514"
+           style="stroke-width:0.264583"
+           x="32.119595"
+           y="44.114777" /></text>
+      <path
+         id="rect12128-7"
+         style="fill:#ffffff;stroke:#000000;stroke-width:0.499999"
+         d="m 58.560274,25.096849 v -8.478201 h 25.914828 v 8.478201"
+         sodipodi:nodetypes="cccc" />
+      <path
+         id="rect12128-7-5"
+         style="fill:#ffffff;stroke:#000000;stroke-width:0.499999"
+         d="M 58.560274,33.57505 V 25.096849 H 84.475102 V 33.57505"
+         sodipodi:nodetypes="cccc" />
+      <path
+         id="rect12128-7-3"
+         style="fill:#ffffff;stroke:#000000;stroke-width:0.499999"
+         d="M 58.560274,42.053251 V 33.57505 h 25.914828 v 8.478201"
+         sodipodi:nodetypes="cccc" />
+      <path
+         id="rect12128-7-56"
+         style="fill:#ffffff;stroke:#000000;stroke-width:0.499999"
+         d="M 58.560274,50.781451 V 42.30325 h 25.914828 v 8.478201"
+         sodipodi:nodetypes="cccc" />
+      <path
+         id="rect12128-7-2"
+         style="fill:#ffffff;stroke:#000000;stroke-width:0.499999"
+         d="M 58.560274,59.509651 V 51.03145 h 25.914828 v 8.478201"
+         sodipodi:nodetypes="cccc" />
+      <path
+         id="rect12128-7-9"
+         style="fill:#ffffff;stroke:#000000;stroke-width:0.499999"
+         d="M 58.560274,68.237851 V 59.75965 h 25.914827 v 8.478201"
+         sodipodi:nodetypes="cccc" />
+      <path
+         id="rect12128-7-1"
+         style="fill:#ffffff;stroke:#000000;stroke-width:0.499999"
+         d="M 58.560274,76.966051 V 68.48785 h 25.914828 v 8.478201"
+         sodipodi:nodetypes="cccc" />
+      <path
+         id="rect12128-7-27"
+         style="fill:#ffffff;stroke:#000000;stroke-width:0.499999"
+         d="M 58.560274,85.694251 V 77.21605 h 25.914828 v 8.478201 z"
+         sodipodi:nodetypes="ccccc" />
+      <text
+         xml:space="preserve"
+         style="font-size:4.9389px;line-height:1.5;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle;stroke-width:0.264583"
+         x="99.89402"
+         y="23.584381"
+         id="text16825"><tspan
+           sodipodi:role="line"
+           id="tspan16823"
+           style="stroke-width:0.264583"
+           x="99.89402"
+           y="23.584381" /><tspan
+           sodipodi:role="line"
+           style="stroke-width:0.264583"
+           x="99.89402"
+           y="30.992731"
+           id="tspan16827" /><tspan
+           sodipodi:role="line"
+           style="stroke-width:0.264583"
+           x="99.89402"
+           y="38.401081"
+           id="tspan16829" /><tspan
+           sodipodi:role="line"
+           style="stroke-width:0.264583"
+           x="99.89402"
+           y="45.809433"
+           id="tspan16831" /><tspan
+           sodipodi:role="line"
+           style="stroke-width:0.264583"
+           x="99.89402"
+           y="53.217781"
+           id="tspan16833" /><tspan
+           sodipodi:role="line"
+           style="stroke-width:0.264583"
+           x="99.89402"
+           y="60.626129"
+           id="tspan16835" /><tspan
+           sodipodi:role="line"
+           style="stroke-width:0.264583"
+           x="99.89402"
+           y="68.034485"
+           id="tspan16837" /></text>
+      <text
+         xml:space="preserve"
+         style="font-size:4.9389px;line-height:1.5;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle;stroke-width:0.264583"
+         x="71.524925"
+         y="22.530577"
+         id="text16841"><tspan
+           sodipodi:role="line"
+           id="tspan16839"
+           style="stroke-width:0.264583"
+           x="71.524925"
+           y="22.530577">104</tspan></text>
+      <text
+         xml:space="preserve"
+         style="font-size:4.9389px;line-height:1.5;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle;stroke-width:0.264583"
+         x="71.524925"
+         y="31.008778"
+         id="text16845"><tspan
+           sodipodi:role="line"
+           id="tspan16843"
+           style="stroke-width:0.264583"
+           x="71.524925"
+           y="31.008778">105</tspan></text>
+      <text
+         xml:space="preserve"
+         style="font-size:4.9389px;line-height:1.5;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle;stroke-width:0.264583"
+         x="71.524925"
+         y="39.486977"
+         id="text16849"><tspan
+           sodipodi:role="line"
+           id="tspan16847"
+           style="stroke-width:0.264583"
+           x="71.524925"
+           y="39.486977">44</tspan></text>
+      <text
+         xml:space="preserve"
+         style="font-size:4.9389px;line-height:1.5;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle;stroke-width:0.264583"
+         x="71.517693"
+         y="48.215179"
+         id="text16853"><tspan
+           sodipodi:role="line"
+           id="tspan16851"
+           style="stroke-width:0.264583"
+           x="71.517693"
+           y="48.215179">117</tspan></text>
+      <text
+         xml:space="preserve"
+         style="font-size:4.9389px;line-height:1.5;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle;stroke-width:0.264583"
+         x="71.517693"
+         y="56.943378"
+         id="text16857"><tspan
+           sodipodi:role="line"
+           id="tspan16855"
+           style="stroke-width:0.264583"
+           x="71.517693"
+           y="56.943378">103</tspan></text>
+      <text
+         xml:space="preserve"
+         style="font-size:4.9389px;line-height:1.5;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle;stroke-width:0.264583"
+         x="71.524925"
+         y="65.671577"
+         id="text16861"><tspan
+           sodipodi:role="line"
+           id="tspan16859"
+           style="stroke-width:0.264583"
+           x="71.524925"
+           y="65.671577">117</tspan></text>
+      <text
+         xml:space="preserve"
+         style="font-size:4.9389px;line-height:1.5;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle;stroke-width:0.264583"
+         x="71.524925"
+         y="74.39978"
+         id="text16865"><tspan
+           sodipodi:role="line"
+           id="tspan16863"
+           style="stroke-width:0.264583"
+           x="71.524925"
+           y="74.39978">100</tspan></text>
+      <text
+         xml:space="preserve"
+         style="font-size:4.9389px;line-height:1.5;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle;stroke-width:0.264583"
+         x="71.517693"
+         y="83.252975"
+         id="text16869"><tspan
+           sodipodi:role="line"
+           id="tspan16867"
+           style="stroke-width:0.264583"
+           x="71.517693"
+           y="83.252975">63</tspan></text>
+    </g>
+  </g>
+</svg>
diff --git a/fig/memory/64bit-values-hexa.svg b/fig/memory/64bit-values-hexa.svg
new file mode 100644
index 0000000000000000000000000000000000000000..ddd9d6d496b3afc3420e8013afa1e2353cc4f8c0
--- /dev/null
+++ b/fig/memory/64bit-values-hexa.svg
@@ -0,0 +1,224 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   width="26.414827mm"
+   height="78.247002mm"
+   viewBox="0 0 26.414827 78.247001"
+   version="1.1"
+   id="svg5"
+   inkscape:version="1.2.1 (9c6d41e410, 2022-07-14)"
+   sodipodi:docname="64bit-values-hexa.svg"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:svg="http://www.w3.org/2000/svg">
+  <sodipodi:namedview
+     id="namedview7"
+     pagecolor="#ffffff"
+     bordercolor="#999999"
+     borderopacity="1"
+     inkscape:showpageshadow="0"
+     inkscape:pageopacity="0"
+     inkscape:pagecheckerboard="0"
+     inkscape:deskcolor="#d1d1d1"
+     inkscape:document-units="mm"
+     showgrid="false"
+     inkscape:zoom="3.1251122"
+     inkscape:cx="-42.398477"
+     inkscape:cy="65.43765"
+     inkscape:window-width="1916"
+     inkscape:window-height="1032"
+     inkscape:window-x="1920"
+     inkscape:window-y="22"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="layer1" />
+  <defs
+     id="defs2" />
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(-58.310275,-16.368649)">
+    <text
+       xml:space="preserve"
+       style="font-size:4.9389px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:sans-serif;stroke-width:0.264583"
+       x="32.119595"
+       y="44.114777"
+       id="text1516"><tspan
+         sodipodi:role="line"
+         id="tspan1514"
+         style="stroke-width:0.264583"
+         x="32.119595"
+         y="44.114777" /></text>
+    <path
+       id="rect12128-7"
+       style="fill:#ffffff;stroke:#000000;stroke-width:0.499999"
+       d="m 58.560274,33.768249 v -8.478201 h 25.914828 v 8.478201"
+       sodipodi:nodetypes="cccc" />
+    <path
+       id="rect12128-7-5"
+       style="fill:#ffffff;stroke:#000000;stroke-width:0.499999"
+       d="M 58.560274,42.24645 V 33.768249 H 84.475102 V 42.24645"
+       sodipodi:nodetypes="cccc" />
+    <path
+       id="rect12128-7-3"
+       style="fill:#ffffff;stroke:#000000;stroke-width:0.499999"
+       d="M 58.560274,50.724651 V 42.24645 h 25.914828 v 8.478201"
+       sodipodi:nodetypes="cccc" />
+    <path
+       id="rect12128-7-56"
+       style="fill:#ffffff;stroke:#000000;stroke-width:0.499999"
+       d="M 58.560274,59.452851 V 50.97465 h 25.914828 v 8.478201"
+       sodipodi:nodetypes="cccc" />
+    <path
+       id="rect12128-7-2"
+       style="fill:#ffffff;stroke:#000000;stroke-width:0.499999"
+       d="M 58.560274,68.181051 V 59.70285 h 25.914828 v 8.478201"
+       sodipodi:nodetypes="cccc" />
+    <path
+       id="rect12128-7-9"
+       style="fill:#ffffff;stroke:#000000;stroke-width:0.499999"
+       d="M 58.560274,76.909251 V 68.43105 h 25.914827 v 8.478201"
+       sodipodi:nodetypes="cccc" />
+    <path
+       id="rect12128-7-1"
+       style="fill:#ffffff;stroke:#000000;stroke-width:0.499999"
+       d="M 58.560274,85.637451 V 77.15925 h 25.914828 v 8.478201"
+       sodipodi:nodetypes="cccc" />
+    <path
+       id="rect12128-7-27"
+       style="fill:#ffffff;stroke:#000000;stroke-width:0.499999"
+       d="M 58.560274,94.365651 V 85.88745 h 25.914828 v 8.478201 z"
+       sodipodi:nodetypes="ccccc" />
+    <text
+       xml:space="preserve"
+       style="font-size:4.9389px;line-height:1.5;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle;stroke-width:0.264583"
+       x="99.89402"
+       y="23.584381"
+       id="text16825"><tspan
+         sodipodi:role="line"
+         id="tspan16823"
+         style="stroke-width:0.264583"
+         x="99.89402"
+         y="23.584381" /><tspan
+         sodipodi:role="line"
+         style="stroke-width:0.264583"
+         x="99.89402"
+         y="30.992731"
+         id="tspan16827" /><tspan
+         sodipodi:role="line"
+         style="stroke-width:0.264583"
+         x="99.89402"
+         y="38.401081"
+         id="tspan16829" /><tspan
+         sodipodi:role="line"
+         style="stroke-width:0.264583"
+         x="99.89402"
+         y="45.809433"
+         id="tspan16831" /><tspan
+         sodipodi:role="line"
+         style="stroke-width:0.264583"
+         x="99.89402"
+         y="53.217781"
+         id="tspan16833" /><tspan
+         sodipodi:role="line"
+         style="stroke-width:0.264583"
+         x="99.89402"
+         y="60.626129"
+         id="tspan16835" /><tspan
+         sodipodi:role="line"
+         style="stroke-width:0.264583"
+         x="99.89402"
+         y="68.034485"
+         id="tspan16837" /></text>
+    <text
+       xml:space="preserve"
+       style="font-size:4.9389px;line-height:1.5;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle;stroke-width:0.264583"
+       x="71.524925"
+       y="31.201975"
+       id="text16841"><tspan
+         sodipodi:role="line"
+         id="tspan16839"
+         style="stroke-width:0.264583"
+         x="71.524925"
+         y="31.201975">68</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:4.9389px;line-height:1.5;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle;stroke-width:0.264583"
+       x="71.524925"
+       y="39.680176"
+       id="text16845"><tspan
+         sodipodi:role="line"
+         id="tspan16843"
+         style="stroke-width:0.264583"
+         x="71.524925"
+         y="39.680176">69</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:4.9389px;line-height:1.5;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle;stroke-width:0.264583"
+       x="71.524925"
+       y="48.158375"
+       id="text16849"><tspan
+         sodipodi:role="line"
+         id="tspan16847"
+         style="stroke-width:0.264583"
+         x="71.524925"
+         y="48.158375">2C</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:4.9389px;line-height:1.5;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle;stroke-width:0.264583"
+       x="71.517693"
+       y="56.886578"
+       id="text16853"><tspan
+         sodipodi:role="line"
+         id="tspan16851"
+         style="stroke-width:0.264583"
+         x="71.517693"
+         y="56.886578">75</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:4.9389px;line-height:1.5;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle;stroke-width:0.264583"
+       x="71.517693"
+       y="65.614777"
+       id="text16857"><tspan
+         sodipodi:role="line"
+         id="tspan16855"
+         style="stroke-width:0.264583"
+         x="71.517693"
+         y="65.614777">67</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:4.9389px;line-height:1.5;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle;stroke-width:0.264583"
+       x="71.524925"
+       y="74.342979"
+       id="text16861"><tspan
+         sodipodi:role="line"
+         id="tspan16859"
+         style="stroke-width:0.264583"
+         x="71.524925"
+         y="74.342979">75</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:4.9389px;line-height:1.5;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle;stroke-width:0.264583"
+       x="71.524925"
+       y="83.071182"
+       id="text16865"><tspan
+         sodipodi:role="line"
+         id="tspan16863"
+         style="stroke-width:0.264583"
+         x="71.524925"
+         y="83.071182">64</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:4.9389px;line-height:1.5;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle;stroke-width:0.264583"
+       x="71.517693"
+       y="91.924377"
+       id="text16869"><tspan
+         sodipodi:role="line"
+         id="tspan16867"
+         style="stroke-width:0.264583"
+         x="71.517693"
+         y="91.924377">3F</tspan></text>
+  </g>
+</svg>
diff --git a/fig/memory/memory-circuit-figure.svg b/fig/memory/memory-circuit-figure.svg
new file mode 100644
index 0000000000000000000000000000000000000000..21f7523d27853179c93584925557a5442f32cf2b
--- /dev/null
+++ b/fig/memory/memory-circuit-figure.svg
@@ -0,0 +1,126 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   width="26.414827mm"
+   height="78.247002mm"
+   viewBox="0 0 26.414827 78.247002"
+   version="1.1"
+   id="svg5"
+   inkscape:version="1.2.1 (9c6d41e410, 2022-07-14)"
+   sodipodi:docname="memory-circuit-figure.svg"
+   xml:space="preserve"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:svg="http://www.w3.org/2000/svg"><sodipodi:namedview
+     id="namedview7"
+     pagecolor="#ffffff"
+     bordercolor="#999999"
+     borderopacity="1"
+     inkscape:showpageshadow="0"
+     inkscape:pageopacity="0"
+     inkscape:pagecheckerboard="0"
+     inkscape:deskcolor="#d1d1d1"
+     inkscape:document-units="mm"
+     showgrid="false"
+     inkscape:zoom="1.5625561"
+     inkscape:cx="-46.398334"
+     inkscape:cy="209.59247"
+     inkscape:window-width="1916"
+     inkscape:window-height="1032"
+     inkscape:window-x="1920"
+     inkscape:window-y="22"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="layer1" /><defs
+     id="defs2" /><g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(-58.310275,-16.368649)"><text
+       xml:space="preserve"
+       style="font-size:4.9389px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:sans-serif;stroke-width:0.264583"
+       x="32.119595"
+       y="44.114777"
+       id="text1516"><tspan
+         sodipodi:role="line"
+         id="tspan1514"
+         style="stroke-width:0.264583"
+         x="32.119595"
+         y="44.114777" /></text><text
+       xml:space="preserve"
+       style="font-size:4.9389px;line-height:1.5;font-family:monospace;-inkscape-font-specification:monospace;text-align:center;text-anchor:middle;stroke-width:0.264583"
+       x="99.89402"
+       y="23.584381"
+       id="text16825"><tspan
+         sodipodi:role="line"
+         id="tspan16823"
+         style="stroke-width:0.264583"
+         x="99.89402"
+         y="23.584381" /><tspan
+         sodipodi:role="line"
+         style="stroke-width:0.264583"
+         x="99.89402"
+         y="30.992731"
+         id="tspan16827" /><tspan
+         sodipodi:role="line"
+         style="stroke-width:0.264583"
+         x="99.89402"
+         y="38.401081"
+         id="tspan16829" /><tspan
+         sodipodi:role="line"
+         style="stroke-width:0.264583"
+         x="99.89402"
+         y="45.809433"
+         id="tspan16831" /><tspan
+         sodipodi:role="line"
+         style="stroke-width:0.264583"
+         x="99.89402"
+         y="53.217781"
+         id="tspan16833" /><tspan
+         sodipodi:role="line"
+         style="stroke-width:0.264583"
+         x="99.89402"
+         y="60.626129"
+         id="tspan16835" /><tspan
+         sodipodi:role="line"
+         style="stroke-width:0.264583"
+         x="99.89402"
+         y="68.034485"
+         id="tspan16837" /></text><g
+       id="g228265"
+       transform="translate(0,8.6713997)"><path
+         id="rect12128-7-27"
+         style="fill:#7e995b;fill-opacity:1;stroke:#000000;stroke-width:0.499999"
+         d="M 84.475102,85.694251 H 58.560274 V 16.618648 h 25.914828 z"
+         sodipodi:nodetypes="ccccc" /><g
+         id="g93856"
+         transform="translate(0.11664506,-0.24324971)"><rect
+           style="fill:#666666;fill-opacity:1;stroke:#000000;stroke-width:0.499999"
+           id="rect92208"
+           width="16.650581"
+           height="11.418898"
+           x="63.075752"
+           y="22.009445"
+           ry="2.1190164" /><rect
+           style="fill:#666666;fill-opacity:1;stroke:#000000;stroke-width:0.499999"
+           id="rect92208-3"
+           width="16.650581"
+           height="11.418898"
+           x="63.075752"
+           y="37.79665"
+           ry="2.1190164" /><rect
+           style="fill:#666666;fill-opacity:1;stroke:#000000;stroke-width:0.499999"
+           id="rect92208-6"
+           width="16.650581"
+           height="11.418898"
+           x="63.075752"
+           y="53.583851"
+           ry="2.1190164" /><rect
+           style="fill:#666666;fill-opacity:1;stroke:#000000;stroke-width:0.499999"
+           id="rect92208-0"
+           width="16.650581"
+           height="11.418898"
+           x="63.075752"
+           y="69.371056"
+           ry="2.1190164" /></g></g></g></svg>
diff --git a/fig/memory/memory.asy b/fig/memory/memory.asy
new file mode 100644
index 0000000000000000000000000000000000000000..0798a04607e4cefbef14d9195b84ee07fe7855d1
--- /dev/null
+++ b/fig/memory/memory.asy
@@ -0,0 +1,107 @@
+import fontsize;
+usepackage("amsfonts");
+
+settings.outformat = "pdf";
+int frame_id = -1;
+
+defaultpen(font("OT1","cmr","m","n") + fontsize(30pt));
+unitsize(1cm);
+
+real scale = 10;
+real eps_scale = 2.5;
+real width = 4 * scale;
+real height = 3 * scale;
+pen magenta = rgb("A626A4");
+
+string eps_memory_circuit_figure = graphic("./memory-circuit-figure.eps");
+string eps_values_binary = graphic("./64bit-values-binary.eps");
+string eps_values_decimal = graphic("./64bit-values-decimal.eps");
+string eps_values_hexa = graphic("./64bit-values-hexa.eps");
+string eps_addr_values_hexa = graphic("./64bit-addr-values-hexa.eps");
+string eps_addr_read = graphic("./64bit-addr-read.eps");
+string eps_addr_pre_write = graphic("./64bit-addr-pre-write.eps");
+string eps_addr_write = graphic("./64bit-addr-write.eps");
+string eps_addr_values_hexa_final = graphic("./64bit-addr-values-hexa-final.eps");
+
+pair eps_pos = (0.97*width, height*0.05);
+pair eps_fix_offset = (0.0015*width,0);
+pair base_text_pos = (0.03*width, height*0.85);
+pair definition_base_pos = (0.03*width, height*0.6);
+pair operation_base_pos = (0.03*width, height*0.3);
+pair newline_offset = (0, -height*0.05);
+
+void draw_background(bool with_border)
+{
+    path background = (0, 0) -- (width, 0) -- (width, height) -- (0, height) -- cycle;
+    fill(background, white);
+    if (with_border)
+        draw(background, black);
+}
+
+draw_background(true);
+label("\textbf{La mémoire}", (width/2, height*0.95));
+shipout(format("memory-%02d", ++frame_id));
+
+label("C'est un composant essentiel qui sert à stocker des données.", base_text_pos, align=SE);
+save();
+label(scale(eps_scale)*Label(eps_memory_circuit_figure, eps_pos, align=NW));
+shipout(format("memory-%02d", ++frame_id));
+
+restore();
+label("Défini comme une suite finie de \textbf{cases} mémoires.", definition_base_pos, align=SE);
+label("- L'exemple (à droite) comporte 8 cases", definition_base_pos + (0.01*width, 0) + newline_offset*1, align=SE);
+save();
+label("- Chaque case contient \textbf{1 octet} : 8 bits", definition_base_pos + (0.01*width, 0) + newline_offset*2, align=SE);
+label(scale(eps_scale)*Label(eps_values_binary, eps_pos, align=NW));
+shipout(format("memory-%02d", ++frame_id));
+
+restore();
+save();
+label("- Chaque case contient \textbf{1 octet} : un entier $0 \leq n \leq 255$", definition_base_pos + (0.01*width, 0) + newline_offset*2, align=SE);
+label(scale(eps_scale)*Label(eps_values_decimal, eps_pos, align=NW));
+shipout(format("memory-%02d", ++frame_id));
+
+restore();
+label("- Chaque case contient \textbf{1 octet} : 2 chiffres héxadécimaux", definition_base_pos + (0.01*width, 0) + newline_offset*2, align=SE);
+save();
+label(scale(eps_scale)*Label(eps_values_hexa, eps_pos, align=NW));
+shipout(format("memory-%02d", ++frame_id));
+
+restore();
+label("- Chaque case est identifiée par son \textbf{adresse}", definition_base_pos + (0.01*width, 0) + newline_offset*3, align=SE);
+save();
+label(scale(eps_scale)*Label(eps_addr_values_hexa, eps_pos + eps_fix_offset, align=NW));
+shipout(format("memory-%02d", ++frame_id));
+
+restore();
+label("Deux opérations sont possibles sur la mémoire.", operation_base_pos, align=SE);
+save();
+label(scale(eps_scale)*Label(eps_addr_values_hexa, eps_pos + eps_fix_offset, align=NW));
+shipout(format("memory-%02d", ++frame_id));
+
+restore();
+label("- \textbf{Lire} la valeur d'une case : \texttt{read(0x02)} $\rightarrow$ \texttt{0x2C}", operation_base_pos + (0.01*width, 0) + newline_offset*1, align=SE);
+save();
+label(scale(eps_scale)*Label(eps_addr_read, eps_pos + eps_fix_offset, align=NW));
+shipout(format("memory-%02d", ++frame_id));
+
+restore();
+save();
+label(scale(eps_scale)*Label(eps_addr_values_hexa, eps_pos + eps_fix_offset, align=NW));
+shipout(format("memory-%02d", ++frame_id));
+
+restore();
+label("- \textbf{Écrire} la valeur d'une case : \texttt{write(0x04, 0x6D)}", operation_base_pos + (0.01*width, 0) + newline_offset*1.8, align=SE);
+save();
+label(scale(eps_scale)*Label(eps_addr_pre_write, eps_pos + eps_fix_offset, align=NW));
+shipout(format("memory-%02d", ++frame_id));
+
+restore();
+save();
+label("~~(l'ancienne valeur de la case est perdue)", operation_base_pos + (0.01*width, 0) + newline_offset*3, align=SE);
+label(scale(eps_scale)*Label(eps_addr_write, eps_pos + eps_fix_offset, align=NW));
+shipout(format("memory-%02d", ++frame_id));
+
+restore();
+label(scale(eps_scale)*Label(eps_addr_values_hexa_final, eps_pos + eps_fix_offset, align=NW));
+shipout(format("memory-%02d", ++frame_id));
diff --git a/fig/program/asm-bg-color.svg b/fig/program/asm-bg-color.svg
new file mode 100644
index 0000000000000000000000000000000000000000..1ef5326402042cccbd99102526ab995e9da44350
--- /dev/null
+++ b/fig/program/asm-bg-color.svg
@@ -0,0 +1,97 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   width="125.03455mm"
+   height="230.06288mm"
+   viewBox="0 0 125.03455 230.06288"
+   version="1.1"
+   id="svg84483"
+   sodipodi:docname="asm-bg-color.svg"
+   inkscape:version="1.2.1 (9c6d41e410, 2022-07-14)"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:svg="http://www.w3.org/2000/svg">
+  <sodipodi:namedview
+     id="namedview84485"
+     pagecolor="#ffffff"
+     bordercolor="#999999"
+     borderopacity="1"
+     inkscape:showpageshadow="0"
+     inkscape:pageopacity="0"
+     inkscape:pagecheckerboard="0"
+     inkscape:deskcolor="#d1d1d1"
+     inkscape:document-units="mm"
+     showgrid="false"
+     inkscape:zoom="0.78127806"
+     inkscape:cx="229.75175"
+     inkscape:cy="385.90614"
+     inkscape:window-width="1916"
+     inkscape:window-height="1032"
+     inkscape:window-x="1920"
+     inkscape:window-y="22"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="layer1" />
+  <defs
+     id="defs84480" />
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(-44.49755,7.339309)">
+    <g
+       id="g993"
+       transform="translate(-155.50245,-17.339309)">
+      <rect
+         style="fill:#abd9e9;fill-opacity:1;stroke:none;stroke-width:0.5"
+         id="rect36611-6-7-9"
+         width="125.03454"
+         height="47.714348"
+         x="200"
+         y="10" />
+      <rect
+         style="fill:#abd9e9;fill-opacity:1;stroke:none;stroke-width:0.5"
+         id="rect36611-6-7-9-23"
+         width="125.03454"
+         height="24.275759"
+         x="200"
+         y="215.78712" />
+      <rect
+         style="fill:#d7191c;fill-opacity:1;stroke:none;stroke-width:0.5"
+         id="rect36611-6-7-9-23-7"
+         width="125.03454"
+         height="7.1223345"
+         x="200"
+         y="208.66479" />
+      <rect
+         style="fill:#2c7bb6;fill-opacity:1;stroke:none;stroke-width:0.500001"
+         id="rect36611-6-7-9-23-7-9"
+         width="125.03454"
+         height="15.678929"
+         x="200.00002"
+         y="145.09032" />
+      <rect
+         style="fill:#fdae61;fill-opacity:1;stroke:none;stroke-width:0.5"
+         id="rect36611-6-7-9-0"
+         width="125.03454"
+         height="71.386986"
+         x="200"
+         y="73.703331" />
+      <rect
+         style="fill:#ffffbf;fill-opacity:1;stroke:none;stroke-width:0.5"
+         id="rect36611-6-7-9-2"
+         width="125.03454"
+         height="15.98898"
+         x="200"
+         y="57.714348" />
+      <rect
+         style="fill:#ffffbf;fill-opacity:1;stroke:none;stroke-width:0.5"
+         id="rect36611-6-7-9-2-5"
+         width="125.03454"
+         height="48.14489"
+         x="200"
+         y="160.5199" />
+    </g>
+  </g>
+</svg>
diff --git a/fig/program/asm-text-black.svg b/fig/program/asm-text-black.svg
new file mode 100644
index 0000000000000000000000000000000000000000..b8b95d707de518320858ab6dfc2170ec7e7e3ee8
--- /dev/null
+++ b/fig/program/asm-text-black.svg
@@ -0,0 +1,199 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   width="125.03455mm"
+   height="230.06288mm"
+   viewBox="0 0 125.03455 230.06288"
+   version="1.1"
+   id="svg84483"
+   inkscape:version="1.2.1 (9c6d41e410, 2022-07-14)"
+   sodipodi:docname="asm-text-black.svg"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:svg="http://www.w3.org/2000/svg">
+  <sodipodi:namedview
+     id="namedview84485"
+     pagecolor="#ffffff"
+     bordercolor="#999999"
+     borderopacity="1"
+     inkscape:showpageshadow="0"
+     inkscape:pageopacity="0"
+     inkscape:pagecheckerboard="0"
+     inkscape:deskcolor="#d1d1d1"
+     inkscape:document-units="mm"
+     showgrid="false"
+     inkscape:zoom="0.78127806"
+     inkscape:cx="229.75175"
+     inkscape:cy="385.90614"
+     inkscape:window-width="1916"
+     inkscape:window-height="1032"
+     inkscape:window-x="1920"
+     inkscape:window-y="22"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="layer1" />
+  <defs
+     id="defs84480" />
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(-44.49755,7.339309)">
+    <g
+       id="g993"
+       transform="translate(-155.50245,-17.339309)">
+      <text
+         xml:space="preserve"
+         style="font-size:6.35px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:sans-serif;stroke-width:0.264583"
+         x="200"
+         y="15.763859"
+         id="text27860"><tspan
+           sodipodi:role="line"
+           id="tspan27858"
+           style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.35px;font-family:monospace;-inkscape-font-specification:'monospace Bold';stroke-width:0.264583"
+           x="200"
+           y="15.763859">index_of:</tspan><tspan
+           sodipodi:role="line"
+           style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.35px;font-family:monospace;-inkscape-font-specification:'monospace Bold';stroke-width:0.264583"
+           x="200"
+           y="23.701359"
+           id="tspan27862">        pushq   %rbp</tspan><tspan
+           sodipodi:role="line"
+           style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.35px;font-family:monospace;-inkscape-font-specification:'monospace Bold';stroke-width:0.264583"
+           x="200"
+           y="31.638859"
+           id="tspan27864">        movq    %rsp, %rbp</tspan><tspan
+           sodipodi:role="line"
+           style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.35px;font-family:monospace;-inkscape-font-specification:'monospace Bold';stroke-width:0.264583"
+           x="200"
+           y="39.576359"
+           id="tspan27866">        movl    %edi, -20(%rbp)</tspan><tspan
+           sodipodi:role="line"
+           style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.35px;font-family:monospace;-inkscape-font-specification:'monospace Bold';stroke-width:0.264583"
+           x="200"
+           y="47.513859"
+           id="tspan27868">        movl    %esi, -24(%rbp)</tspan><tspan
+           sodipodi:role="line"
+           style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.35px;font-family:monospace;-inkscape-font-specification:'monospace Bold';stroke-width:0.264583"
+           x="200"
+           y="55.451359"
+           id="tspan27870">        movq    %rdx, -32(%rbp)</tspan><tspan
+           sodipodi:role="line"
+           style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.35px;font-family:monospace;-inkscape-font-specification:'monospace Bold';stroke-width:0.264583"
+           x="200"
+           y="63.388859"
+           id="tspan27872">        movl    $0, -4(%rbp)</tspan><tspan
+           sodipodi:role="line"
+           style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.35px;font-family:monospace;-inkscape-font-specification:'monospace Bold';stroke-width:0.264583"
+           x="200"
+           y="71.326355"
+           id="tspan27874">        jmp     .L2</tspan><tspan
+           sodipodi:role="line"
+           style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.35px;font-family:monospace;-inkscape-font-specification:'monospace Bold';stroke-width:0.264583"
+           x="200"
+           y="79.263855"
+           id="tspan27876">.L5:</tspan><tspan
+           sodipodi:role="line"
+           style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.35px;font-family:monospace;-inkscape-font-specification:'monospace Bold';stroke-width:0.264583"
+           x="200"
+           y="87.201355"
+           id="tspan27878">        movl    -4(%rbp), %eax</tspan><tspan
+           sodipodi:role="line"
+           style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.35px;font-family:monospace;-inkscape-font-specification:'monospace Bold';stroke-width:0.264583"
+           x="200"
+           y="95.138855"
+           id="tspan27880">        cltq</tspan><tspan
+           sodipodi:role="line"
+           style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.35px;font-family:monospace;-inkscape-font-specification:'monospace Bold';stroke-width:0.264583"
+           x="200"
+           y="103.07635"
+           id="tspan27882">        leaq    0(,%rax,4), %rdx</tspan><tspan
+           sodipodi:role="line"
+           style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.35px;font-family:monospace;-inkscape-font-specification:'monospace Bold';stroke-width:0.264583"
+           x="200"
+           y="111.01385"
+           id="tspan27884">        movq    -32(%rbp), %rax</tspan><tspan
+           sodipodi:role="line"
+           style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.35px;font-family:monospace;-inkscape-font-specification:'monospace Bold';stroke-width:0.264583"
+           x="200"
+           y="118.95135"
+           id="tspan27886">        addq    %rdx, %rax</tspan><tspan
+           sodipodi:role="line"
+           style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.35px;font-family:monospace;-inkscape-font-specification:'monospace Bold';stroke-width:0.264583"
+           x="200"
+           y="126.88885"
+           id="tspan27888">        movl    (%rax), %eax</tspan><tspan
+           sodipodi:role="line"
+           style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.35px;font-family:monospace;-inkscape-font-specification:'monospace Bold';stroke-width:0.264583"
+           x="200"
+           y="134.82635"
+           id="tspan27890">        cmpl    %eax, -20(%rbp)</tspan><tspan
+           sodipodi:role="line"
+           style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.35px;font-family:monospace;-inkscape-font-specification:'monospace Bold';stroke-width:0.264583"
+           x="200"
+           y="142.76385"
+           id="tspan27892">        jne     .L3</tspan><tspan
+           sodipodi:role="line"
+           style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.35px;font-family:monospace;-inkscape-font-specification:'monospace Bold';stroke-width:0.264583"
+           x="200"
+           y="150.70135"
+           id="tspan27894">        movl    -4(%rbp), %eax</tspan><tspan
+           sodipodi:role="line"
+           style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.35px;font-family:monospace;-inkscape-font-specification:'monospace Bold';stroke-width:0.264583"
+           x="200"
+           y="158.63885"
+           id="tspan27896">        jmp     .L4</tspan><tspan
+           sodipodi:role="line"
+           style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.35px;font-family:monospace;-inkscape-font-specification:'monospace Bold';stroke-width:0.264583"
+           x="200"
+           y="166.57635"
+           id="tspan27898">.L3:</tspan><tspan
+           sodipodi:role="line"
+           style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.35px;font-family:monospace;-inkscape-font-specification:'monospace Bold';stroke-width:0.264583"
+           x="200"
+           y="174.51385"
+           id="tspan27900">        addl    $1, -4(%rbp)</tspan><tspan
+           sodipodi:role="line"
+           style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.35px;font-family:monospace;-inkscape-font-specification:'monospace Bold';stroke-width:0.264583"
+           x="200"
+           y="182.45135"
+           id="tspan27902">.L2:</tspan><tspan
+           sodipodi:role="line"
+           style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.35px;font-family:monospace;-inkscape-font-specification:'monospace Bold';stroke-width:0.264583"
+           x="200"
+           y="190.38885"
+           id="tspan27904">        movl    -4(%rbp), %eax</tspan><tspan
+           sodipodi:role="line"
+           style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.35px;font-family:monospace;-inkscape-font-specification:'monospace Bold';stroke-width:0.264583"
+           x="200"
+           y="198.32635"
+           id="tspan27906">        cmpl    -24(%rbp), %eax</tspan><tspan
+           sodipodi:role="line"
+           style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.35px;font-family:monospace;-inkscape-font-specification:'monospace Bold';stroke-width:0.264583"
+           x="200"
+           y="206.26385"
+           id="tspan27908">        jl      .L5</tspan><tspan
+           sodipodi:role="line"
+           style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.35px;font-family:monospace;-inkscape-font-specification:'monospace Bold';stroke-width:0.264583"
+           x="200"
+           y="214.20135"
+           id="tspan27910">        movl    $-1, %eax</tspan><tspan
+           sodipodi:role="line"
+           style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.35px;font-family:monospace;-inkscape-font-specification:'monospace Bold';stroke-width:0.264583"
+           x="200"
+           y="222.13885"
+           id="tspan27912">.L4:</tspan><tspan
+           sodipodi:role="line"
+           style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.35px;font-family:monospace;-inkscape-font-specification:'monospace Bold';stroke-width:0.264583"
+           x="200"
+           y="230.07635"
+           id="tspan27914">        popq    %rbp</tspan><tspan
+           sodipodi:role="line"
+           style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.35px;font-family:monospace;-inkscape-font-specification:'monospace Bold';stroke-width:0.264583"
+           x="200"
+           y="238.01385"
+           id="tspan27916">        ret</tspan></text>
+    </g>
+  </g>
+</svg>
diff --git a/fig/program/bin-multiline-bg-color.svg b/fig/program/bin-multiline-bg-color.svg
new file mode 100644
index 0000000000000000000000000000000000000000..4b408f2ca6634bd0433a882036d4796efd70cb97
--- /dev/null
+++ b/fig/program/bin-multiline-bg-color.svg
@@ -0,0 +1,125 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   width="121.62049mm"
+   height="38.899979mm"
+   viewBox="0 0 121.62049 38.899979"
+   version="1.1"
+   id="svg73210"
+   sodipodi:docname="bin-multiline-bg-color.svg"
+   inkscape:version="1.2.1 (9c6d41e410, 2022-07-14)"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:svg="http://www.w3.org/2000/svg">
+  <sodipodi:namedview
+     id="namedview73212"
+     pagecolor="#ffffff"
+     bordercolor="#999999"
+     borderopacity="1"
+     inkscape:showpageshadow="0"
+     inkscape:pageopacity="0"
+     inkscape:pagecheckerboard="0"
+     inkscape:deskcolor="#d1d1d1"
+     inkscape:document-units="mm"
+     showgrid="false"
+     inkscape:zoom="1.5625561"
+     inkscape:cx="202.55273"
+     inkscape:cy="80.957092"
+     inkscape:window-width="1916"
+     inkscape:window-height="1032"
+     inkscape:window-x="1920"
+     inkscape:window-y="22"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="layer1" />
+  <defs
+     id="defs73207" />
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(-24.192036,-76.050582)">
+    <g
+       id="g1052"
+       transform="translate(13.192034,-170.22696)">
+      <rect
+         style="fill:#fdae61;fill-opacity:1;stroke:none;stroke-width:0.5"
+         id="rect36611-6-7-9-23-7-93-7"
+         width="121.62048"
+         height="7.7799997"
+         x="11.000002"
+         y="261.83752" />
+      <rect
+         style="fill:#2c7bb6;fill-opacity:1;stroke:none;stroke-width:0.5"
+         id="rect36611-6-7-9-23-7-93-7-8"
+         width="38.341831"
+         height="7.7799997"
+         x="25.967964"
+         y="269.61752" />
+      <rect
+         style="fill:#d7191c;fill-opacity:1;stroke:none;stroke-width:0.5"
+         id="rect36611-6-7-9-23-7-93-7-4"
+         width="38.186172"
+         height="7.7799997"
+         x="33.735085"
+         y="277.39752" />
+      <rect
+         style="fill:#ffffbf;fill-opacity:1;stroke:none;stroke-width:0.5"
+         id="rect36611-6-7-9-23-7-93-7-5"
+         width="53.482803"
+         height="7.7799997"
+         x="11.000002"
+         y="254.05754" />
+      <rect
+         style="fill:#ffffbf;fill-opacity:1;stroke:none;stroke-width:0.500001"
+         id="rect36611-6-7-9-23-7-93-7-5-3"
+         width="14.654878"
+         height="7.7799997"
+         x="117.96561"
+         y="246.27754" />
+      <rect
+         style="fill:#fdae61;fill-opacity:1;stroke:none;stroke-width:0.500001"
+         id="rect36611-6-7-9-23-7-93-7-5-3-1"
+         width="14.967961"
+         height="7.7799997"
+         x="11.000002"
+         y="269.61752" />
+      <rect
+         style="fill:#abd9e9;fill-opacity:1;stroke:none;stroke-width:0.5"
+         id="rect36611-6-7-9-23-7-93-7-0"
+         width="106.96561"
+         height="7.7799997"
+         x="11.000002"
+         y="246.27754" />
+      <rect
+         style="fill:#fdae61;fill-opacity:1;stroke:none;stroke-width:0.5"
+         id="rect36611-6-7-9-23-7-93-7-0-6"
+         width="68.13768"
+         height="7.7799997"
+         x="64.482803"
+         y="254.05754" />
+      <rect
+         style="fill:#ffffbf;fill-opacity:1;stroke:none;stroke-width:0.5"
+         id="rect36611-6-7-9-23-7-93-7-0-6-6"
+         width="22.735081"
+         height="7.7799997"
+         x="11.000002"
+         y="277.39752" />
+      <rect
+         style="fill:#ffffbf;fill-opacity:1;stroke:none;stroke-width:0.5"
+         id="rect36611-6-7-9-23-7-93-7-0-6-0"
+         width="68.310692"
+         height="7.7799997"
+         x="64.309799"
+         y="269.61752" />
+      <rect
+         style="fill:#abd9e9;fill-opacity:1;stroke:none;stroke-width:0.500001"
+         id="rect36611-6-7-9-23-7-93-7-0-6-0-3"
+         width="15.375591"
+         height="7.7799997"
+         x="71.921257"
+         y="277.39752" />
+    </g>
+  </g>
+</svg>
diff --git a/fig/program/bin-multiline-text.svg b/fig/program/bin-multiline-text.svg
new file mode 100644
index 0000000000000000000000000000000000000000..2f7bc3fecfc81a01c6513cf429b7f6ff74ec390b
--- /dev/null
+++ b/fig/program/bin-multiline-text.svg
@@ -0,0 +1,79 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   width="121.62049mm"
+   height="38.899979mm"
+   viewBox="0 0 121.62049 38.899979"
+   version="1.1"
+   id="svg73210"
+   inkscape:version="1.2.1 (9c6d41e410, 2022-07-14)"
+   sodipodi:docname="bin-multiline-text.svg"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:svg="http://www.w3.org/2000/svg">
+  <sodipodi:namedview
+     id="namedview73212"
+     pagecolor="#ffffff"
+     bordercolor="#999999"
+     borderopacity="1"
+     inkscape:showpageshadow="0"
+     inkscape:pageopacity="0"
+     inkscape:pagecheckerboard="0"
+     inkscape:deskcolor="#d1d1d1"
+     inkscape:document-units="mm"
+     showgrid="false"
+     inkscape:zoom="1.5625561"
+     inkscape:cx="202.55273"
+     inkscape:cy="80.957092"
+     inkscape:window-width="1916"
+     inkscape:window-height="1032"
+     inkscape:window-x="1920"
+     inkscape:window-y="22"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="layer1" />
+  <defs
+     id="defs73207" />
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(-24.192036,-76.050582)">
+    <g
+       id="g1052"
+       transform="translate(13.192034,-170.22696)">
+      <text
+         xml:space="preserve"
+         style="font-size:6.35px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:sans-serif;stroke-width:0.264583"
+         x="10.714749"
+         y="252.21983"
+         id="text35097"><tspan
+           sodipodi:role="line"
+           id="tspan35095"
+           style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.35px;font-family:monospace;-inkscape-font-specification:'monospace Bold';stroke-width:0.264583"
+           x="10.714749"
+           y="252.21983">554889e5897dec8975e8488955e0c745</tspan><tspan
+           sodipodi:role="line"
+           style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.35px;font-family:monospace;-inkscape-font-specification:'monospace Bold';stroke-width:0.264583"
+           x="10.714749"
+           y="260.15732"
+           id="tspan35099">fc00000000eb248b45fc4898488d1485</tspan><tspan
+           sodipodi:role="line"
+           style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.35px;font-family:monospace;-inkscape-font-specification:'monospace Bold';stroke-width:0.264583"
+           x="10.714749"
+           y="268.09482"
+           id="tspan35101">00000000488b45e04801d08b003945ec</tspan><tspan
+           sodipodi:role="line"
+           style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.35px;font-family:monospace;-inkscape-font-specification:'monospace Bold';stroke-width:0.264583"
+           x="10.714749"
+           y="276.03232"
+           id="tspan35103">75058b45fceb118345fc018b45fc3b45</tspan><tspan
+           sodipodi:role="line"
+           style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.35px;font-family:monospace;-inkscape-font-specification:'monospace Bold';stroke-width:0.264583"
+           x="10.714749"
+           y="283.96982"
+           id="tspan35105">e87cd4b8ffffffff5dc3</tspan></text>
+    </g>
+  </g>
+</svg>
diff --git a/fig/program/bin-singleline-base2-text.svg b/fig/program/bin-singleline-base2-text.svg
new file mode 100644
index 0000000000000000000000000000000000000000..d17d2238912859d8feb7ba1ae90e9d0625e6ad7a
--- /dev/null
+++ b/fig/program/bin-singleline-base2-text.svg
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   width="140.76659mm"
+   height="4.8028073mm"
+   viewBox="0 0 140.76658 4.8028074"
+   version="1.1"
+   id="svg79713"
+   inkscape:version="1.2.1 (9c6d41e410, 2022-07-14)"
+   sodipodi:docname="bin-singleline-base2-text.svg"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:svg="http://www.w3.org/2000/svg">
+  <sodipodi:namedview
+     id="namedview79715"
+     pagecolor="#ffffff"
+     bordercolor="#999999"
+     borderopacity="1"
+     inkscape:showpageshadow="0"
+     inkscape:pageopacity="0"
+     inkscape:pagecheckerboard="0"
+     inkscape:deskcolor="#d1d1d1"
+     inkscape:document-units="mm"
+     showgrid="false"
+     inkscape:zoom="1.104894"
+     inkscape:cx="326.27564"
+     inkscape:cy="-4.9778531"
+     inkscape:window-width="1916"
+     inkscape:window-height="1032"
+     inkscape:window-x="1920"
+     inkscape:window-y="22"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="layer1" />
+  <defs
+     id="defs79710" />
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(-8.4550672,-94.21228)">
+    <text
+       xml:space="preserve"
+       style="font-size:6.35px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:sans-serif;stroke-width:0.264583"
+       x="8.0736952"
+       y="98.925171"
+       id="text35097"><tspan
+         sodipodi:role="line"
+         style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.35px;font-family:monospace;-inkscape-font-specification:'monospace Bold';stroke-width:0.264583"
+         x="8.0736952"
+         y="98.925171"
+         id="tspan35105">01010101010010001000100111100...10101</tspan></text>
+  </g>
+</svg>
diff --git a/fig/program/bin-singleline-text.svg b/fig/program/bin-singleline-text.svg
new file mode 100644
index 0000000000000000000000000000000000000000..3df6c04f3baf57d05eccc16c1268959693802f47
--- /dev/null
+++ b/fig/program/bin-singleline-text.svg
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   width="144.41908mm"
+   height="4.9454346mm"
+   viewBox="0 0 144.41908 4.9454346"
+   version="1.1"
+   id="svg79713"
+   inkscape:version="1.2.1 (9c6d41e410, 2022-07-14)"
+   sodipodi:docname="bin-singleline-text.svg"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:svg="http://www.w3.org/2000/svg">
+  <sodipodi:namedview
+     id="namedview79715"
+     pagecolor="#ffffff"
+     bordercolor="#999999"
+     borderopacity="1"
+     inkscape:showpageshadow="0"
+     inkscape:pageopacity="0"
+     inkscape:pagecheckerboard="0"
+     inkscape:deskcolor="#d1d1d1"
+     inkscape:document-units="mm"
+     showgrid="false"
+     inkscape:zoom="1.104894"
+     inkscape:cx="202.28184"
+     inkscape:cy="-4.977853"
+     inkscape:window-width="1916"
+     inkscape:window-height="1032"
+     inkscape:window-x="1920"
+     inkscape:window-y="22"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="layer1" />
+  <defs
+     id="defs79710" />
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(-8.517079,-94.100659)">
+    <text
+       xml:space="preserve"
+       style="font-size:6.35px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:sans-serif;stroke-width:0.264583"
+       x="8.0736952"
+       y="98.925171"
+       id="text35097"><tspan
+         sodipodi:role="line"
+         style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.35px;font-family:monospace;-inkscape-font-specification:'monospace Bold';stroke-width:0.264583"
+         x="8.0736952"
+         y="98.925171"
+         id="tspan35105">554889e5897dec8975e8488955 ... fff5dc3</tspan></text>
+  </g>
+</svg>
diff --git a/fig/program/slides.asy b/fig/program/slides.asy
new file mode 100644
index 0000000000000000000000000000000000000000..e6331db1dec3ed55751e6898209f5fe204afff26
--- /dev/null
+++ b/fig/program/slides.asy
@@ -0,0 +1,145 @@
+import fontsize;
+
+settings.outformat = "pdf";
+int frame_id = -1;
+
+defaultpen(font("OT1","cmr","m","n") + fontsize(30pt));
+unitsize(1cm);
+
+real scale = 10;
+real width = 4 * scale;
+real height = 3 * scale;
+pen magenta = rgb("A626A4");
+
+string src_text_black = graphic("./src-text-black.eps");
+string src_text_color = graphic("./src-text-color.eps");
+string src_bg_color = graphic("./src-bg-color.eps");
+string bin_singleline_base2_text = graphic("./bin-singleline-base2-text.eps");
+string bin_singleline_text = graphic("./bin-singleline-text.eps");
+string bin_multiline_text = graphic("./bin-multiline-text.eps");
+string bin_multiline_bg_color  = graphic("./bin-multiline-bg-color.eps");
+string asm_text_black = graphic("./asm-text-black.eps");
+string asm_bg_color = graphic("./asm-bg-color.eps");
+
+pair base_text_dev = (width*0.53, height*0.85);
+pair newline_offset = (0, -height*0.05);
+pair newline_offset2 = (0, -height*0.04);
+
+void draw_background(bool with_border)
+{
+    path background = (0, 0) -- (width, 0) -- (width, height) -- (0, height) -- cycle;
+    fill(background, white);
+    if (with_border)
+        draw(background, black);
+}
+
+void draw_code(bool colored_font, bool with_background)
+{
+    pair code_pos = (width*0.03, height*0.9);
+
+    if (with_background)
+        label(src_bg_color, code_pos, align=SE);
+
+    if (colored_font)
+        label(src_text_color, code_pos, align=SE);
+    else
+        label(src_text_black, code_pos, align=SE);
+}
+
+void draw_vision_dev(bool with_details)
+{
+    label("\textbf{Vision conception/développement}", base_text_dev, align=SE);
+
+    if (with_details) {
+        label(" - code source", base_text_dev + 1*newline_offset, align=SE);
+        label(" - algorithmes", base_text_dev + 2*newline_offset, align=SE);
+        label(" - composants logiciels", base_text_dev + 3*newline_offset, align=SE);
+    }
+}
+
+void draw_vision_sysarch()
+{
+    label("\textbf{Vision système/architecture}", base_text_dev - (0,0.78*height), align=SE);
+}
+
+void draw_mid_separator()
+{
+    real separator_height = 0.575;
+    real separator_margin = 0.02;
+    draw((width*separator_margin, separator_height*height) -- (width*(1-separator_margin), separator_height*height), linewidth(2));
+}
+
+void draw_bin_multiline(bool with_background)
+{
+    pair pos = (width*0.03, height*0.20);
+    if (with_background)
+        draw(bin_multiline_bg_color, pos, align=SE);
+    draw(bin_multiline_text, pos, align=SE);
+}
+
+void draw_asm(bool with_background)
+{
+    pair pos = (width*0.6, height*0.85);
+    if (with_background)
+        draw(asm_bg_color, pos, align=SE);
+    draw(asm_text_black, pos, align=SE);
+}
+
+draw_background(true);
+label("\textbf{Qu'est-ce qu'un programme ?}", (width/2, height*0.95));
+shipout(format("slides-%02d", ++frame_id));
+save();
+
+picture pic = currentpicture;
+
+draw_code(true, false);
+draw_vision_dev(true);
+// TODO: schéma tableau/index/exemple, algorigramme
+shipout(format("slides-%02d", ++frame_id));
+
+draw_mid_separator();
+draw_vision_sysarch();
+shipout(format("slides-%02d", ++frame_id));
+
+pair base_text_problem = (width*0.03, height*0.55);
+label("\textbf{Problème : un processeur ne comprend aucun de ces langages !}", base_text_problem, align=SE, rgb("e00000"));
+shipout(format("slides-%02d", ++frame_id));
+label("Un processeur ne parle que son \textbf{langage machine}, du binaire !", base_text_problem + newline_offset*1, align=SE);
+
+draw(bin_singleline_base2_text, (width*0.03, height*0.4), align=SE);
+draw("la fonction \textit{index\_of} est une suite de 74 octets", (width*0.45, height*0.41), align=SE);
+shipout(format("slides-%02d", ++frame_id));
+
+draw(bin_singleline_text, (width*0.03, height*0.35), align=SE);
+draw("... que l'on peut représenter en base 16", (width*0.45, height*0.36), align=SE);
+draw("(2 caractères = 1 octet)", (width*0.48, height*0.31), align=SE);
+shipout(format("slides-%02d", ++frame_id));
+
+draw_bin_multiline(false);
+draw("... que l'on peut représenter par bloc", (width*0.45, height*0.21), align=SE);
+draw("(1 ligne = 16 octets)", (width*0.48, height*0.16), align=SE);
+shipout(format("slides-%02d", ++frame_id));
+
+restore();
+draw("\textbf{Ce code machine = ce code C ?}", (width*0.03, height*0.55), align=SE, rgb("00a000"));
+save();
+draw_code(true, false);
+draw_bin_multiline(false);
+shipout(format("slides-%02d", ++frame_id));
+
+restore();
+draw_code(false, true);
+draw_bin_multiline(true);
+pair oui_base_text = (width*0.03, height*0.48);
+draw("\textbf{Oui !} Chaque \textit{bout} du code machine", oui_base_text, align=SE);
+draw("vient d'instructions/données du code C", oui_base_text + newline_offset2*1, align=SE);
+shipout(format("slides-%02d", ++frame_id));
+
+pair asm_base_text = (width*0.03, height*0.35);
+draw("- Ce lien est plus clair en \textbf{assembleur}", oui_base_text - (0,0.2) + newline_offset2*2, align=SE);
+draw("~~(code machine $\simeq$ assembleur)", oui_base_text - (0,0.2) + newline_offset2*3, align=SE);
+// TODO: montrer instructions (cmp) / données (-1)
+draw("- Explications/détails pas dans ce cours", oui_base_text - (0,0.4) + newline_offset2*4, align=SE);
+draw("~~(ce sera en cours d'archi et de compilation)", oui_base_text - (0,0.4) + newline_offset2*5, align=SE);
+draw_asm(true);
+shipout(format("slides-%02d", ++frame_id));
diff --git a/fig/program/src-bg-color.svg b/fig/program/src-bg-color.svg
new file mode 100644
index 0000000000000000000000000000000000000000..a0f52d079c8c519670c0d7cebd3b29e08c51e397
--- /dev/null
+++ b/fig/program/src-bg-color.svg
@@ -0,0 +1,126 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   width="178.42099mm"
+   height="85.946777mm"
+   viewBox="0 0 178.42099 85.946777"
+   version="1.1"
+   id="svg3468"
+   inkscape:version="1.2.1 (9c6d41e410, 2022-07-14)"
+   sodipodi:docname="src-bg-color.svg"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:svg="http://www.w3.org/2000/svg">
+  <sodipodi:namedview
+     id="namedview3470"
+     pagecolor="#ffffff"
+     bordercolor="#999999"
+     borderopacity="1"
+     inkscape:showpageshadow="0"
+     inkscape:pageopacity="0"
+     inkscape:pagecheckerboard="0"
+     inkscape:deskcolor="#d1d1d1"
+     inkscape:document-units="mm"
+     showgrid="false"
+     inkscape:zoom="1.104894"
+     inkscape:cx="310.88955"
+     inkscape:cy="157.02864"
+     inkscape:window-width="1916"
+     inkscape:window-height="1032"
+     inkscape:window-x="1920"
+     inkscape:window-y="22"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="layer1" />
+  <defs
+     id="defs3465" />
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(-19.820629,-162.23519)">
+    <text
+       xml:space="preserve"
+       style="font-size:4.9389px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:sans-serif;stroke-width:0.264583"
+       x="-125.49408"
+       y="9.4653559"
+       id="text8776"><tspan
+         sodipodi:role="line"
+         id="tspan8774"
+         style="stroke-width:0.264583"
+         x="-125.49408"
+         y="9.4653559" /></text>
+    <text
+       xml:space="preserve"
+       style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:sans-serif;stroke-width:0.264583"
+       x="13.814248"
+       y="30.109333"
+       id="text32578"><tspan
+         sodipodi:role="line"
+         id="tspan32576"
+         style="font-size:8.46667px;stroke-width:0.264583"
+         x="13.814248"
+         y="30.109333" /></text>
+    <g
+       id="g70526"
+       transform="translate(8.8206316,140.66168)">
+      <rect
+         style="fill:#ffffbf;fill-opacity:1;stroke:none;stroke-width:0.499999"
+         id="rect36611-6-0"
+         width="178.42099"
+         height="7.7799997"
+         x="11"
+         y="60.84029" />
+      <rect
+         style="fill:#fdae61;fill-opacity:1;stroke:none;stroke-width:0.499999"
+         id="rect36611-6-6"
+         width="178.42099"
+         height="7.7799997"
+         x="11.000002"
+         y="68.620293" />
+      <rect
+         style="fill:#2c7bb6;fill-opacity:1;stroke:none;stroke-width:0.499999"
+         id="rect36611-6-2"
+         width="178.42099"
+         height="7.7799997"
+         x="10.999997"
+         y="76.400291" />
+      <rect
+         style="fill:#ffffbf;fill-opacity:1;stroke:none;stroke-width:0.499999"
+         id="rect36611-6-61"
+         width="178.42099"
+         height="7.7799997"
+         x="10.999997"
+         y="84.18029" />
+      <rect
+         style="fill:#d7191c;fill-opacity:1;stroke:none;stroke-width:0.499999"
+         id="rect36611-6-8"
+         width="178.42099"
+         height="7.7799997"
+         x="10.999997"
+         y="91.960289" />
+      <rect
+         style="fill:#abd9e9;fill-opacity:1;stroke:none;stroke-width:0.499999"
+         id="rect36611-6-7"
+         width="178.42099"
+         height="7.7799997"
+         x="11.000003"
+         y="99.740288" />
+      <rect
+         style="fill:#abd9e9;fill-opacity:1;stroke:none;stroke-width:0.499999"
+         id="rect36611"
+         width="178.42099"
+         height="15.559998"
+         x="11"
+         y="45.280293" />
+      <rect
+         style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.499999"
+         id="rect36611-3"
+         width="178.42099"
+         height="23.706783"
+         x="10.999997"
+         y="21.573507" />
+    </g>
+  </g>
+</svg>
diff --git a/fig/program/src-text-black.svg b/fig/program/src-text-black.svg
new file mode 100644
index 0000000000000000000000000000000000000000..80d28917c88ac1c0558e1acf63b6d9dc3070bce4
--- /dev/null
+++ b/fig/program/src-text-black.svg
@@ -0,0 +1,131 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   width="178.42099mm"
+   height="85.946777mm"
+   viewBox="0 0 178.42099 85.946777"
+   version="1.1"
+   id="svg3468"
+   sodipodi:docname="src-text-black.svg"
+   inkscape:version="1.2.1 (9c6d41e410, 2022-07-14)"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:svg="http://www.w3.org/2000/svg">
+  <sodipodi:namedview
+     id="namedview3470"
+     pagecolor="#ffffff"
+     bordercolor="#999999"
+     borderopacity="1"
+     inkscape:showpageshadow="0"
+     inkscape:pageopacity="0"
+     inkscape:pagecheckerboard="0"
+     inkscape:deskcolor="#d1d1d1"
+     inkscape:document-units="mm"
+     showgrid="false"
+     inkscape:zoom="1.104894"
+     inkscape:cx="309.98448"
+     inkscape:cy="156.12357"
+     inkscape:window-width="1916"
+     inkscape:window-height="1032"
+     inkscape:window-x="1920"
+     inkscape:window-y="22"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="layer1" />
+  <defs
+     id="defs3465" />
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(-19.820629,-162.23519)">
+    <text
+       xml:space="preserve"
+       style="font-size:4.9389px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:sans-serif;stroke-width:0.264583"
+       x="-125.49408"
+       y="9.4653559"
+       id="text8776"><tspan
+         sodipodi:role="line"
+         id="tspan8774"
+         style="stroke-width:0.264583"
+         x="-125.49408"
+         y="9.4653559" /></text>
+    <text
+       xml:space="preserve"
+       style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:sans-serif;stroke-width:0.264583"
+       x="13.814248"
+       y="30.109333"
+       id="text32578"><tspan
+         sodipodi:role="line"
+         id="tspan32576"
+         style="font-size:8.46667px;stroke-width:0.264583"
+         x="13.814248"
+         y="30.109333" /></text>
+    <g
+       id="g70526"
+       transform="translate(8.8206316,140.66168)">
+      <text
+         xml:space="preserve"
+         style="font-size:6.35px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:sans-serif;fill:#808080;fill-opacity:1;stroke-width:0.264583"
+         x="11"
+         y="26.735989"
+         id="text22024"><tspan
+           sodipodi:role="line"
+           id="tspan22022"
+           style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.35px;font-family:monospace;-inkscape-font-specification:'monospace Bold';fill:#808080;fill-opacity:1;stroke-width:0.264583"
+           x="11"
+           y="26.735989">// Renvoie l'indice de la première occurrence</tspan><tspan
+           sodipodi:role="line"
+           style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.35px;font-family:monospace;-inkscape-font-specification:'monospace Bold';fill:#808080;fill-opacity:1;stroke-width:0.264583"
+           x="11"
+           y="34.673489"
+           id="tspan22044">// de value dans le tableau array,</tspan><tspan
+           sodipodi:role="line"
+           style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.35px;font-family:monospace;-inkscape-font-specification:'monospace Bold';fill:#808080;fill-opacity:1;stroke-width:0.264583"
+           x="11"
+           y="42.610989"
+           id="tspan22026">// ou -1 si value n'est pas dans array.</tspan><tspan
+           sodipodi:role="line"
+           style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.35px;font-family:monospace;-inkscape-font-specification:'monospace Bold';fill:#000000;fill-opacity:1;stroke-width:0.264583"
+           x="11"
+           y="50.548489"
+           id="tspan22028">int index_of(int value, int size, int * array)</tspan><tspan
+           sodipodi:role="line"
+           style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.35px;font-family:monospace;-inkscape-font-specification:'monospace Bold';fill:#000000;fill-opacity:1;stroke-width:0.264583"
+           x="11"
+           y="58.485989"
+           id="tspan22030">{</tspan><tspan
+           sodipodi:role="line"
+           style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.35px;font-family:monospace;-inkscape-font-specification:'monospace Bold';fill:#000000;fill-opacity:1;stroke-width:0.264583"
+           x="11"
+           y="66.423485"
+           id="tspan22032">  for (int i = 0; i &lt; size; ++i) {</tspan><tspan
+           sodipodi:role="line"
+           style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.35px;font-family:monospace;-inkscape-font-specification:'monospace Bold';fill:#000000;fill-opacity:1;stroke-width:0.264583"
+           x="11"
+           y="74.360985"
+           id="tspan22034">    if (array[i] == value)</tspan><tspan
+           sodipodi:role="line"
+           style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.35px;font-family:monospace;-inkscape-font-specification:'monospace Bold';fill:#000000;fill-opacity:1;stroke-width:0.264583"
+           x="11"
+           y="82.298485"
+           id="tspan22036">      return i;</tspan><tspan
+           sodipodi:role="line"
+           style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.35px;font-family:monospace;-inkscape-font-specification:'monospace Bold';fill:#000000;fill-opacity:1;stroke-width:0.264583"
+           x="11"
+           y="90.235985"
+           id="tspan22038">  }</tspan><tspan
+           sodipodi:role="line"
+           style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.35px;font-family:monospace;-inkscape-font-specification:'monospace Bold';fill:#000000;fill-opacity:1;stroke-width:0.264583"
+           x="11"
+           y="98.173485"
+           id="tspan22040">  return -1;</tspan><tspan
+           sodipodi:role="line"
+           style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.35px;font-family:monospace;-inkscape-font-specification:'monospace Bold';fill:#000000;fill-opacity:1;stroke-width:0.264583"
+           x="11"
+           y="106.11098"
+           id="tspan22042">}</tspan></text>
+    </g>
+  </g>
+</svg>
diff --git a/fig/program/src-text-color.svg b/fig/program/src-text-color.svg
new file mode 100644
index 0000000000000000000000000000000000000000..2e0dea7fa4e7ea255dab18f995d369b044aabe4a
--- /dev/null
+++ b/fig/program/src-text-color.svg
@@ -0,0 +1,170 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   width="178.42099mm"
+   height="85.946777mm"
+   viewBox="0 0 178.42099 85.946777"
+   version="1.1"
+   id="svg3468"
+   sodipodi:docname="src-text-color.svg"
+   inkscape:version="1.2.1 (9c6d41e410, 2022-07-14)"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:svg="http://www.w3.org/2000/svg">
+  <sodipodi:namedview
+     id="namedview3470"
+     pagecolor="#ffffff"
+     bordercolor="#999999"
+     borderopacity="1"
+     inkscape:showpageshadow="0"
+     inkscape:pageopacity="0"
+     inkscape:pagecheckerboard="0"
+     inkscape:deskcolor="#d1d1d1"
+     inkscape:document-units="mm"
+     showgrid="false"
+     inkscape:zoom="1.104894"
+     inkscape:cx="309.98448"
+     inkscape:cy="156.12357"
+     inkscape:window-width="1916"
+     inkscape:window-height="1032"
+     inkscape:window-x="1920"
+     inkscape:window-y="22"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="layer1" />
+  <defs
+     id="defs3465" />
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(-19.820629,-162.23519)">
+    <text
+       xml:space="preserve"
+       style="font-size:4.9389px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:sans-serif;stroke-width:0.264583"
+       x="-125.49408"
+       y="9.4653559"
+       id="text8776"><tspan
+         sodipodi:role="line"
+         id="tspan8774"
+         style="stroke-width:0.264583"
+         x="-125.49408"
+         y="9.4653559" /></text>
+    <text
+       xml:space="preserve"
+       style="font-size:8.46667px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:sans-serif;stroke-width:0.264583"
+       x="13.814248"
+       y="30.109333"
+       id="text32578"><tspan
+         sodipodi:role="line"
+         id="tspan32576"
+         style="font-size:8.46667px;stroke-width:0.264583"
+         x="13.814248"
+         y="30.109333" /></text>
+    <g
+       id="g70526"
+       transform="translate(8.8206316,140.66168)">
+      <text
+         xml:space="preserve"
+         style="font-size:6.35px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:sans-serif;fill:#808080;fill-opacity:1;stroke-width:0.264583"
+         x="11"
+         y="26.735989"
+         id="text22024"><tspan
+           sodipodi:role="line"
+           id="tspan22022"
+           style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.35px;font-family:monospace;-inkscape-font-specification:'monospace Bold';fill:#40a14f;fill-opacity:1;stroke-width:0.264583"
+           x="11"
+           y="26.735989">// Renvoie l'indice de la première occurrence</tspan><tspan
+           sodipodi:role="line"
+           style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.35px;font-family:monospace;-inkscape-font-specification:'monospace Bold';fill:#40a14f;fill-opacity:1;stroke-width:0.264583"
+           x="11"
+           y="34.673489"
+           id="tspan22044">// de value dans le tableau array,</tspan><tspan
+           sodipodi:role="line"
+           style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.35px;font-family:monospace;-inkscape-font-specification:'monospace Bold';fill:#40a14f;fill-opacity:1;stroke-width:0.264583"
+           x="11"
+           y="42.610989"
+           id="tspan22026">// ou -1 si value n'est pas dans array.</tspan><tspan
+           sodipodi:role="line"
+           style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.35px;font-family:monospace;-inkscape-font-specification:'monospace Bold';fill:#000000;fill-opacity:1;stroke-width:0.264583"
+           x="11"
+           y="50.548489"
+           id="tspan22028"><tspan
+   style="fill:#a626a4;fill-opacity:1"
+   id="tspan66598">int</tspan> <tspan
+   style="fill:#0184bc;fill-opacity:1"
+   id="tspan68798">index_of</tspan>(<tspan
+   style="fill:#a626a4;fill-opacity:1"
+   id="tspan69526">int</tspan> value, <tspan
+   style="fill:#a626a4;fill-opacity:1"
+   id="tspan66600">int</tspan> size, <tspan
+   style="fill:#a626a4;fill-opacity:1"
+   id="tspan66602">int *</tspan> array)</tspan><tspan
+           sodipodi:role="line"
+           style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.35px;font-family:monospace;-inkscape-font-specification:'monospace Bold';fill:#000000;fill-opacity:1;stroke-width:0.264583"
+           x="11"
+           y="58.485989"
+           id="tspan22030">{</tspan><tspan
+           sodipodi:role="line"
+           style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.35px;font-family:monospace;-inkscape-font-specification:'monospace Bold';fill:#000000;fill-opacity:1;stroke-width:0.264583"
+           x="11"
+           y="66.423485"
+           id="tspan22032">  <tspan
+   style="fill:#a626a4;fill-opacity:1"
+   id="tspan67330">for</tspan> (<tspan
+   style="fill:#a626a4;fill-opacity:1"
+   id="tspan67334">int</tspan> i = <tspan
+   style="fill:#c18401;fill-opacity:1"
+   id="tspan70980">0</tspan>; i <tspan
+   style="fill:#a626a4;fill-opacity:1"
+   id="tspan67336">&lt;</tspan> size; <tspan
+   style="fill:#a626a4;fill-opacity:1"
+   id="tspan67338">++</tspan>i) {</tspan><tspan
+           sodipodi:role="line"
+           style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.35px;font-family:monospace;-inkscape-font-specification:'monospace Bold';fill:#000000;fill-opacity:1;stroke-width:0.264583"
+           x="11"
+           y="74.360985"
+           id="tspan22034">    <tspan
+   style="fill:#a626a4;fill-opacity:1"
+   id="tspan67332">if</tspan> (array[i] <tspan
+   style="fill:#a626a4;fill-opacity:1"
+   id="tspan67340">==</tspan> value)</tspan><tspan
+           sodipodi:role="line"
+           style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.35px;font-family:monospace;-inkscape-font-specification:'monospace Bold';fill:#000000;fill-opacity:1;stroke-width:0.264583"
+           x="11"
+           y="82.298485"
+           id="tspan22036">      <tspan
+   style="fill:#a626a4;fill-opacity:1"
+   id="tspan67342">return</tspan> i;</tspan><tspan
+           sodipodi:role="line"
+           style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.35px;font-family:monospace;-inkscape-font-specification:'monospace Bold';fill:#000000;fill-opacity:1;stroke-width:0.264583"
+           x="11"
+           y="90.235985"
+           id="tspan22038">  }</tspan><tspan
+           sodipodi:role="line"
+           style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.35px;font-family:monospace;-inkscape-font-specification:'monospace Bold';fill:#000000;fill-opacity:1;stroke-width:0.264583"
+           x="11"
+           y="98.173485"
+           id="tspan22040">  <tspan
+   style="fill:#a626a4;fill-opacity:1"
+   id="tspan67344">return</tspan> <tspan
+   style="fill:#c18401;fill-opacity:1"
+   id="tspan70982">-1</tspan>;</tspan><tspan
+           sodipodi:role="line"
+           style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.35px;font-family:monospace;-inkscape-font-specification:'monospace Bold';fill:#000000;fill-opacity:1;stroke-width:0.264583"
+           x="11"
+           y="106.11098"
+           id="tspan22042">}</tspan></text>
+    </g>
+    <text
+       xml:space="preserve"
+       style="font-size:10.5833px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:sans-serif;stroke-width:0.264583"
+       x="177.60817"
+       y="218.42087"
+       id="text70986"><tspan
+         sodipodi:role="line"
+         id="tspan70984"
+         style="stroke-width:0.264583"></tspan></text>
+  </g>
+</svg>