Diskussion:Assembler-Programmierung für x86-Prozessoren/ Sprünge und Schleifen

Wo sind den im Kapitel "Sprünge und Schleifen" die Schleifen?

Ganz einfach: Weiter ist der Autor noch nicht gekommen. Kannst du es vielleicht weiterschreiben? -- Klaus 22:33, 16. Mai 2006 (UTC)
Nicht mehr nötig. Hab das Kapitel jetzt eingefügt. -- Daniel B 20:23, 18. Jul 2006 (UTC)

<quote>Wenn der Schleifen um 2 oder 3 verringert werden die meisten Assemblerprogrammierer stattdessen auf den dec Befehl zurückgreifen, da dieser schneller ist als der sub Befehl.</quote> An dem Satz stimmt doch etwas nicht...

"IF-ELSE" oder "IF-THEN"

Bearbeiten

Das "IF-ELSE" Beispiel ist ein wenig verwirrend. In eine höhere Programmiersprache übersetzt wäre es ja nur ein einzelner IF-Block, der abhängig von der Bedingung entweder ausgeführt wird, oder nicht. Ein ELSE gibt es eigentlich nicht, denn die Anweisungen, die auf den IF-Block folgen (das Beenden), werden in beiden Fällen ausgeführt. Sollte es nicht eher "IF-THEN" heißen? -- 84.141.240.47 22:21, 9. Sep 2006 (CEST)

Fakultätsbeispiel

Bearbeiten

Um auf das richtige Ergebnis zu kommen, müßte es bei der Initialisierung aber "mov bx, 0" heißen und nicht "mov bx, 1" (vor "schleife"). Andernfalls erhält man (n+1)! (statt der gewünschten n!).

Leider hast du Unrecht, dass bx den wert 0 bekommen muss. Weil sonst eine Multiplikation mit 0 statt findet. Und das resultat den Wert 0 bekommt.
CX:7->6 : BX = 1
CX:6->5 : BX = 2
CX:5->4 : BX = 3
CX:4->3 : BX = 4
CX:3->2 : BX = 5
CX:2->1 : BX = 6
CX:1->0 : BX = 7
Abbruch
Damit wird die Fakultät von 7 Berechnet. -- ThePacker 16:03, 11. Jan. 2007 (CET)Beantworten

Wieso soll dann eine Multiplikation mit 0 stattfinden ? In der Schleife steht doch am Anfang "inc bx". Außerdem ist 9D80h=8!=40320, während für 7!=5040=13B0h herauskommt (habe ich übrigens ausprobiert !).

Okay, dann kann man alternativ die inc und mul zeile verttauschen oder bx auf null setzen. Ich hab nur flüchtig drüber geschaut. -- ThePacker 18:46, 11. Jan. 2007 (CET)Beantworten
Zurück zur Seite „Assembler-Programmierung für x86-Prozessoren/ Sprünge und Schleifen“.