Here is your problem: When you rotate the Temp reg, you store the result in W, this is wrong. You should store it back into the Temp register. If you store it in W the value in Temp does not change, that's why you are reading the same bit. Quentin