Morgen.
Ich habe folgenden
ASM-Code:
Delphi-Quellcode:
function DivMod(Dividend, Divisor: Cardinal): TDivModResult;
asm
div edx
mov [ecx], eax
mov [ecx+$04], edx
end;
Das gibt einen Integer-Overflow. Und nicht nur das. Immer wenn ich div ausführe und in edx was anderes drinsteht als 0 gibt es das.
Außerdem kann ich in dem Code kein anderes Register verwenden - in eax steht der erste Parameter, ebx darf ich seltsamerweise nciht überschreiben weil sonst alles abschmiert, in ecx steht die Adresse des results und edx geht wegen o.g. Gründen nicht.