+2  A: 

i think you did subtraction incorrectly. My result is:

8FFE---------->    1000    1111    1111    1110
0FFF---------->    0000    1111    1111    1111
                   ----------------------------------
7FFF---------->    0111    1111    1111    1111     

what happened is that operation borrowed from sign bit only. This means OF flag should be set. Read here http://stackoverflow.com/questions/791991/about-assembly-cfcarry-and-ofoverflow-flag, http://en.wikipedia.org/wiki/Carry_flag, http://en.wikipedia.org/wiki/Overflow_flag. It means that is it was signed operation it is incorrect. if it was unsigned then fine.

Andrey
but sir computer represent all the numbers in 2's complement form and the subtraction is implemented by addition so why you subtracted instead of adding them justify your answer
Zia ur Rahman
@Zia ur Rahman: you are right. but remember that `a - b = a + (-b)` regardless of encoding. if you calculate -b as 2's comp : F001 and add you will get same result as me
Andrey
thank you sir very useful comment i have got the idea now.
Zia ur Rahman