Hi,
ich habe ein Problem mit idiv. Also folgendes Beispiel soll zeigen was ich meine:
In rdx:rax befindet sich die Zahl -19 (also in rdx Null und in rax FFFFFFFFFFFFFFEDh). In rcx befindet sich 3. Jetzt mache ich ein idiv rcx und erwarte das in rax -6 und in rdx -1 steht. Das tut es aber nicht. In rdx steht Null und in rax steht 555555555555554F. Das idiv hat also die Vorzeichen gar nicht berücksichtigt und FFFFFFFFFFFFFFEDh einfach durch 3 geteilt. Aber genau das soll doch nur div machen und nicht idiv, oder? Also idiv ist doch dazu da um vorzeichenbehaftete Zahlen richtig zu teilen. Also wieso macht es dann so ein Mist. Und dann habe ich noch eine Frage zu imul. Wozu gibt es imul. Also eine Multiplikation geht doch automatisch mit dem Vorzeichen richtig um, oder nicht?
xor rdx,rdx
mov rax,-19
mov rcx,3
idiv rcx
;jetzt ist in rax nicht -6 also FFFFFFFFFFFFFFFAh sondern 555555555555554Fh nur wieso?
vielen dank!!!
bitmaster