프로그램 짤때

union x
{
byte test1;
struct {                          /*  Bit  Access */
                             unsigned char TDRE:1;      /*    TDRE      */
                             unsigned char RDRF:1;      /*    RDRF      */
                             unsigned char ORER:1;      /*    ORER      */
                             unsigned char ERS :1;      /*    ERS       */
                             unsigned char PER :1;      /*    PER       */
                             unsigned char TEND:1;      /*    TEND      */
                             unsigned char MPB :1;      /*    MPB       */
                             unsigned char MPBT:1;      /*    MPBT      */
                             }      BIT;
}x

이렇게 해서 test1이라는 byte를 bit단위로 접근 하는것은 모든 cpu에서 가능한 것일까요?
버스가 8bit나 16bit단위 인데 어떻게 달랑 1bit만 바꾸는 것이 가능할까요?
이기능이 지원이 되기 위해서는 어떠한 구조가 어디에서 지원이 되어야 가능한것일까요?
arm에서 포트제어를 해당 되는 한bit의 포트핀만 건드릴려고 하는데 위와 같은 방식으로 직접 라인 한줄로
한 bit만 바꾸어서 포트 제어를 할수 있을까요??
궁금합니다.
아시는분 답변좀 부탁 드립니다.