Board logo

主題: [其他] [問題]組合語言程式一問 [打印本頁]

發表人: h80053    時間: 2009-1-5 10:39 PM     主題: [問題]組合語言程式一問

這是一個組合語言配合8051的0~60的秒數計數器。
這個程式我看不懂,所以想請板上的大大提供一下
註解讓我了解一下。 謝謝。       



                  ORG                                  0000H  
                MOV                R2,#0   
                MOV                R0,#01100000B  
                MOV                R1,#01000000B  
LOOP:                MOV                A,R0
                MOV                P0,A  
                ACALL                DELAY
                MOV                B,R1
                MOV                P0,B
                ACALL                DELAY
                INC                R2   
                CJNE                R2,#10,LOOP
                INC                R0
                CJNE                R0,#01101010B,LOOP
                MOV                R0,#01100000B
                INC                R1
                CJNE                R1,#01000110B,LOOP
                MOV                R1,#01000000B
                AJMP                LOOP
DELAY:                MOV                R5,#25
DL4:                MOV                R6,#10
DL5:                MOV                R7,#1
DL6:                DJNZ                R7,DL6
                        DJNZ                R6,DL5
                        DJNZ                R5,DL4
                        RET
                        END
發表人: leacks    時間: 2009-1-5 11:41 PM

為啥不用c寫??
另外一個手賤的地方是
#.....b
明明就能用10進制or16進制方便閱讀而不用,偏使用2進制= =

簡易說明
http://www.cs.pu.edu.tw/~hchuang/8051_971/CH04.ppt
接下來是
簡易指令集
http://www.twivs.tnc.edu.tw/teachHome/51/instr.htm
算是給你個方向

=========
大置幫你看了一下程式
真的蠻怪的
多了很多廢話

簡單的講
r0=個位
r1=十位
r0=10時進位
r1=6時歸0
發表人: h80053    時間: 2009-1-6 12:00 PM

這程式是我一個重修的同學請我看的。
只是我當時組合語言也忘了差不多了。
所以才會想上來問各位大大,我自己在
看這個程式的時候好像也是東西一直移
出來移出去這樣。
發表人: Pika123    時間: 2009-1-23 10:48 PM

ASM都這樣吧XD
大都是透過暫存器之間的轉移來完成運算~!




歡迎光臨 TWed2k (http://twed2k.org/) Powered by Discuz! 4.1.0