www.mikrocontroller.net

Forum: PC-Programmierung Problem mit 8086 Assembler!


Autor: thestranger268 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo, habe ein (wahrscheinlich klitzekleines) Problemchen mit einem 
Assembler Programm. Ich möchte die Gleichung z=(x*3+y)/20 in Assembler 
berechnen lassen. Hat auch alles ganz gut geklappt, aber wenn ich Werte 
einsetze, die ein nicht ganzzahliges Z verursachen, bekomme ich im 
AH-Register keinen Rest angezeigt... Weiß einer Rat?

Mein Code  lautet (für z=(x*3+y)/20):

.data
X db ...
Y db ...
Z db ?,?

.code
.startup
    mov AL,X
    mov AH,3
    mul AH
    mov BL,Y
    add AX,BX
    mov BX, 20
    div BX
    mov Z[0], AL
    mov Z[1], AH
end

Tja, falls dort Fehler auftreten, würde mich das brennend interessieren. 
Wie gesagt, das Programm läuft, sofern Z ganzzahlig wird, problemlos.

Danke im Voraus!

Autor: *.* (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Äh die div, add, mul sind nur für Ganzzahlen gedacht.

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Zudem:

>     mov BL,Y

8 Bits nach BL schreiben.

>     add AX,BX

Und 16 Bits aus BH:BL holen. BH??

Autor: Skua (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn du durch 16bit teilst ist der Rest in DX.
XOR  BH,BH ; vergessen ?
MOV  Word Ptr[Z],AX ; geht auch

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

'div' legt keinen Rest in AH ab. AX ist das (kleinste) Ergebnisregister.

MfG Spess

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Zwar etwas Offtopic,

aber für mich eine gute Hilfe gewesen:

http://www.drpaulcarter.com/pcasm/

download als PDF in deutsch:

http://www.drpaulcarter.com/pcasm/pcasm-book-german.zip

MfG

Autor: Asm-Guru (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, da sind eine Menge Fehler drin, aber den wichtigsten hat bis jetzt 
noch keiner gefunden. Wer sucht der findet..

>Hi
>'div' legt keinen Rest in AH ab. AX ist das (kleinste) Ergebnisregister.
>MfG Spess

Quatsch, - aber nah dran!

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Yep. Ähnlich wie oben, nur in grün. Verwendetes Register nicht vorher 
mit Wert bestückt. Nur diesmal etwas subtiler, weil man dazu ins 
Handbuch gucken muss wenn man den Befehl nicht so genau kennt.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.