STC32G系列32位8051, 20H ~ 7FH 都可以位寻址,96个字节可以位寻址
96 * 8 = 768个 BIT RAM 可以位寻址
32位单片机好像是每个地址指向的是32位的寄存器,或者都是以32位占用一个指针地址。但是STC32好像还是8位(或者16位没有去细了解)占用一个指针地址。所以还不算是32位,只是多了个32位加减指令,方便提高计算效率。
以上是个人的目前看法,不知是不是这样的。
STC32对 RAM 的操作是 32位操作:
===即使指令是要求只需要读8位,他也是读32位,扔掉多余的24位
===即使指令是要求只需要读8位,他也是读32位,扔掉多余的16位
神农鼎 发表于 2023-10-13 09:08
STC32对 RAM 的操作是 32位操作:
===即使指令是要求只需要读8位,他也是读32位,扔掉多余的24位
===即使指 ...
STC32G12K128 12K是指12K的8位寄存器还是12K的32位寄存器? 12k 字节的 SRAM, 不是寄存器 #define u8 unsigned char
u8 BitArray; //位数组 32*8=256位 相当于 bit BitArray;
bit ReadBitArray(u8 pc) { //读位数组 参数1:位地址 返回位值
return 1 << (pc & 7) & BitArray;
}
void WriteBitArray(u8 pc,bit dat) { //写位数组 参数1:位地址 参数2:位值
u8 a = pc >> 3;
u8 b = 1 << (pc & 7);
if (dat) {
BitArray |= b;
} else {
BitArray &= ~b;
}
} 123 发表于 2023-10-23 20:07
我现在另定义了用200个CHAR,定义了1600个位,就是使用起来感觉有点别扭。而且有花费时间,每读取一个位都要进行移位读取
页:
1
[2]