<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress/2.2.1" -->
<rss version="2.0" 
	xmlns:content="http://purl.org/rss/1.0/modules/content/">
<channel>
	<title>Kommentare fuer Free Software Blog</title>
	<link>http://sascha-kersken.de</link>
	<description>Freie Software und verwandte Themen</description>
	<pubDate>Sun, 05 Feb 2012 17:07:46 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.2.1</generator>

	<item>
		<title>Kommentar zu Kleiner Wettbewerb zum virtuellen Prozessor von Andy Wenk</title>
		<link>http://sascha-kersken.de/2012/01/24/kleiner-wettbewerb-zum-virtuellen-prozessor/#comment-32779</link>
		<author>Andy Wenk</author>
		<pubDate>Fri, 27 Jan 2012 23:15:18 +0000</pubDate>
		<guid>http://sascha-kersken.de/2012/01/24/kleiner-wettbewerb-zum-virtuellen-prozessor/#comment-32779</guid>
		<description>Hey,

für's erst Mal rumprobieren hats Spass gemacht. Weil ich gerade dieses herrliche Video über Natur und Algorithmen gesehen habe (http://vimeo.com/9953368), hier ein ein simples Programm um die Fibonacci Reihe zu berechnen:

MOV A 0 ;initial Wer for Register A
MOV B 1  ; initial Wer for Register B
PUSH A ; zeige A (0)
LBL fib ; setze Sprungmarke
ADD A B ; addiere A und B (0 + 1, 1 +1, 1 + 2, 2 + 3 ...) 
PUSH A ; zeige A (1, 2, 3, 5, 8, 13 ...)
MOV $0 A ; Wert von Register A, in welchem die Berechnung aus A + B steht, merken
MOV A B ; Wert von B nach A schieben
MOV B $0 ; das Ergebnis aus der Berechnung A + B, welches in $0 steht, nach B schreiben
CMP B 100 ; Abbruchbedingung der Schleife
JAE end ; wenn der vergleich false ergibt, sprich wenn B &#62; 100 ist, zu Sprungmarke end springen
JMP fib ; ansonsten wieder zu Sprungmarke fib und weiter rechnen
LBL end ; setze Sprungmarke end
HLT ; Programm beenden

Das Programm von Ramon ist aber schon spannender ;-)

Cheers

Andy</description>
		<content:encoded><![CDATA[<p>Hey,</p>
<p>für&#8217;s erst Mal rumprobieren hats Spass gemacht. Weil ich gerade dieses herrliche Video über Natur und Algorithmen gesehen habe (http://vimeo.com/9953368), hier ein ein simples Programm um die Fibonacci Reihe zu berechnen:</p>
<p>MOV A 0 ;initial Wer for Register A<br />
MOV B 1  ; initial Wer for Register B<br />
PUSH A ; zeige A (0)<br />
LBL fib ; setze Sprungmarke<br />
ADD A B ; addiere A und B (0 + 1, 1 +1, 1 + 2, 2 + 3 &#8230;)<br />
PUSH A ; zeige A (1, 2, 3, 5, 8, 13 &#8230;)<br />
MOV $0 A ; Wert von Register A, in welchem die Berechnung aus A + B steht, merken<br />
MOV A B ; Wert von B nach A schieben<br />
MOV B $0 ; das Ergebnis aus der Berechnung A + B, welches in $0 steht, nach B schreiben<br />
CMP B 100 ; Abbruchbedingung der Schleife<br />
JAE end ; wenn der vergleich false ergibt, sprich wenn B &gt; 100 ist, zu Sprungmarke end springen<br />
JMP fib ; ansonsten wieder zu Sprungmarke fib und weiter rechnen<br />
LBL end ; setze Sprungmarke end<br />
HLT ; Programm beenden</p>
<p>Das Programm von Ramon ist aber schon spannender <img src='http://sascha-kersken.de/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>Cheers</p>
<p>Andy</p>
]]></content:encoded>
	</item>
	<item>
		<title>Kommentar zu Kleiner Wettbewerb zum virtuellen Prozessor von Ramon Kukla</title>
		<link>http://sascha-kersken.de/2012/01/24/kleiner-wettbewerb-zum-virtuellen-prozessor/#comment-32738</link>
		<author>Ramon Kukla</author>
		<pubDate>Thu, 26 Jan 2012 09:48:54 +0000</pubDate>
		<guid>http://sascha-kersken.de/2012/01/24/kleiner-wettbewerb-zum-virtuellen-prozessor/#comment-32738</guid>
		<description>Naja, das Problem, dass eventuell zu wenig Bandbreite zur Verfuegung steht, bleibt ja :) Ich kann mir das jetzt nur bestaetigen lassen ;)</description>
		<content:encoded><![CDATA[<p>Naja, das Problem, dass eventuell zu wenig Bandbreite zur Verfuegung steht, bleibt ja <img src='http://sascha-kersken.de/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> Ich kann mir das jetzt nur bestaetigen lassen <img src='http://sascha-kersken.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /></p>
]]></content:encoded>
	</item>
	<item>
		<title>Kommentar zu Kleiner Wettbewerb zum virtuellen Prozessor von Sascha Kersken</title>
		<link>http://sascha-kersken.de/2012/01/24/kleiner-wettbewerb-zum-virtuellen-prozessor/#comment-32737</link>
		<author>Sascha Kersken</author>
		<pubDate>Thu, 26 Jan 2012 08:37:21 +0000</pubDate>
		<guid>http://sascha-kersken.de/2012/01/24/kleiner-wettbewerb-zum-virtuellen-prozessor/#comment-32737</guid>
		<description>Hallo Ramon,

auch ein schönes Programm, das ein praktisches Problem löst :).</description>
		<content:encoded><![CDATA[<p>Hallo Ramon,</p>
<p>auch ein schönes Programm, das ein praktisches Problem löst :).</p>
]]></content:encoded>
	</item>
	<item>
		<title>Kommentar zu Kleiner Wettbewerb zum virtuellen Prozessor von Ramon Kukla</title>
		<link>http://sascha-kersken.de/2012/01/24/kleiner-wettbewerb-zum-virtuellen-prozessor/#comment-32736</link>
		<author>Ramon Kukla</author>
		<pubDate>Thu, 26 Jan 2012 08:18:30 +0000</pubDate>
		<guid>http://sascha-kersken.de/2012/01/24/kleiner-wettbewerb-zum-virtuellen-prozessor/#comment-32736</guid>
		<description>Hier mein Beitrach :) Ich dachte erst an die Tuerme von Hanoi, das war mir dann aber doch zu aufwaendig. Also habe ich was gemacht mit dem man die (rechnerische) Dauer einer Dateiuebertragung berechnen kann. Der Code sollte erklaerend sein. Fuer mich, als jemand der es auch schoen mag, war es eine Herausforderung, da ich viele Dinge nicht so schoen umsetzen konnte. In erster Linie geht es da um die Eingabevalidierung. Aber naja ;) Wenn ich das Glueck habe wuerde ich super gerne das Apache-Buch nehmen. Das wuerde mir sehr gelegen kommen.

MOV $0, 2 ; Bandbreite in MBit/s eintragen
MOV $1, 10 ; Groesse der Datei in X eintragen
MOV $2, 1 ; X, Masseinheit, fuer Datei (0 = Kilobyte, 1 = Megabyte, 2 = Gigabyte) eintragen
MOV $3, 0 ; Resultat
MOV $11, 8192 ; Ein Kilobyte in Bit
MOV $12, 8388608 ; Ein Megabyte in Bit
MOV $13, 8589934592 ; Ein Gigabyte in Bit
CMP $2, 1; Masseinheit mit 1 vergleichen
JA giga ; wenn groesser 1, dann Giga
JE mega ; wenn gleich 1, dann Mega. Sonst Kilo (optimaler Fall)
MUL $1, $11 ; Rechne Datenmenge (Kilo) nach Bit um
JMP calc
LBL giga
MUL $1, $13 ; Rechne Datenmenge (Giga) nach Bit um
JMP calc
LBL mega
MUL $1, $12 ; Rechne Datenmenge (Mega) nach Bit um
JMP calc
LBL calc
MUL $0, 1024000 ; Rechne Bandbreite in Bit um
DIV $1, $0 ; Berechne Uebertragunszeit (Menge durch Geschwindigkeit)
PUSH $1 ; Resultat (in Sekunden) auf den Stack legen</description>
		<content:encoded><![CDATA[<p>Hier mein Beitrach <img src='http://sascha-kersken.de/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> Ich dachte erst an die Tuerme von Hanoi, das war mir dann aber doch zu aufwaendig. Also habe ich was gemacht mit dem man die (rechnerische) Dauer einer Dateiuebertragung berechnen kann. Der Code sollte erklaerend sein. Fuer mich, als jemand der es auch schoen mag, war es eine Herausforderung, da ich viele Dinge nicht so schoen umsetzen konnte. In erster Linie geht es da um die Eingabevalidierung. Aber naja <img src='http://sascha-kersken.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> Wenn ich das Glueck habe wuerde ich super gerne das Apache-Buch nehmen. Das wuerde mir sehr gelegen kommen.</p>
<p>MOV $0, 2 ; Bandbreite in MBit/s eintragen<br />
MOV $1, 10 ; Groesse der Datei in X eintragen<br />
MOV $2, 1 ; X, Masseinheit, fuer Datei (0 = Kilobyte, 1 = Megabyte, 2 = Gigabyte) eintragen<br />
MOV $3, 0 ; Resultat<br />
MOV $11, 8192 ; Ein Kilobyte in Bit<br />
MOV $12, 8388608 ; Ein Megabyte in Bit<br />
MOV $13, 8589934592 ; Ein Gigabyte in Bit<br />
CMP $2, 1; Masseinheit mit 1 vergleichen<br />
JA giga ; wenn groesser 1, dann Giga<br />
JE mega ; wenn gleich 1, dann Mega. Sonst Kilo (optimaler Fall)<br />
MUL $1, $11 ; Rechne Datenmenge (Kilo) nach Bit um<br />
JMP calc<br />
LBL giga<br />
MUL $1, $13 ; Rechne Datenmenge (Giga) nach Bit um<br />
JMP calc<br />
LBL mega<br />
MUL $1, $12 ; Rechne Datenmenge (Mega) nach Bit um<br />
JMP calc<br />
LBL calc<br />
MUL $0, 1024000 ; Rechne Bandbreite in Bit um<br />
DIV $1, $0 ; Berechne Uebertragunszeit (Menge durch Geschwindigkeit)<br />
PUSH $1 ; Resultat (in Sekunden) auf den Stack legen</p>
]]></content:encoded>
	</item>
	<item>
		<title>Kommentar zu Kleiner Wettbewerb zum virtuellen Prozessor von Sascha Kersken</title>
		<link>http://sascha-kersken.de/2012/01/24/kleiner-wettbewerb-zum-virtuellen-prozessor/#comment-32710</link>
		<author>Sascha Kersken</author>
		<pubDate>Tue, 24 Jan 2012 22:06:08 +0000</pubDate>
		<guid>http://sascha-kersken.de/2012/01/24/kleiner-wettbewerb-zum-virtuellen-prozessor/#comment-32710</guid>
		<description>Hallo Flo, hallo Steffen,

vielen Dank für die beiden Einsendungen schon mal :). Die Programme laufen fehlerfrei durch, machen den beschriebenen Job und sind auch noch ausführlich kommentiert. Großartig :). Ich drücke euch schon mal den Daumen fürs Gewinnen (und freue mich natürlich trotzdem auf weitere spannende Einsendungen ;)).</description>
		<content:encoded><![CDATA[<p>Hallo Flo, hallo Steffen,</p>
<p>vielen Dank für die beiden Einsendungen schon mal :). Die Programme laufen fehlerfrei durch, machen den beschriebenen Job und sind auch noch ausführlich kommentiert. Großartig :). Ich drücke euch schon mal den Daumen fürs Gewinnen (und freue mich natürlich trotzdem auf weitere spannende Einsendungen ;)).</p>
]]></content:encoded>
	</item>
	<item>
		<title>Kommentar zu Kleiner Wettbewerb zum virtuellen Prozessor von Flo</title>
		<link>http://sascha-kersken.de/2012/01/24/kleiner-wettbewerb-zum-virtuellen-prozessor/#comment-32709</link>
		<author>Flo</author>
		<pubDate>Tue, 24 Jan 2012 21:49:29 +0000</pubDate>
		<guid>http://sascha-kersken.de/2012/01/24/kleiner-wettbewerb-zum-virtuellen-prozessor/#comment-32709</guid>
		<description>Mist, ähnlicher Gedanke wie Steffen.
Folgender Algorithmus berechnet den Binomialkoeffizient (n über k):

MOV A 19 ; Laden des Werts für n (im Beispiel 19) 
MOV B 8 ; Laden des Werts für k (im Beispiel 8)
CMP A B ; A und B vergleichen, 
JBE ende ; falls A kleiner ist ans Ende springe
MOV $1 A ; A in $1 speichern
SUB $1 B ; B von $1 abziehen
CMP $1 B ; Vergleichen von $1 und B
JAE b_kleiner ; Wenn B kleiner ist, kann der Schritt übersprungen werden
MOV B $1 ; Falls nicht, speichere den kleineren Wert ($1) in B *
LBL b_kleiner  
MOV $0 A ; Dann A und B in in $0 und $1 speichern
MOV $1 B
LBL iteration
DEC A ; In jedem Durchgang die Werte in A und B dekrementieren
DEC B
MUL $0 A ; und mit $0 und $1 multiplizieren
MUL $1 B
CMP B 1 ; wenn B == 1 ist, ist das Spiel (fast) zu Ende
JA iteration
DIV $0 $1 ; Die Werte werden noch dividiert und anschließend steht in $0 das Ergebnis
MOV $1 0 ; $1 wird noch aufgeräumt
LBL ende

*Grund: (n über k) ist identisch zu (n über n-k) und hier fällt die Wahl auf den kürzeren Weg

Lustiges Spielzeug, der virtuelle Prozessor :)

Schönen Gruß und danke für die nette Idee,
Flo</description>
		<content:encoded><![CDATA[<p>Mist, ähnlicher Gedanke wie Steffen.<br />
Folgender Algorithmus berechnet den Binomialkoeffizient (n über k):</p>
<p>MOV A 19 ; Laden des Werts für n (im Beispiel 19)<br />
MOV B 8 ; Laden des Werts für k (im Beispiel <img src='http://sascha-kersken.de/wp-includes/images/smilies/icon_cool.gif' alt='8)' class='wp-smiley' /><br />
CMP A B ; A und B vergleichen,<br />
JBE ende ; falls A kleiner ist ans Ende springe<br />
MOV $1 A ; A in $1 speichern<br />
SUB $1 B ; B von $1 abziehen<br />
CMP $1 B ; Vergleichen von $1 und B<br />
JAE b_kleiner ; Wenn B kleiner ist, kann der Schritt übersprungen werden<br />
MOV B $1 ; Falls nicht, speichere den kleineren Wert ($1) in B *<br />
LBL b_kleiner<br />
MOV $0 A ; Dann A und B in in $0 und $1 speichern<br />
MOV $1 B<br />
LBL iteration<br />
DEC A ; In jedem Durchgang die Werte in A und B dekrementieren<br />
DEC B<br />
MUL $0 A ; und mit $0 und $1 multiplizieren<br />
MUL $1 B<br />
CMP B 1 ; wenn B == 1 ist, ist das Spiel (fast) zu Ende<br />
JA iteration<br />
DIV $0 $1 ; Die Werte werden noch dividiert und anschließend steht in $0 das Ergebnis<br />
MOV $1 0 ; $1 wird noch aufgeräumt<br />
LBL ende</p>
<p>*Grund: (n über k) ist identisch zu (n über n-k) und hier fällt die Wahl auf den kürzeren Weg</p>
<p>Lustiges Spielzeug, der virtuelle Prozessor <img src='http://sascha-kersken.de/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Schönen Gruß und danke für die nette Idee,<br />
Flo</p>
]]></content:encoded>
	</item>
	<item>
		<title>Kommentar zu Kleiner Wettbewerb zum virtuellen Prozessor von Steffen</title>
		<link>http://sascha-kersken.de/2012/01/24/kleiner-wettbewerb-zum-virtuellen-prozessor/#comment-32704</link>
		<author>Steffen</author>
		<pubDate>Tue, 24 Jan 2012 18:48:58 +0000</pubDate>
		<guid>http://sascha-kersken.de/2012/01/24/kleiner-wettbewerb-zum-virtuellen-prozessor/#comment-32704</guid>
		<description>Hi, super Aufgabe ;-) 
Mir ist nur kein größeres Programm eingefallen :-(
Reicht diese Fakultätsfunktion bereits? :

MOV A 5  ; Falultät von 5 (hier austauschen)
MOV B 1  ; B initialisieren mit 1
LBL fak  ; Fakultäts Sprungmarke
CMP A 1  : Schauen ob er schon fertig ist mit der Berechnung
JA runfak; Wenn nicht berechne weiter
HLT      ; Programm beenden (Ergebnis liegt in B)
LBL runfak; Berechnung
MUL B A  ; Multiplikation von A und B
DEC A    ; A --
JMP fak  ; Fuehre die rekursion weiter

hoffentlich klappts ! Ich wäre am Apache Buch sehr interessiert :-)

Danke und Gruß
Steffen</description>
		<content:encoded><![CDATA[<p>Hi, super Aufgabe <img src='http://sascha-kersken.de/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /><br />
Mir ist nur kein größeres Programm eingefallen <img src='http://sascha-kersken.de/wp-includes/images/smilies/icon_sad.gif' alt=':-(' class='wp-smiley' /><br />
Reicht diese Fakultätsfunktion bereits? :</p>
<p>MOV A 5  ; Falultät von 5 (hier austauschen)<br />
MOV B 1  ; B initialisieren mit 1<br />
LBL fak  ; Fakultäts Sprungmarke<br />
CMP A 1  : Schauen ob er schon fertig ist mit der Berechnung<br />
JA runfak; Wenn nicht berechne weiter<br />
HLT      ; Programm beenden (Ergebnis liegt in B)<br />
LBL runfak; Berechnung<br />
MUL B A  ; Multiplikation von A und B<br />
DEC A    ; A &#8211;<br />
JMP fak  ; Fuehre die rekursion weiter</p>
<p>hoffentlich klappts ! Ich wäre am Apache Buch sehr interessiert <img src='http://sascha-kersken.de/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>Danke und Gruß<br />
Steffen</p>
]]></content:encoded>
	</item>
	<item>
		<title>Kommentar zu Kleiner Wettbewerb zum virtuellen Prozessor von Sascha Kersken</title>
		<link>http://sascha-kersken.de/2012/01/24/kleiner-wettbewerb-zum-virtuellen-prozessor/#comment-32687</link>
		<author>Sascha Kersken</author>
		<pubDate>Tue, 24 Jan 2012 13:01:21 +0000</pubDate>
		<guid>http://sascha-kersken.de/2012/01/24/kleiner-wettbewerb-zum-virtuellen-prozessor/#comment-32687</guid>
		<description>Bisher leider nur über Code; eine GUI-Editiermöglichkeit für Register, Speicher und Stack ist fürs nächste Update eingeplant (zurzeit bei mir lokal im Test; ich hoffe, dass es in den nächsten Tagen live geht).</description>
		<content:encoded><![CDATA[<p>Bisher leider nur über Code; eine GUI-Editiermöglichkeit für Register, Speicher und Stack ist fürs nächste Update eingeplant (zurzeit bei mir lokal im Test; ich hoffe, dass es in den nächsten Tagen live geht).</p>
]]></content:encoded>
	</item>
	<item>
		<title>Kommentar zu Kleiner Wettbewerb zum virtuellen Prozessor von Ramon Kukla</title>
		<link>http://sascha-kersken.de/2012/01/24/kleiner-wettbewerb-zum-virtuellen-prozessor/#comment-32686</link>
		<author>Ramon Kukla</author>
		<pubDate>Tue, 24 Jan 2012 12:58:13 +0000</pubDate>
		<guid>http://sascha-kersken.de/2012/01/24/kleiner-wettbewerb-zum-virtuellen-prozessor/#comment-32686</guid>
		<description>Also... Koennen die Register einfach ueber die GUI vor Programablauf gesetzt werden, oder soll das nur ueber den Code geschehen?</description>
		<content:encoded><![CDATA[<p>Also&#8230; Koennen die Register einfach ueber die GUI vor Programablauf gesetzt werden, oder soll das nur ueber den Code geschehen?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Kommentar zu Kleiner Wettbewerb zum virtuellen Prozessor von Sascha Kersken</title>
		<link>http://sascha-kersken.de/2012/01/24/kleiner-wettbewerb-zum-virtuellen-prozessor/#comment-32684</link>
		<author>Sascha Kersken</author>
		<pubDate>Tue, 24 Jan 2012 12:23:18 +0000</pubDate>
		<guid>http://sascha-kersken.de/2012/01/24/kleiner-wettbewerb-zum-virtuellen-prozessor/#comment-32684</guid>
		<description>Oha, vielen Dank! Der Link bezog sich noch auf die Vorauflage, die inzwischen gegen die aktuelle ausgetauscht wurde. Dabei wurde ein neues URL-Schema eingeführt. Auch dieser Link ist jetzt gefixt.</description>
		<content:encoded><![CDATA[<p>Oha, vielen Dank! Der Link bezog sich noch auf die Vorauflage, die inzwischen gegen die aktuelle ausgetauscht wurde. Dabei wurde ein neues URL-Schema eingeführt. Auch dieser Link ist jetzt gefixt.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

