Сборка 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

* Процедуры деления и умножения делят и умножают соответственно.

Ответы на вопрос(2)

Ваш ответ на вопрос