Сборка MASM Работа с отрицательными целыми числами
Мне было поручено написать программу на ассемблере, которая будет выполнять следующую арифметику:
((A + B) / C) * ((D - A) + E)
Мне удалось это сделать, когда в игру не вошли отрицательные значения, но предположим, что A = 5, B = 4, C = 3, D = 2 и E = 1. Это дает нам ((5 + 4) / 3 ) * ((2 - 5) + 1) или -6.
это где мне нужна помощь Я провел некоторое исследование и обнаружил, что комплимент 2 является решением, но я не уверен, что смогу внедрить его в свой код.
Если бы кто-то мог помочь мне, я был бы очень благодарен!
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
* Процедуры деления и умножения делят и умножают соответственно.