0
Ich habe definiert num1
, num2
und remainder
Variablen wie DWORD. Ich bekomme 2 Nummern vom Benutzer, die num1
sind, und num2
. Ich versuche, num1
durch num2
zu teilen. Die Zahlen Ich verwende sind num1 = 37 und num2 = 5Rest von DIV ist nicht in EDX
sub edx,edx ; Zero edx
mov eax,num1
mov ebx,num2
div ebx
mov remainder,edx
mov edx, OFFSET remainder
call WriteInt
Aus irgendeinem Grund auf 7 druckt, die der Quotient ist, nicht der Rest. Was mache ich hier falsch?
Wenn das Irvine32 ist, dann erfordert 'WriteInt', dass der zu druckende Wert in _EAX_ liegt. _EAX_ wurde auf den Quotienten gesetzt, als Ihre DIV-Anweisung ausgeführt wurde. Entfernen Sie 'mov rest, edx' ' mov edx, OFFSET Rest' und geben Sie dann den Befehl 'mov eax, edx' ein. Das würde den Rest in _EAX_ verschieben und WriteInt sollte das ausdrucken. –
Deshalb verwenden wir Debugger, um Registerwerte zu betrachten. Sie hätten gesehen, dass 'edx' richtig war, und es war der Druckcode, der ein Problem hatte. –