[問題] 8051組合語言有些小問題

作者: poboroy (阿揚揚)   2014-06-02 15:20:47
我想讓他從99一直減到1
我的程式部分:
DOWN1:
DEC SEC_ONE
MOV A,SEC_ONE
ANL A,#0FH (保留最高四位元存於A暫存器)
CJNE A,#0FH,DOWN_ONE (判斷A是否為0F(00001111)←這行不懂用意)
MOV A,SEC_ONE (將SEC_ONE內容存於A暫存器)
ANL A,#0FH (保留最高四位元存於A暫存器)
ADD A,#09H
MOV SEC_ONE,A
SWAP A (將A暫存器較高四位元與較低四位元交換(十位數
換個位數))
DOWN_ONE:
MOV A,SEC_ONE
SWAP A
不太懂的地方是否為什麼要判斷A是否為0F?
還有就是他較高四位元與較低四位元交換是怎麼執行的?
例如我現在是50,我十位數扣1變成40,然後個位數+9變成49
那他高位元跟低位元是怎麼交換的,不是很懂交換是換哪邊?
第一次再PTT發文,如果表達不是很清楚請見諒
以上程式是在課本內看到的
作者: WolfLord (呆呆小狼￾ ￾ N￾ ￾ )   2014-06-03 00:10:00
高位元是 0F0H
作者: poboroy (阿揚揚)   2014-06-03 00:44:00
程式的問題我懂了,另外想問一下他最後傳給七段的數字是反的,這是為什麼?因為是使用7448靜態控制嗎?還是8051本身要傳給七段就是要相反的數字?
作者: WolfLord (呆呆小狼￾ ￾ N￾ ￾ )   2014-06-03 14:08:00
共陽

Links booklink

Contact Us: admin [ a t ] ucptt.com