Was du benötigst ist "add with carry" (Addieren mit Übertrag) In
asm ist das "adc"
du addierst erst die unteren 32bit und dann mit adc die oberen 32bit.
Edit:
Ein bisschen kürzen kannst du deinen Code schon noch, aber das ist dir sicherlich klar.
Was mir noch auffällt ist folgendes:
- Du rettest eax,ecx und edx und stellst die Register am Ende wieder her. Das ist nicht notwendig. Diese drei Register dürfen in Funktionen beliebig verändert werden. Ausserdem, und das ist Punkt 2:
- In EAX landet das Ergebnis (also Result)
- Step wird in EAX übergeben. Du kannst es zwar so lassen, dann wird der Compiler für dich noch ein wenig Arbeit verrichten (EAX=Step auf den Stack legen, dass du es von da immer ansprechen kannst)
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.