Składanie MASM do obsługi liczb całkowitych ujemnych
Polecono mi napisać program w zespole, który przeprowadzi następującą arytmetykę:
((A + B) / C) * ((D - A) + E)
Udało mi się to zrobić, gdy nie grają żadne wartości ujemne, ale załóżmy, że A = 5, B = 4, C = 3, D = 2 i E = 1. To daje nam ((5 + 4) / 3 ) * ((2 - 5) + 1) lub -6.
tu potrzebuję pomocy. Zrobiłem kilka badań i uznałem komplement 2 za rozwiązanie, ale nie jestem pewien, czy zaimplementuję go w moim kodzie.
Gdyby ktoś mógł mi pomóc, byłbym bardzo wdzięczny!
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
* Dziel i mnożyć procedury dzielą się i mnożą odpowiednio.