Verständnisproblem Hardware
-
Und der erste Assembler wurde in "0en und 1en programmiert"...
-
Und der erste Assembler wurde in "0en und 1en programmiert"...
Oder in Hardware gegossen.
-
Schleifen gibts in Maschinensprache also gar nicht. Wenn ich 1000 mal eine Schleife durchlaufe, dann schreibt der Assembler 1000 mal das gleiche hin. Wird Zeit dass man das irgendwie in Hardware hinbekommt.
-
-
blurry333 schrieb:
Wenn ich 1000 mal eine Schleife durchlaufe, dann schreibt der Assembler 1000 mal das gleiche hin.
Genau, der Assembler erweitert das Programm, während es läuft. Deshalb brauchen Rechner heutzutage auch viel mehr Speicher als früher.
Wird Zeit dass man das irgendwie in Hardware hinbekommt.
Schaffst du schon.
-
blurry333 schrieb:
Wenn ich 1000 mal eine Schleife durchlaufe, dann schreibt der Assembler 1000 mal das gleiche hin.
du kannst langlaufen wolang willst du, dadurch schreibt der assamblaer garnix.
scnr
wenn du aber fragst wie das mit schleifen geht, da wird nix 1000 mal geschrieben, dafür gibt den jump befehl, da wird 1000 mal gesprungen!
-
wir reden ja hier von Maschinensprache. Und da gibt es keine Schleifen !!
-
blurry333 schrieb:
früher wurde ja noch mit 0ern und 1ern programmiert. Heute verwendet man z.B. Assembler.
Ich verwende hauptsächlich 1er und 2er.
-
blurry333 schrieb:
wir reden ja hier von Maschinensprache. Und da gibt es keine Schleifen !!
Mag sein, dass es in der Maschinensprache keine Schleifen gibt, aber in 0en und 1en gibts die natürlich. Aus C++
while (true) {}
wird in 0enund1en-ig bspw.:
011101110110100001101001011011000110010100100000001010000111010001110010011101010110010100101001001000000111101101111101
.
Ist aber nicht zu verwechseln mitwhile(true){ }
,das ist:
0111011101101000011010010110110001100101001010000111010001110010011101010110010100101001011110110010000001111101
Deshalb: Leerzeichen sind wichtig!
-
Hat blurry333 nicht hier neulich behauptet, dass er Informatik studiert und im Master Studiengang ist?
@ blurry333
Alles was du wissen willst, findest du auf der WP unter Opcode.
-
schlauer als blurry333 schrieb:
Hat blurry333 nicht hier neulich behauptet, dass er Informatik studiert und im Master Studiengang ist?
Im Prinzip schon, aber er ist noch im Bachelor und hat außerdem nichts über das Fach gesagt. Könnte auch Korbflechten sein.
-
Hm, bei der gegebenen Ahnungslosigkeit bezüglich HW Detailfragen würde ich jetzt auf Medieninformatik tippen, falls er irgendwo mal Informatik erwähnt haben sollte.
-
schlauer als blurry333 schrieb:
Hm, bei der gegebenen Ahnungslosigkeit bezüglich HW Detailfragen würde ich jetzt auf Medieninformatik tippen, falls er irgendwo mal Informatik erwähnt haben sollte.
Hat er denn Informatik erwähnt? Ich würde ja immer noch auf eine psychologische oder soziologische Studie über Verhalten in Internetforen tippen. Die Psychologen sagen einem bei Tests auch immer nur die halbe Wahrheit, um das Ergebnis nicht zu verfälschen. So könnte Blurry zwar einen Bachelor haben, aber in Wahrheit das Sozialverhalten* hier testen.
*: Welches anscheinend ungeheuer hilfsbereit ist. Mit den Mannstunden, die selbst nach mehreren Jahren noch für Blurrys Thread verschwendet werden, könnte man in der Sahelzone täglich zehn Buckelwale vor Brandrodung retten.
-
Naja, wenn man keine genaue Vorstellung von einem Instruktion Pointer und dessen Arbeitsweise hat, kann man schon auf solche Fragen kommen - oder wenn man keine Vorstellungen von Binärrechnerei (und erprobten Arbeitsschritten) hat. Genau deswegen gibt es im InformatikStudium vermutlich den Assembler/Hardware Teil. Und wenn man die vielen (absurden) Vorurteile über Assembler bedenkt und die komischen Sprüche von C-Programmieren, die kein Assembler können...
Einige codiererfahrende Leute haben gar keine (konkrete) Vorstellung davon, warum eine Schleife wie
for (i=0, i<=Obergrenze, i++)
problematisch ist (bzw, warum man die Schleife so nicht programmiert)
(ernsthaft, man mag es kaum glauben)Rein hardwaretechnisch gibt es schon Schleifenimplementierungen, in Form von Arbeitsweisen und Befehlen (geh ich nicht genauer drauf ein) aber man könnte eine Schleife, die nicht zu groß ist, auch locker im Editor simulieren (unroll loops).
(Man sollte ja nicht unbedingt so oft springen)Ich kannte mal eine 1-Bit Schleife, die ging so ab: Also ich hatte einen Wellensittich, der sprang, sobald abends das Licht im Zimmer ausging, auf seine Schaukel. (Das war nicht der einzige Welli den ich hatte, die anderen sind meist am Käfigrand auf ihren Schlafplatz gekrochen, oder setzten sich rechtzeitig drauf. Der Welli musste in der Regel ganz schön weit springen so im VollDunkeln, das war voll der Stunt. Ein einziges Mal ging es daneben in den ganzen Jahren, da hing der Vogel völlig verdattert an den seitlichen Käfigstäben.
-
problematisch ist (bzw, warum man die Schleife so nicht programmiert)
Das einzige Problem, das ich direkt sehe, ist, dass es einen Überlauf geben könnte wenn Obergrenze gleich der oberen Intervallgrenze des Wertebereichs entspricht (was bspw. in C++ zu UB führt).
Und da gibt es keine Schleifen !!
Nicht direkt. Aber würdest du den
JE
-Befehl nicht als Schleife einstufen?
-
Sone schrieb:
Das einzige Problem
Das einzige Problem, das ich da sehe ist, dass die Schleife syntaktisch falsch ist.
-
Sone schrieb:
Aber würdest du den
JE
-Befehl nicht als Schleife einstufen?Du etwa? Dann benutzt du wohl auch if-Schleifen...
-
otze schrieb:
Sone schrieb:
Das einzige Problem
Das einzige Problem, das ich da sehe ist, dass die Schleife syntaktisch falsch ist.
Das ist Pseudocode.
-
Bashar schrieb:
Sone schrieb:
Aber würdest du den
JE
-Befehl nicht als Schleife einstufen?Du etwa? Dann benutzt du wohl auch if-Schleifen...
Ich meinte im Assembler. Ich habe keine Ahnung von Assembler, aber nutzt man nicht bspw. den oben genannten Befehl um eine Zählschleife zu realisieren?
-
blurry333 schrieb:
Schleifen gibts in Maschinensprache also gar nicht. Wenn ich 1000 mal eine Schleife durchlaufe, dann schreibt der Assembler 1000 mal das gleiche hin. Wird Zeit dass man das irgendwie in Hardware hinbekommt.
Deshalb sind Spiele heute mehrere Gigabyte groß. Die Hauptschleife in so einem Spiel müsste ja eine Endlosschleife sein, dafür bräuchten wir unendlich viel Speicher. Geht ja nicht! Deshalb tricksen die Entwickler und machen eine Fast-unendlich-Schleife, also die wird echt oft ausgeführt. Dafür wird der Code auch millionen mal vom Assembler geklont und zack, schon haben wir 20-Gb große Spiele
Übrigens, falls ich rausfinde wer von euch als blurry rumtrollt, kriegt derjenige einen gewaltigen Arschtritt für 3 Jahre belastete Nerven.