Luigi A. schrieb:
Flo hat das Wesentliche ja bereits geschrieben.
Eine Alternative zu seinem (völlig korrekten und in jedem Fall zu
bevorzugendem) Vorschlag der sinnvollen Umstellung der Formel für
Formel-Umstellungs-Legastheniker mag vielleicht sein, sich zu Nutze zu
machen, dass der Assembler zur Entwurfszeit auch mit Gleitkommazahlen
rechnen kann.
Man muss ihn nur dazu zwingen, etwa so:
.equ speed2ant =(((30.0*runden)+Schritte)/100)*45
^^das ist der Haupt-Trick
Mit ziemlicher Wahrscheinlichkeit wird es dann aber ein Warnung setzen,
weil der Assembler erkennt, dass die so berechnete Gleitkommakonstante
sich nicht verlustfrei auf das Integer-Symbol speed2ant reduzieren läßt.
Um die Warnung zu unterdrücken, gibt es dann noch die nette
Entwurfszeitfunktion Int(), mit deren Verwendung der Programmierer dem
Assembler klar machen kann, dass er sich dieser Sachlage durchaus bewußt
ist. Zusammen sieht das dann so aus:
.equ speed2ant =Int((((30.0*runden)+Schritte)/100)*45)
Oder, oft (aber nicht immer) sinnvoller: mit einer tatsächlichen Rundung
der berechneten Konstanten:
.equ speed2ant =Int((((30.0*runden)+Schritte)/100)*45+0.5)