MOV AX, 0 //Null in das Register AX schreiben CMP CX,0 //Vergleiche CX mit 0 nochmal: JZ ende //Springe bei NULL zur Label Marke "ende" ADD AX,CX //Übersprungen wenn vergleich NULL ergibt, ansonsten CX zu AX hinzufügen DEC CX //Decrement, verringere CX um einen! JMP noch mal //Springt zu einem nicht vorhandenen Label (Da Leerzeichen enthalten) ende: NOP //NOP <-> Nichts halt!
Es stimmt doch das man immer den rechten Wert in das linke Register schiebt oder ?
Ich würde sagen das Programm kontrolliert ob CX 0 ist, wenn dem nicht so ist Addiert es den Wert von CX in AX und zieht einen von CX ab! Der JMP Befehl ist durch das Leerzeichen ungültig oder ?
Ja. Bei Befehlen mit 2 Parametern ist der erste in der Regel (kenne keine Ausnahme) das Ziel und der Zweite die Quelle. Dies kopiert also den Wert von CX in das Register AX.
mov ax,cx
Der Code selbst sieht wie eine Multiplikation AX = AX*CX aus - deine Beschreibung stimmt also.
Der JMP Befehl sollte - wie du geschrieben hast - nicht funktionieren, da es
Stimmt, den Multiplikatoreffekt habe ich zwar durch die Addition gegeben (Insofern das Label nochmal stimmen würde ;))- aber gar nicht beachtet in meiner Betrachtung! :)
Jep, ist mir eben auch aufgefallen & da AX immer auf NULL gesetzt wird findet hier nur die Addition statt! ;) Hatte das gerade mal auf dem Papier mit Werten durchlaufen lassen!
Da Du hier nicht angibst um was für einen Assembler und um was für eine Zielarchitektur es sich handelt ist manches schwierig zu beantworten.
Das immer auf den linke Operanden geschoben wird muss nicht stimmen. Wenn Du einen Assembler mit gas-Syntax benutzt, schreibt man beispielsweise auf den linken Operanden!
movb $0x05, %al
Mir ist kein Assembler bekannt, der ein Leerzeichen in einem Label erlauben würde. Deine Beschreibung ist korrekt, wie auch mein Vorgänger schon geschrieben hat. Aber eine Multiplikation findet hier natürlich nicht statt!
Tja, dies habe ich auch alles nicht gegeben! Denke eine i386 System - aber es steht nichts dabei ;) Ist ne Probeklausur muß nochmal die Beispiele ansehen!
Stimmt, den Multiplikatoreffekt habe ich zwar durch die Addition gegeben (Insofern das Label nochmal stimmen würde ;))- aber gar nicht beachtet in meiner Betrachtung! :)