Re: dspic中的 frame pointer 是要做何用
|
||||
---|---|---|---|---|
中級會員
|
我做實驗的結果是在C程式中呼叫某一函數後,翻成組合語言一看會自動LNK數個byte的大小,此大小剛好就是被呼叫函數中所有的區域變數(包含參數),但是除了遞迴之外是否還有其他的用途?或是就是為了C語言所做出來的功能呢?
發表於: 2004/12/2 14:49
|
|||
|
Re: dspic中的 frame pointer 是要做何用
|
||||
---|---|---|---|---|
版主
|
1、聽我同事做實驗後說,在C程式中,呼叫某一函數後,W14及W15都會被牽動到。
2、我想,還可以利用它,甚至在使用組合語言時,都可以做到自已呼叫自已,類似所謂「遞迴」的寫法;其中使用W14來指到每一層函數中的變數。
發表於: 2004/12/1 23:55
|
|||
|
Re: dspic中的 frame pointer 是要做何用
|
||||
---|---|---|---|---|
中級會員
|
那這個東西通常都是怎麼用的啊?這個臨時性的空間到底有什麼用途呢?是不是像是C語言函數中的『區域變數』啊?
發表於: 2004/11/30 14:29
|
|||
|
Re: dspic中的 frame pointer 是要做何用
|
||||
---|---|---|---|---|
版主
|
假設您跳到了某一個副程式,此時,W15 (堆疊指標)會指到下一個可用的位置 ( 以byte為單位)。
如果此時您下了LNK #0x4 這個指令的話,會發生以下的事情: 1、W14的值會先被存在堆疊中,W15指到下一個可用的位置,亦即W15+2-> W15 2、接著,W14會等於新的W15的值。 3、然後,W15+4-> W15 也就是說,您可以利用LNK #0X4,在堆疊區開出4個BYTE的,通常是暫時性的,儲存空間。
發表於: 2004/10/1 16:40
|
|||
|
Re: dspic中的 frame pointer 是要做何用
|
||||
---|---|---|---|---|
初級會員
|
不知能否舉個簡單例子,說明frame pointer的用法
謝謝!
發表於: 2004/9/9 10:24
|
|||
|
Re: dspic中的 frame pointer 是要做何用
|
||||
---|---|---|---|---|
新會員
|
frame pointer是用来为所调用的子程序的临时变量分配存储空间的。
LNK和ULNK是用来开始创建 STACK FRAME和结束STACK FRAME的,经常能用到的。
發表於: 2004/9/8 16:45
|
|||
|
dspic中的 frame pointer 是要做何用
|
||||
---|---|---|---|---|
初級會員
|
請問dspic中的 frame pointer 是要做何用?
要如何使用呢? 它和 lnk 及 ulnk 有關係?
發表於: 2004/9/4 9:59
|
|||
|