[問題] 有關Keil c的幾個問題
各位前輩你們好!
小弟學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
ASM 近期熱門文章
PTT數位生活區 即時熱門文章