Zum Inhalt springen

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

Seiteninhalte werden in anderen Sprachen nicht unterstützt.
Abschnitt hinzufügen
Aus Wikibooks

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)

Satzbau

[Bearbeiten]

<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