I am new to x86 assembly language, I have a signed integer saved in register eax, and I want to check if the number is negative or positive. To do that, i used bt operator to check the first bit.
here is what I did:
bt eax,0
jnc isNegative
bt carries the first bit to carry flag, and i used jnc to check if carry flag is 0 or 1. If it's 1, it should be a negative number, and does negative instructions... however, the output is unpredictable, sometimes I have a positive and it recognize it as a negative number. Am I doing something wrong?
Thanks
EDIT: I just realized it could have something to do with endianess. It is actually checking the last bit instead of the first bit. Let me try use bt, 7