I Cannot seem to tell the difference between the Carry Flag, Auxiliary Flag and Overflow Flag in Assembly. I'm currently studying it in school and the teacher didn't go into any details. Please help me to understand, I will be needing it for the exam. I will be really grateful!! From what I seem to know by now is that the Carry Flag is used when you try, let's say, 255+9 when you only have 8 bits for data, The Auxiliary Flag is the same, but only for the 4 last bits?? And The Overflow is used when you have 7 bits for the binary number and the 8(left-most ) is used for the sign???
Carry Flag is a flag set when:
a) two unsigned numbers were added and the result is larger than "capacity" of register where it is saved. Ex: we wanna add two 8 bit numbers and save result in 8 bit register. In your example: 255 + 9 = 264 which is more that 8 bit register can store. So the value "8" will be saved there (264 & 255 = 8) and CF flag will be set.
b) two unsigned numbers were subtracted and we subtracted the bigger one from the smaller one. Ex: 1-2 will give you 255 in result and CF flag will be set.
Auxiliary Flag is used as CF but when working with BCD. So AF will be set when we have overflow or underflow on in BCD calculations. For example: considering 8 bit ALU unit, Auxiliary flag is set when there is carry from 3rd bit to 4th bit i.e. carry from lower nibble to higher nibble. (Wiki link)
Overflow Flag is used as CF but when we work on signed numbers. Ex we wanna add two 8 bit signed numbers: 127 + 2. the result is 129 but it is too much for 8bit signed number, so OF will be set. Similar when the result is too small like -128 - 1 = -129 which is out of scope for 8 bit signed numbers.
You can read more about flags on wikipedia