This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

what's wrong ? why?

#include "reg51.h"
main()
{
bit k;
k = ACC^7; //this instruction is right .
ACC^7 = 1; // this instruction is wrong! why?
}


thank you !

Parents
  • So "k = ACC^7;" means
    take the ACC register, XOR it with 7, then truncate the 8 bit result to one bit and place into k".

    Actually, I don't think that's correct. In an assignment to a bit type the right hand side is treated as a boolean type, no truncation occurs. Assignment of any non-zero value to a bit variable results in the bit being equal to one.

    Stefan

Reply
  • So "k = ACC^7;" means
    take the ACC register, XOR it with 7, then truncate the 8 bit result to one bit and place into k".

    Actually, I don't think that's correct. In an assignment to a bit type the right hand side is treated as a boolean type, no truncation occurs. Assignment of any non-zero value to a bit variable results in the bit being equal to one.

    Stefan

Children