<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://unterrichten.zum.de/index.php?action=history&amp;feed=atom&amp;title=JavaScript%2FVon-Neumann-Rechner-Simulation</id>
	<title>JavaScript/Von-Neumann-Rechner-Simulation - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://unterrichten.zum.de/index.php?action=history&amp;feed=atom&amp;title=JavaScript%2FVon-Neumann-Rechner-Simulation"/>
	<link rel="alternate" type="text/html" href="https://unterrichten.zum.de/index.php?title=JavaScript/Von-Neumann-Rechner-Simulation&amp;action=history"/>
	<updated>2026-04-06T12:44:01Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in ZUM-Unterrichten</subtitle>
	<generator>MediaWiki 1.39.17</generator>
	<entry>
		<id>https://unterrichten.zum.de/index.php?title=JavaScript/Von-Neumann-Rechner-Simulation&amp;diff=100416&amp;oldid=prev</id>
		<title>Matthias Scharwies: l korr</title>
		<link rel="alternate" type="text/html" href="https://unterrichten.zum.de/index.php?title=JavaScript/Von-Neumann-Rechner-Simulation&amp;diff=100416&amp;oldid=prev"/>
		<updated>2019-10-26T04:40:32Z</updated>

		<summary type="html">&lt;p&gt;l korr&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;de&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Nächstältere Version&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Version vom 26. Oktober 2019, 04:40 Uhr&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l96&quot;&gt;Zeile 96:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 96:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Siehe auch==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Siehe auch==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[JavaScript]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[JavaScript]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Programmieraufgaben&lt;/del&gt;]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Programmieraufgabe&lt;/ins&gt;]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Hintergrundwissen ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Hintergrundwissen ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key zumunterrichten:diff::1.12:old-97675:rev-100416 --&gt;
&lt;/table&gt;</summary>
		<author><name>Matthias Scharwies</name></author>
	</entry>
	<entry>
		<id>https://unterrichten.zum.de/index.php?title=JavaScript/Von-Neumann-Rechner-Simulation&amp;diff=97675&amp;oldid=prev</id>
		<title>Matthias Scharwies: N - importiert</title>
		<link rel="alternate" type="text/html" href="https://unterrichten.zum.de/index.php?title=JavaScript/Von-Neumann-Rechner-Simulation&amp;diff=97675&amp;oldid=prev"/>
		<updated>2019-08-13T06:04:00Z</updated>

		<summary type="html">&lt;p&gt;N - importiert&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{wpde|Von-Neumann-Architektur|&amp;#039;&amp;#039;&amp;#039;Von-Neumann-Rechner-Simulatoren&amp;#039;&amp;#039;&amp;#039;}} gibt es sehr viele. Selten bekommt man jedoch Gelegenheit, selbst den Quellcode sehen zu können und zusätzliche Befehle einbauen zu können.&lt;br /&gt;
&lt;br /&gt;
Die folgende Simulation ermöglicht es, in JavaScript kleine Maschinensprachenprogramme auf einem sehr einfachen Rechner zu simulieren.&lt;br /&gt;
* Der Befehlssatz wurde - leicht variiert - von folgender Simulation übernommen: [http://patrick.kolla.de/uni/software.html#vnr]&lt;br /&gt;
&lt;br /&gt;
{{Übung|1=&lt;br /&gt;
* Analysieren Sie das Programm&lt;br /&gt;
* Ergänzen Sie die fehlenden Befehle&lt;br /&gt;
* Schreiben Sie kleine Anwendungen in Maschinensprache und testen Sie sie mit Hilfe des Simulators.}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&amp;lt;script&amp;gt;&lt;br /&gt;
 /*&lt;br /&gt;
 0 -	COMPARE X Y	Vergleiche (X) und (Y)&lt;br /&gt;
 		PS:=0 falls (X)=(Y)&lt;br /&gt;
 		PS:=1 falls (X)&amp;gt;(Y)&lt;br /&gt;
 		PS:=-1 falls (X)&amp;lt;(Y)&lt;br /&gt;
 1 -	IF= X	Falls PS=0 springe an die Adresse X&lt;br /&gt;
 2 -	IF&amp;gt; X	Falls PS&amp;gt;0 springe an die Adresse X&lt;br /&gt;
 3 -	IF&amp;lt; X	Falls PS&amp;lt;0 springe an die Adresse X&lt;br /&gt;
 4 -	SUB X Y	(X):=(X)-(Y)&lt;br /&gt;
 5 -	JMP X	Springe an die Adresse X&lt;br /&gt;
 6 -	OUT X	Ausgabe von (X)&lt;br /&gt;
 7 -	END	Ende&lt;br /&gt;
 &lt;br /&gt;
 8 -	INP X	Eingabe von (X)&lt;br /&gt;
 9 -	ADD	(X):=(X)+(Y)&lt;br /&gt;
 10 -	MUL	(X):=(X)*(Y)&lt;br /&gt;
 11 -	DIV	(X):=(X)/(Y)&lt;br /&gt;
 12 -	MOD	(X):=(X)MOD(Y)&lt;br /&gt;
 &lt;br /&gt;
 zusätzlich&lt;br /&gt;
 13 - dump - gibt die Werte aller Speicherplätze aus&lt;br /&gt;
 */&lt;br /&gt;
 &lt;br /&gt;
 var a=new Array();&lt;br /&gt;
 var ps=new Number();&lt;br /&gt;
 var zaehler=new Number();&lt;br /&gt;
 var nothalt=new Number();&lt;br /&gt;
 zaehler=0; &lt;br /&gt;
 nothalt=0; // spätestens nach 1000 Schritten wird das Prg unterbrochen&lt;br /&gt;
 a[ 0]=&amp;quot;inp&amp;quot;;&lt;br /&gt;
 a[ 1]=&amp;quot;10&amp;quot;;&lt;br /&gt;
 a[ 2]=&amp;quot;out&amp;quot;;&lt;br /&gt;
 a[ 3]=&amp;quot;10&amp;quot;;&lt;br /&gt;
 a[ 4]=&amp;quot;add&amp;quot;;&lt;br /&gt;
 a[ 5]=&amp;quot;10&amp;quot;;&lt;br /&gt;
 a[ 6]=&amp;quot;9&amp;quot;;&lt;br /&gt;
 a[ 7]=&amp;quot;jmp&amp;quot;;&lt;br /&gt;
 a[ 8]=&amp;quot;2&amp;quot;;&lt;br /&gt;
 a[ 9]=&amp;quot;1&amp;quot;;&lt;br /&gt;
 a[10]=&amp;quot;0&amp;quot;; &lt;br /&gt;
 &lt;br /&gt;
 while (a[zaehler]!=&amp;quot;end&amp;quot; &amp;amp;&amp;amp; nothalt&amp;lt;1000){  &lt;br /&gt;
  document.write(a[zaehler]+&amp;quot;&amp;lt;br&amp;gt;&amp;quot;);  &lt;br /&gt;
 // inp ZELLE - ermöglicht eine Benutzereingabe&lt;br /&gt;
 // der Wert wird in ZELLE gespeichert&lt;br /&gt;
 if (a[zaehler]==&amp;quot;inp&amp;quot;) {&lt;br /&gt;
  zaehler++;&lt;br /&gt;
  a[a[zaehler]]=prompt(&amp;quot;Bitte eine Zahl eingeben&amp;quot;);&lt;br /&gt;
 }&lt;br /&gt;
 // out ZELLE&lt;br /&gt;
 // gibt den Wert von ZELLE aus.&lt;br /&gt;
 if (a[zaehler]==&amp;quot;out&amp;quot;) {&lt;br /&gt;
  zaehler++;&lt;br /&gt;
  document.write(a[a[zaehler]]+&amp;quot; --- &amp;quot;);&lt;br /&gt;
 }  &lt;br /&gt;
 // add ZELLE1 ZELLE2 - addiert zum Wert der Zelle1 den Wert von ZELLE2&lt;br /&gt;
 // speichert ihn in Zelle&lt;br /&gt;
 if (a[zaehler]==&amp;quot;add&amp;quot;) {&lt;br /&gt;
  zaehler++;&lt;br /&gt;
  a[a[zaehler]]=Number(a[a[zaehler]])+Number(a[a[zaehler+1]]);&lt;br /&gt;
  zaehler++;&lt;br /&gt;
 } &lt;br /&gt;
 // jmp ZELLE&lt;br /&gt;
 // setzt den Zähler auf den Wert ZELLE (springt im Programm)&lt;br /&gt;
 if (a[zaehler]==&amp;quot;jmp&amp;quot;) {&lt;br /&gt;
  zaehler++;&lt;br /&gt;
  zaehler=a[zaehler]-1;&lt;br /&gt;
 }&lt;br /&gt;
 // dump - gibt den Wert von allen Speicherzellen aus.&lt;br /&gt;
 if (a[zaehler]==&amp;quot;dump&amp;quot;) {&lt;br /&gt;
  for (i=0;i&amp;lt;a.length;i++) {&lt;br /&gt;
    document.write(i+&amp;quot;-&amp;quot;+a[i]+&amp;quot; --- &amp;quot;);&lt;br /&gt;
  } &lt;br /&gt;
 }&lt;br /&gt;
  zaehler++;&lt;br /&gt;
  nothalt++;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 if (nothalt==1000) { // nach spätestens 1000 Schritten stoppt das Programm&lt;br /&gt;
    alert(&amp;quot;(Wahrscheinlich) Programmstopp durch Nothalt&amp;quot;);&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/script&amp;gt;&lt;br /&gt;
}}&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Siehe auch==&lt;br /&gt;
* [[JavaScript]]&lt;br /&gt;
* [[Programmieraufgaben]]&lt;br /&gt;
&lt;br /&gt;
== Hintergrundwissen ==&lt;br /&gt;
* {{wpde|Von-Neumann-Architektur|Von-Neumann-Architektur}}&lt;br /&gt;
* {{wpde|Von_Neumann|Von Neumann}}&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:JavaScript]]&lt;br /&gt;
[[Kategorie:Unterrichtsidee]]&lt;br /&gt;
[[Kategorie:Informatik]]&lt;/div&gt;</summary>
		<author><name>Matthias Scharwies</name></author>
	</entry>
</feed>