Modulo unter Assembler

Issy

Mitglied
Hallo!

Ich muss unter Assembler den Restwert einer Division ausrechnen und dann einen Dezimalzahl draus machen.
Gibt es unter Assembler den Befehl "mod" für modulo?

Mfg Issy
 
-

Code:
MOV AX, 17
XOR DX, DX
MOV BX, 4
DIV BX
Das Ergebnis der Divison befindet sich jetzt in AX, wobei der Rest der Division in DX gespeichert wird.
 
Habe hier nochmal eine Frage:

Ich mach im Unterprogramm eine Eingabe. Dann will ich, dass diese Eingabe über den Stack an das Hauptprogramm übergeben wird.
Wie kann ich das machen?

Der letzte Wert auf dem Stack muss ja die Rückkehradresse sein!
Wie kann ich realisierten, dass nach dem Unterprogramm mein letzer Wert auf dem Satck dann der zu übergebende Parameter ist.

cu Issy
 
Hallo!

Du reservierst vor dem Aufrufen des Unterprogramms Platz auf dem Stack. (indem du z.B. irgendwelche werte dorthin schreibst und dadurch den stackpointer erhöhst)
Dann rufst du das Unterprogamm auf.

Im Unterprogramm kopierst du den Stackpointer in den Basepointer(MOV BP,SP). Dann rechnest du dir aus BP die Adresse aus, an der du vorhin Platz reserviert hat und schreibst dort dein Ergebnis rein.

Falls du einfach ein (z.B. 16-Bit) Wert zurückgeben möchtest kann du ihn auch in AX schreiben und im Hauptprogamm von dort auslesen.

Gruß Frank
 
Zurück