|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測(cè)控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動(dòng)編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計(jì) | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
請(qǐng)教一點(diǎn)代碼:起了什么作用 ? |
| 作者:Asnake 欄目:單片機(jī) |
movfp 0x85,WREG ; xorlw 0x88 btfsc ALUSTA,Z goto LABEL1 xorlw 0x06 btfsc ALUSTA,Z goto LABEL2 xorlw 0xca btfsc ALUSTA,Z goto LABEL3 xorlw 0x06 btfsc ALUSTA,Z goto LABEL4 并,能否寫成C,看得懂些! |
| 2樓: | >>參與討論 |
| 作者: 農(nóng)夫XP 于 2003/12/24 12:49:00 發(fā)布:
不就是根據(jù),寄存器的值,跳到對(duì)應(yīng)的地址里去.. |
|
| 3樓: | >>參與討論 |
| 作者: wwllzz 于 2003/12/24 13:02:00 發(fā)布:
好像是想做反向工作 C的SWITCH case break;編譯結(jié)果就是那樣的。 |
|
| 4樓: | >>參與討論 |
| 作者: Asnake 于 2003/12/24 13:06:00 發(fā)布:
RE 回農(nóng)夫XP: 這個(gè)偶知道,只是他為什么要用到XORLW? 回wwllzz:不過(guò),我看到的是XORLW的指令是把W和立即數(shù)XOR后放回W,那么如何確定是什么數(shù)的時(shí)候,執(zhí)行去某個(gè)LABEL呢? |
|
| 5樓: | >>參與討論 |
| 作者: felixjoe 于 2003/12/31 15:52:00 發(fā)布:
我想可能是這樣的 他的意思是應(yīng)該判斷(85)的值 是不是等于88H,等于跳.... 否 =06H? Y GOTO LABEL2 N =CAH? Y GOTO ..... N ..... 我想是這個(gè)意思,比用減法要少一條指令 不知道對(duì)不對(duì) |
|
| 6樓: | >>參與討論 |
| 作者: americ 于 2004/1/1 21:55:00 發(fā)布:
樓主還沒有明白 xor與z的關(guān)系 上面的話,應(yīng)該是“本貼的關(guān)鍵所在”! |
|
| 7樓: | >>參與討論 |
| 作者: americ 于 2004/1/1 22:01:00 發(fā)布:
糟了,沒看清楚,補(bǔ)充:關(guān)鍵所在。 上面的匯編 包含比較豐富 邏輯關(guān)系,并不是“簡(jiǎn)單的case語(yǔ)句”。 要知道,匯編中的那個(gè)原始值“經(jīng)過(guò)了幾次xor”!!! 所以..... 例如,要想 goto LABEL3 必須xor 0x88 xor 6 xor 0xca 關(guān)系復(fù)雜,不過(guò),也分析清楚了。嘻嘻 |
|
| 8樓: | >>參與討論 |
| 作者: americ 于 2004/1/1 22:04:00 發(fā)布:
舉個(gè)例子:0x82原始值,會(huì)goto LABEL2 |
|
| 9樓: | >>參與討論 |
| 作者: 張明峰 于 2004/1/1 22:19:00 發(fā)布:
就是SWITCH-case語(yǔ)句的匯編版 頂樓的伙計(jì)搞的肯定是反匯編,故很難明白,但寫成下面的例子就容易了。 ;利用異或運(yùn)算實(shí)現(xiàn)類似于C語(yǔ)言的SWITCH-case語(yǔ)句 movf SWITCHVal, w ;取分支判斷值. SWITCH (W) xorlw VAL1 ;W=W ^ VAL1 btfsc STATUS, Z ;判0標(biāo)志 goto Case_VAL1 ;case VAL1: (原始W=VAL1) xorlw VAL1^VAL2 ;W=(W^VAL1)^(VAL1^VAL2) = W^VAL2 btfsc STATUS, Z ;判0標(biāo)志 goto Case_VAL2 ;case VAL2: (原始W=VAL2) xorlw VAL2^VAL3 ;W=(W^VAL2)^(VAL2^VAL3) = W^VAL3 btfsc STATUS, Z ;判0標(biāo)志 goto Case_VAL1 ;case VAL3: (原始W=VAL3) ;... ;其它c(diǎn)ase情況判別 |
|
|
|
| 免費(fèi)注冊(cè)為維庫(kù)電子開發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號(hào) |