Assembly MASM Umgang mit negativen ganzen Zahlen
Ich wurde angewiesen, ein Programm in Assembly zu schreiben, das die folgende Arithmetik ausführt:
((A + B) / C) * ((D - A) + E)
Ich habe es geschafft, wenn keine negativen Werte zum Spielen kommen, aber angenommen, A = 5, B = 4, C = 3, D = 2 und E = 1. Dies ergibt ((5 + 4) / 3 ) * ((2 - 5) + 1) oder -6.
Hier brauche ich Hilfe. Ich habe einige Nachforschungen angestellt und festgestellt, dass das Kompliment von 2 eine Lösung darstellt, bin mir jedoch nicht sicher, ob ich es in meinen Code implementieren kann.
Wenn mir jemand helfen könnte, wäre ich sehr dankbar!
INCLUDE Irvine32.inc ; ((A + B) / C) * ((D - A) + E) .data valA dword 1 valB dword 2 valC dword 3 valD dword 4 valE dword 5 .code main PROC mov ecx, valA add ecx, valB mov edx, valC call Divide mov ecx, eax mov edx, valD sub edx, valA add edx, valE call Multiply exit main ENDP
* Divide- und Multiplikationsverfahren dividieren bzw. multiplizieren.