[問題] 請教幾個8051的問題

看板ASM (組合語言)作者 (死工程師 = = )時間14年前 (2010/10/22 08:39), 編輯推噓0(006)
留言6則, 3人參與, 最新討論串1/2 (看更多)
最近再複習8051 但因為年代有點久遠 而且現在看的書也並不是當初用的那本 所以書上有些看不太懂 DELAY20MS: MOV R6,#40 D1: MOV R5,#248 DJNZ R5,$ DJNZ R6,D1 RET 請問$是什麼意思呢? 是要跳躍到哪裡去了? 請問如何精確地寫出要延遲20MS秒呢? 這當中要怎麼推算呢? 程式碼為何給R6 資料值40 然後又給R5 資料值248 -- 吳倩蓮是我見過最平凡的小龍女! 最靠杯的是,我第一次看神屌俠侶,就是任賢齊版的。 害我以為原來小龍女長相不過就這麼普通。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.125.226.169

10/22 16:47, , 1F
沒記錯的話 $ 是目前位置的意思
10/22 16:47, 1F

10/22 16:47, , 2F
DJNZ R5,$ 就是一直執行,減少 R5 至等於零再往下跑
10/22 16:47, 2F

10/22 16:51, , 3F
http://nopaste.csie.org/6eb21 你的程式就是這樣
10/22 16:51, 3F

10/22 16:52, , 4F
它是利用 busy loop 來消耗時間
10/22 16:52, 4F

10/22 16:57, , 5F
40*248? 為什麼等於20m秒呢? 一個指令是幾秒呀?
10/22 16:57, 5F

10/22 17:15, , 6F
看你震盪器與51類型 來看是單周期指令還是多週期指令來算
10/22 17:15, 6F
文章代碼(AID): #1CmKtA6e (ASM)
討論串 (同標題文章)
以下文章回應了本文
完整討論串 (本文為第 1 之 2 篇):
0
6
文章代碼(AID): #1CmKtA6e (ASM)