目前有一个应用,使用的是STM8L系列CPU,编译器是COSMIC ,想用一个整型数(16位)寻址一段地址(固定地址)空间的位地址。如stemp[0].bit0地址为0,stemp[0].bit7的位地址为7,stemp[1].bit1的位地址为9。想实现置位,复位等功能 ,由于具体为固定地址,代码在编译时即可确定,为减少代码长度及运行时间,要求出来的汇编码是使用位寻址指令。
如定义一个 char stemp[200] @0x10 ;
SetB(9) 目标码 bset _stemp+1,#1SetB(256) 目标码 bset _stemp+32,#0求三个宏定义的实现#define SETB(bitaddr) // 将某一位置位#define CLRB(bitaddr) // 将某一位复位#define GETB(bitaddr) // 取得某一位状态 1或者0
此帖出自
小平头技术问答
一周热门 更多>