# Modulo unter Assembler



## Issy (9. Juni 2004)

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


----------



## Patrick Kamin (9. Juni 2004)

*-*


```
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.


----------



## Issy (9. Juni 2004)

Vielen Dank!
Warum bin ich nicht drauf gekommen?


----------



## Issy (11. Juni 2004)

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


----------



## Frankdfe (11. Juni 2004)

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


----------



## Issy (11. Juni 2004)

Vielen Dank! Hab es auch eben gerade herausgefunden.  

cu Issy


----------

