• slider image 442
  • slider image 483
  • slider image 484
  • slider image 485
  • slider image 486
  • slider image 487
:::

論壇索引


Board index » All Posts (kaoch)




Re: C語言行內組合引用變數錯誤
#11
新會員
新會員


感謝您的回答

您說的我知道 但是這樣的觀點卻很奇怪也造成一點點不太方便
正常來說 我這里說說的區域變數是同一斷函數區段內的例如

void function(char var1,char var2)
{
    
unsigned char Buf1;       //<-------- 這裡 Buf1是屬於 function() 裡面的變數

    
_asm
    movff    Buf1
,var2        //<-------- 這裡也是在function () 的範圍裡面 但是卻看不到
    
Loop1:
    
decfsz   Buf1,1,0          //<-------- 這裡也是在function() 的範圍裡面 但是卻看不到

    
bra        Loop1
    nop
    _endasm
}

不懂位啥編譯器要有這種限制...........
我有嘗試先編譯一次取得它可能位址然後直接帶入
呃....幾乎可以用但在某些情況下還是會造成當機....原因我想大家都該知道
偏偏 我的副程式中有10多個變數.............
有人知道這個問題要如何解嗎..........

發表於: 2007/6/10 0:33
頂部


Re: C語言行內組合引用變數錯誤
#12
新會員
新會員


感謝您的回答
我的行內組合程式中並不是單純的移動資料後面還有其他的指令會對Buf1 這個變數作一些運算及處理
目前的問題是 C18編譯器對於內插組合時好像在組合段落內看不到自己同樣函數段落內的區域變數( 這又是啥怪道理......PS:這是代理商FAE告訴我的 )

發表於: 2007/6/9 23:25
頂部


C語言行內組合引用變數錯誤
#13
新會員
新會員


void test1(unsigned char datain,unsigned char var1)
{
        
unsigned char Buf1=0;

        
_asm
        movff     Buf1
,var1
        
..................
        ............
        ........

        
_endasm
}

上面的語法的問題 是 第一行的Buf1宣告編譯過後
它會給予一個位址並且將她清為0
例如 clr 0xfdf,ACCESS

但是行內組合的部分編譯過後 Buf1卻變成 movff 0,0xffd
應該要 0xfdf 的地方卻變成 0
程式目前發現就是這裏造成功能執行錯誤
雖然可以把 Buf1 宣告成全域變數但由於記憶體使用的非常凶
所以不能把她改成全域方式

想請問有哪位大大們 有解決的方法 感謝

發表於: 2007/6/9 20:41
頂部



« 1 (2)



:::

Microchip連結

https://www.facebook.com/microchiptechnologytaiwan/
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=13
https://mu.microchip.com/page/tmu
http://elearning.microchip.com.tw/modules/tad_link/index.php?cate_sn=1
https://page.microchip.com/APAC-PrefCenters-TW.html
http://www.microchip.com/
http://www.microchip.com/treelink
http://www.microchipdirect.com/
http://www.microchip.com.cn/newcommunity/index.php?m=Video&a=index&id=103
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=2
http://www.microchip.com.tw/Data_CD/eLearning/index.html
http://www.microchip.com.tw/RTC/RTC_DVD/
https://www.microchip.com/development-tools/
https://www.youtube.com/user/MicrochipTechnology
[ more... ]

教育訓練中心

!開發工具購買
辦法說明 [業界客戶] [教育單位]
----------------------------------
!校園樣品申請
辦法說明 [教師資格] [學生資格]
----------------------------------