仮に真のとき「1」であることが保証されるとして、

if(!(data & 0x000000FF)) mask |= 0x000000FF;

であれば直接イミディエイト値とのORですむものを、

m[(data & 0x000000FF)];

ってすると、わざわざ「&の式を評価」したあと(ifのときの手間と同じ)
「1」をレジスタに代入してからメモリ参照に行くんだよね。