楼主,可以支持
struct test
{
char a;
int b;
unsigned m:4;
unsigned n:4;
//int c;
};
struct test test1;
test1.a = 1;
test1.b = 2;
test1.m = 0xF;
test1.n = 0xC;
对应的OS为:
;**** test1[0]=1 ****
LDWR R252,0;
LDWR R254,1;
LDWR R0,255;
LDBR R9,1,1;
MOV R30,R2,2;
DEC R2,1,20;
MOVA 0X01;
;**** test1[4]=2 ****
LDWR R252,0;
LDWR R254,2;
LDWR R0,252;
LDBR R9,4,1;
MOV R30,R2,2;
DEC R2,1,20;
INC R2,1,4;
MOVA 0X01;
;**** t3:test1[8]|15 ****
LDWR R2,252;
MOV R30,R0,2;
DEC R0,1,20;
INC R0,1,8;
LDBR R9,4,1;
MOVA 0X01;
LDWR R248,0;
LDWR R250,15;
OR R252,R248,4;
MOV R252,R244,4;
;**** test1[8]=t3 ****
LDWR R0,244;
LDBR R9,4,1;
MOV R30,R2,2;
DEC R2,1,20;
INC R2,1,8;
MOVA 0X01;
;**** t6:test1[8]&-241 ****
LDWR R2,252;
MOV R30,R0,2;
DEC R0,1,20;
INC R0,1,8;
LDBR R9,4,1;
MOVA 0X01;
LDWR R248,65535;
LDWR R250,65295;
AND R252,R248,4;
MOV R252,R244,4;
;**** t7:t6|192 ****
LDWR R252,0;
LDWR R254,192;
OR R244,R252,4;
MOV R244,R248,4;
;**** test1[8]=t7 ****
LDWR R0,248;
LDBR R9,4,1;
MOV R30,R2,2;
DEC R2,1,20;
INC R2,1,8;
MOVA 0X01;
|