作者iamlouis (2块钱立顿红茶包)
看板ASM
标题Re: [问题] 请问一下这五个回圈如何化简?
时间Wed Jun 30 23:55:11 2010
※ 引述《han999 (999就是久久久!)》之铭言:
: 我写一个土法炼钢的跑马灯程式如下:
: //○不亮
: //●亮
: /* 16进制 8421 8421
: 0x81=左一右一 ●○○○ ○○○●
: 0x42=左二右二 ○●○○ ○○●○
: 0x24=左三右三 ○○●○ ○●○○
: 0x18=左四右四 ○○○● ●○○○
: 0x24=左三右三 ○○●○ ○●○○
: 0x42=左二右二 ○●○○ ○○●○
: 0x81=左一右一 ●○○○ ○○○●
: */
左半部 右半部
也可以把左半部的 bit 跟右半部的 bit 分开看,
左边每次往右一个 bit, 右边每次往左一个 bit.
int left = 0x80;
int right = 0x01;
while (1) {
P1OUT = left | right;
left = (left >> 1) | ((left & 1) << 7); // left rotate
right = (right << 1) | (right >> 7); // right rotate
if (left == 0x08) continue; // skip the duplicate case
delay();
}
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 221.169.204.127
※ 编辑: iamlouis 来自: 221.169.204.127 (06/30 23:58)
1F:→ syura945:这种简单的东西建table就好了 07/12 03:52
2F:推 WolfLord:楼上这种说法并不恰当,如果你的PRG MEMORY只有128个指令 07/12 13:44
3F:→ WolfLord:容量时你怎麽办? 这样岂不是何不食肉麋? 07/12 13:44