so, can't i get the higher bits in some other register,as in case of multiplication.?The 8086 registers are 16 bits long. That's all you get.
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!
by Jake Hertz
by Aaron Carman
by Jake Hertz
by Jake Hertz