作者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