0976h --> 0000 0976h 7986h --> 0000 7986h The first subtraction produces 8ff0h as you have already observed The second operation is a subtract with borrow so 0 - 0 - borrow = ffffh and those two parts produce the 32-bit result
But then the next question would be: Isn't a "better" answer ffffffff8ff0h, so what register can I find the next 16 bits in? And the 16 beyond that?so, can't i get the higher bits in some other register,as in case of multiplication.?
It would really help if you showed your steps, because what little information you do give makes no sense.Whats embarrassing to me is I converted your hex values cssc to decimal and subtracted them in decimal getting (28688) in base 10 then converted back to base 16 and found that I got a much different value than you did, your "ffff8ff0".
It would really help if you showed your steps, because what little information you do give makes no sense.
7986h is a large positive number relative to 0976h, which is a smaller positive number. Subtracting 7986h from 0976h therefore results in a negative number.
7986h = 31110
0976h = 2422
2422 - 31110 = -28688
-28688 = 8ff0h
If you got 7010h, it's because you forgot the most significant bit of all -- the sign bit!
|Thread starter||Similar threads||Forum||Replies||Date|
|H||signed binary numbers subtraction using 1's complement||Homework Help||2|
|Audio Processing in Scilab: How to Implement Spectrum Subtraction||AAC Contributors Forum||0|
|D||4-bit ALU subtraction||Homework Help||11|
|N||Arduino Thermistor Program: subtraction gives wrong number.||Microcontrollers||10|
|Z||addition/subtraction negative number||Homework Help||16|
by Steve Arar