Bit operations

I need to shift data into serail input register bit-by-bit. It would be nice, if the compiler would support asm blocks in a C program.
1. Shifting a byte is done by rotatig accumulator left, whereby the msb is loaded into carry flag. The docs that are provided with C51 evalution demo don't inclute any descriptions of the supported language operations.
Will the operation ACC <<= 1 move the msb into CY?

2. After the ACC is shifted and CY flag is loaded with the bit that I need to submit to the input of the shift register via P0.3, I try to make use of C51 bit addressing.
The sbit declaration example I've copied from C51 User's Guide and inserted into my program, doesn't work. Dear Sir, have you checked the snippet of code below?

	int bdata ibase; /* Bit-addressable int */
	sbit mybit0 = ibase ^ 0; /* bit 0 of ibase */
My idea was to make P0.3 sbit alias and assert the CY shifted from ACC to it. But the compiler complains about synthax error near sbit.


May be there is a better technique in C world for such a useful operation as bit-by-bit shifting a byte to external pin?

More questions in this forum