[問題] 有關Keil c的幾個問題

看板ASM作者 (wayne)時間12年前 (2011/10/04 07:41), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
各位前輩你們好! 小弟學51已經一陣子了~ 一開始接觸的是組語!目前剛開始轉學C51~ 目前我碰到了幾個問題希望各為板上的前輩能給予指導! 我再學組語的時候每個時間的延遲都可以經由指令計算出來! 但現在跳到C後用for迴圈作延遲卻非常不準! 以下是我舉例所寫的程式碼: #include"reg51.h" main() { void delay(unsigned int); unsigned char i=0x80,j; while(1) { for(j=0;j<=7,j++) { P1=~i; i<<1; delay(12000); } } } void delay(unsigned int count) { unsigned int i; for(i=0;i<=count,i++); } 以上是我所舉例的程式,目前除了延遲不準確的問題外,還有另外三個問題: 第一 while(1),delay(12000),括號中的1和12000是指什麼意思? 第二 用C寫51時,是否會先將C程式碼翻譯成組語,再將翻譯好的組語 翻譯成機械碼?如果會的話我可以在哪裡看到經過翻譯後的組語? 我是否可以自行修改keil C翻譯組語的方式和結果? 第三 我希望有些副程式是用組合語言寫,寫好後我因該存成怎樣的檔 案格式,並且將此程式存至哪裡?而當需要時又該如何呼叫? 麻煩各位先進能幫助小弟解決這幾個疑惑,感激不盡!! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 111.248.48.85
文章代碼(AID): #1EYaWShg (ASM)