avr-libc  2.0.0
Standard C library for AVR-GCC

AVR Libc Home Page

AVRs

AVR Libc Development Pages

Main Page

User Manual

Library Reference

FAQ

Example Projects

マクロ
<util/parity.h>: パリティビット生成

マクロ

#define parity_even_bit(val)
 

説明詳細

#include <util/parity.h>

このヘッダファイルは、1バイトのパリティービットを計算するために最適化されたアセンブラコードを含みます。

マクロ定義説明

#define parity_even_bit (   val)
値:
(__extension__({ \
unsigned char __t; \
__asm__ ( \
"mov __tmp_reg__,%0" "\n\t" \
"swap %0" "\n\t" \
"eor %0,__tmp_reg__" "\n\t" \
"mov __tmp_reg__,%0" "\n\t" \
"lsr %0" "\n\t" \
"lsr %0" "\n\t" \
"eor %0,__tmp_reg__" \
: "=r" (__t) \
: "0" ((unsigned char)(val)) \
: "r0" \
); \
(((__t + 1) >> 1) & 1); \
}))
返値
val に奇数個のビットがセットされているなら、1です。