找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索

單片機(jī)匯編程序解讀,一個(gè)下午沒整明白

查看數(shù): 4572 | 評論數(shù): 11 | 收藏 0
關(guān)燈 | 提示:支持鍵盤翻頁<-左 右->
    組圖打開中,請稍候......
發(fā)布時(shí)間: 2018-12-9 18:43

正文摘要:

請大神幫忙解讀下這三段程序,一條條解讀,越詳細(xì)越好。 一群人學(xué)了下下午沒整明白。。。

回復(fù)

ID:155507 發(fā)表于 2018-12-11 00:15
我給你來個(gè)試試

  1. ;流水燈程序
  2. org         0000h       ;設(shè)置起始地址
  3.                 ajmp main   ;無條件跳轉(zhuǎn)指令 跳到 main
  4. org         0100h       ;定位的偽指令 順序放到從0100H開始的程序單元
  5. main:         mov r4,#04h ;向R4寄存器中載入十六進(jìn)制數(shù)04H
  6. loop:         mov a,#01h  ;向A寄存器中載入十六進(jìn)制數(shù)01H
  7. loop1:         mov P1,a    ;取出的值輸出到P1端口
  8.                 acall delay ;調(diào)入延時(shí)程序
  9.                 rl a        ;  累加器A 循環(huán)左移
  10.                 djnz r4,loop1  ;檢測R4是否為零,每次減1不為零就跳 否則跳到loop1處繼續(xù)執(zhí)行
  11.                 mov r4,#04h ;賦初值
  12.                 ajmp loop   ;無條件跳轉(zhuǎn)指令 跳到loop
  13. delay:         mov r7,#64h ;   延時(shí)程序 ;向R7寄存器中載入十六進(jìn)制數(shù)64H
  14. loop3:         mov r6,#0C8h ;向R6寄存器中載入十六進(jìn)制數(shù)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  ;程序結(jié)束
復(fù)制代碼
ID:387733 發(fā)表于 2018-12-10 15:57
學(xué)匯編不是為了用匯編編程。編程效率C遠(yuǎn)大于匯編,但是掌握了匯編,可以更好地運(yùn)用C,更便于調(diào)試。有C基礎(chǔ)的學(xué)習(xí)匯編時(shí),可以看看每條C指令對應(yīng)的匯編,對學(xué)習(xí)是有好處的
ID:442940 發(fā)表于 2018-12-10 15:27
  不要這樣直接看吧,寫匯編最好找一個(gè)編譯軟件。 我最早做51就是用匯編的,用偉福什么的那個(gè)軟件,一步一步去跑代碼,看寄存器變化,就知道是什么意思了。學(xué)起來還是很快的。   
  如果是為了應(yīng)付考試,那么還真別浪費(fèi)這個(gè)時(shí)間了。
ID:265687 發(fā)表于 2018-12-10 14:55
可以幫助!精神可嘉,都用c了,他還在弄匯編
ID:443305 發(fā)表于 2018-12-10 14:48
多看書啊,兄弟
ID:443295 發(fā)表于 2018-12-10 14:36
加油   先記代碼
ID:443261 發(fā)表于 2018-12-10 14:10
匯編語言比較基礎(chǔ),學(xué)好了  對C語言學(xué)習(xí)也是很有好處的
ID:443246 發(fā)表于 2018-12-10 13:53
可以幫但沒必要
ID:310519 發(fā)表于 2018-12-10 13:03
我第一個(gè)學(xué)習(xí)的就是匯編,用了好久。

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

但現(xiàn)在如果不是非必要,不會(huì)用匯編的。

ID:401564 發(fā)表于 2018-12-10 11:49
一條條解讀,越詳細(xì)越好
這語氣,神了你,在這的人不是說是為了服務(wù)你而來的,大家都是本著相互學(xué)習(xí)的態(tài)度來幫忙別人,同時(shí)也是在提高自己.
你知道一條條的去注釋,這要多久嗎?你也知道自己搞了一個(gè)下午.
你隨便找一個(gè)STC的單片機(jī)的數(shù)據(jù)手冊,點(diǎn)到指令集,然后對著指令后面,一條一條抄下來就可以了
ID:396960 發(fā)表于 2018-12-10 09:20
不找書,不學(xué)習(xí),直接問人什么意思???除非你是老板了。

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表