作者poboroy (阿揚揚)
看板ASM
標題[問題] 8051組合語言有些小問題
時間Mon Jun 2 15:20:47 2014
我想讓他從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發文,如果表達不是很清楚請見諒
以上程式是在課本內看到的
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.169.38.59
※ 文章網址: http://webptt.com/m.aspx?n=bbs/ASM/M.1401693649.A.672.html
1F:推 WolfLord:高位元是 0F0H 06/03 00:10
2F:→ poboroy:程式的問題我懂了,另外想問一下 06/03 00:44
3F:→ poboroy:他最後傳給七段的數字是反的,這是為什麼? 06/03 00:44
4F:→ poboroy:因為是使用7448靜態控制嗎?還是8051本身要傳給七段就是要 06/03 00:45
5F:→ poboroy:相反的數字? 06/03 00:45
6F:推 WolfLord:共陽 06/03 14:08