Forum: Mikrocontroller und Digitale Elektronik Einfaches Rechnen in Assembler


von Peter93 (Gast)


Lesenswert?

Hallo, ich bin gerade dabei Assembler zu lernen.

Als Aufgabe habe ich folgende Formel, die ich in Code schreiben soll :
(nur Befehlsfolge)

Z= (X*3+Y) / 20

Meine Idee ist:

x db 0Ah
y db 05h
z db ?
r db ?

mov bl,x   / x nach bl laden
mov al,3   / 3 in al laden
mul bl     / x mit 3 multiplizieren
add ax,y   / ergebnis wird in ax gespeichert (?), 3 addieren
mov bx,14h / 20 in bx laden
div bx     / ax durch bx dividieren
mov z,al   / al=Quiotient
mov r,ah   / ah=Rest

habt ihr Tipps bzw Verbesserungsvorschläge?

Vielen Dank im Vorraus

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Peter93 schrieb:
> Hallo, ich bin gerade dabei Assembler zu lernen.
Welchen Assembler? So wie es aussieht ist das ein x86 Prozessor.

> habt ihr Tipps bzw Verbesserungsvorschläge?
Die unnötigen Kommentare weglassen. Denn da steht nicht mehr Information 
als in den Mnemonics davor...

von Wolfgang E. (Firma: janeeisklar) (whattheheck)


Lesenswert?

Peter93 schrieb:
> habt ihr Tipps bzw Verbesserungsvorschläge?

Jep! Nimm eine Hochsprache ;-)

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Lothar M. schrieb:
> Die unnötigen Kommentare weglassen.

Vor allem, wenn sie noch dazu falsch sind:

Peter93 schrieb:
> y db 05h

> add ax,y   / ergebnis wird in ax gespeichert (?), 3 addieren

von Peter D. (peda)


Lesenswert?

Peter93 schrieb:
> mov bx,14h / 20 in bx laden

Warum schreibste dann nicht gleich:
mov bx, 20

von Peter R. (pnu)


Lesenswert?

zuerst dreimal X addieren, dann Y addieren. Dann das Ergebnis durch 20 
dividieren. Wenn der von Dir gemeinte Assembler die Division im 
Befehlsvorrat hat.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.