ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Воскресенье
24 ноября
27988
MaxG (05.05.2005 10:14, просмотров: 2967)
Что это: ошибка компилятора или мое непонимание... Хочу поменять местами биты, и вот что выходит.
BYTE bdata bVar; // глобальная переменная для побитового доступа
sbit bVar7	= bVar^7;
sbit bVar6	= bVar^6;
sbit bVar5	= bVar^5;
sbit bVar4	= bVar^4;
sbit bVar3	= bVar^3;
sbit bVar2	= bVar^2;
sbit bVar1	= bVar^1;
sbit bVar0	= bVar^0;
// далее в подпрограмме
// ...
bVar = OUT4BUF[1] << 1;
bVar0 = bVar1; bVar1 = bVar3; bVar3 = bVar0;
KY = bVar;
Результат компиляции в C51 V7.50
;ОК
MOV  	DPTR,#OUT4BUF+01H
MOVX 	A,@DPTR
ADD  	A,ACC
MOV  	bVar,A
;ОК
MOV  	C,bVar1
MOV  	bVar0,C
MOV  	C,bVar3
MOV  	bVar1,C
MOV  	C,bVar0
MOV  	bVar3,C
;далее не понимаю
MOV  	DPTR,#KY
MOVX 	@DPTR,A