標題: 單片機匯編程序解讀,一個下午沒整明白 [打印本頁]

作者: 弟弟的貓    時間: 2018-12-9 18:43
標題: 單片機匯編程序解讀,一個下午沒整明白
請大神幫忙解讀下這三段程序,一條條解讀,越詳細越好。
一群人學了下下午沒整明白。。。

QQ圖片20181209181237.jpg (36.05 KB, 下載次數: 59)

QQ圖片20181209181237.jpg

QQ圖片20181209182402.jpg (39.12 KB, 下載次數: 62)

QQ圖片20181209182402.jpg

QQ圖片20181209182347.jpg (43.09 KB, 下載次數: 56)

QQ圖片20181209182347.jpg

QQ圖片20181209182355.jpg (33.34 KB, 下載次數: 54)

QQ圖片20181209182355.jpg

作者: phang    時間: 2018-12-10 09:20
不找書,不學習,直接問人什么意思???除非你是老板了。
作者: Y_G_G    時間: 2018-12-10 11:49
一條條解讀,越詳細越好
這語氣,神了你,在這的人不是說是為了服務你而來的,大家都是本著相互學習的態(tài)度來幫忙別人,同時也是在提高自己.
你知道一條條的去注釋,這要多久嗎?你也知道自己搞了一個下午.
你隨便找一個STC的單片機的數據手冊,點到指令集,然后對著指令后面,一條一條抄下來就可以了
作者: diy1997    時間: 2018-12-10 13:03
我第一個學習的就是匯編,用了好久。

后來發(fā)現C的好處后棄之。

但現在如果不是非必要,不會用匯編的。


作者: hmz    時間: 2018-12-10 13:53
可以幫但沒必要
作者: diego2003    時間: 2018-12-10 14:10
匯編語言比較基礎,學好了  對C語言學習也是很有好處的
作者: 嘿嘿1614    時間: 2018-12-10 14:36
加油   先記代碼
作者: chengrui    時間: 2018-12-10 14:48
多看書啊,兄弟
作者: zhonghui88    時間: 2018-12-10 14:55
可以幫助!精神可嘉,都用c了,他還在弄匯編
作者: fantasywlh    時間: 2018-12-10 15:27
  不要這樣直接看吧,寫匯編最好找一個編譯軟件。 我最早做51就是用匯編的,用偉福什么的那個軟件,一步一步去跑代碼,看寄存器變化,就知道是什么意思了。學起來還是很快的。   
  如果是為了應付考試,那么還真別浪費這個時間了。
作者: sxhwdz    時間: 2018-12-10 15:57
學匯編不是為了用匯編編程。編程效率C遠大于匯編,但是掌握了匯編,可以更好地運用C,更便于調試。有C基礎的學習匯編時,可以看看每條C指令對應的匯編,對學習是有好處的
作者: angmall    時間: 2018-12-11 00:15
我給你來個試試

  1. ;流水燈程序
  2. org         0000h       ;設置起始地址
  3.                 ajmp main   ;無條件跳轉指令 跳到 main
  4. org         0100h       ;定位的偽指令 順序放到從0100H開始的程序單元
  5. main:         mov r4,#04h ;向R4寄存器中載入十六進制數04H
  6. loop:         mov a,#01h  ;向A寄存器中載入十六進制數01H
  7. loop1:         mov P1,a    ;取出的值輸出到P1端口
  8.                 acall delay ;調入延時程序
  9.                 rl a        ;  累加器A 循環(huán)左移
  10.                 djnz r4,loop1  ;檢測R4是否為零,每次減1不為零就跳 否則跳到loop1處繼續(xù)執(zhí)行
  11.                 mov r4,#04h ;賦初值
  12.                 ajmp loop   ;無條件跳轉指令 跳到loop
  13. delay:         mov r7,#64h ;   延時程序 ;向R7寄存器中載入十六進制數64H
  14. loop3:         mov r6,#0C8h ;向R6寄存器中載入十六進制數0C8H
  15. loop4:         nop         ;表示執(zhí)行一條沒有什么意義的空指令
  16.                 nop         ;表示執(zhí)行一條沒有什么意義的空指令
  17.                 nop         ;表示執(zhí)行一條沒有什么意義的空指令
  18.                 djnz r6,loop4  ;檢測R6是否為零,每次減1不為零就跳 否則跳到loop4處繼續(xù)執(zhí)行
  19.                 djnz r7, loop3  ;檢測R7是否為零,每次減1不為零就跳 否則跳到loop3處繼續(xù)執(zhí)行
  20.                 ret         ;返回指令
  21. End  ;程序結束
復制代碼





歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1