音影先锋亚洲天堂网|电影世界尽头的爱完整版播放|国产 熟女 91|高清无码免费观看欧美日韩|韩国一区二区三区黄色录像|美女亚洲加勒比在线|亚洲综合网 开心五月|7x成人在线入口|成人网站免费日韩毛片区|国产黄片?一级?二级?三级

登錄 免費(fèi)注冊 首頁 | 行業(yè)黑名單 | 幫助
維庫電子市場網(wǎng)
技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng)
驅(qū)動(dòng)編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計(jì) | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe

在使用keil c時(shí)的FA,不知道有沒有Question,高手幫忙了.

作者:fredson 欄目:技術(shù)交流
在使用keil c時(shí)的FA,不知道有沒有Question,高手幫忙了.
因?yàn)槭稚系馁Y料比較少,遇到了如下問題未能解決,還請幫忙,謝謝!

1. keil c 在嵌套匯編的時(shí)候能不能使用c定義的變量?如果能,怎樣用?
例如:
    定義了 unsigned SHORT int myvar;
    能不能在同個(gè)函數(shù)中使用類似如下的賦值?
    mov A,myvar;
    
2. 怎樣在c中定義匯編中使用的寄存器 R0-R7, 就象定義特殊寄存器那樣:
       sfr p0=0x80; 來準(zhǔn)確定義寄存器的地址?如果能,怎樣做?

3. 在c中使用什么關(guān)鍵字能定義出變量能夠靜態(tài)的存放在ROM的數(shù)據(jù)區(qū),像用匯編定義的那樣:
    TABLE:DB ? ? ? ?

    如果能定義出這樣的數(shù)據(jù)區(qū),能不能讓他們在指定的地址存放?

2樓: >>參與討論
fredson
自己先頂一下了.
 
3樓: >>參與討論
bingoes
我來說兩句(希望能做些拋磚引玉的作用)。。。
問題一
a:我覺得可以用_at_語句先指定myvar的絕對地址,然后再在匯編中訪問它:
unsigned CHAR myvar _at_ 28h;
mov A,28h
b:可以把myvar當(dāng)作參數(shù)傳入子函數(shù):例如 Sub_Func(myvar);
而根據(jù)C傳遞參數(shù)的規(guī)則,R7的值=myvar,那么就變成了:
mov A,R7

問題二
沒弄明白樓主的意思,如果調(diào)用匯編,訪問R0-R7,直接就能訪問了呀,如
mov A,R0

問題三
定義ROM數(shù)據(jù)區(qū),可用code關(guān)鍵字,例如:
unsigned CHAR code ROM_DATA[]={0x00,0x00,0x00,0x00};
如果要指定地址,也可以:
unsigned CHAR code ROM_DATA[100] _at_ 0x100;
但是就不能預(yù)先賦值了。有個(gè)解決辦法比較繁瑣一點(diǎn),就是先編譯生成HEX
文檔,然后再轉(zhuǎn)成bin文檔,然后再用ultraedit之類的支持編輯二進(jìn)制文件
的工具軟件在bin文檔的100h處填入你想賦值的數(shù)據(jù)。



4樓: >>參與討論
fredson
問題2的意思是,怎么定義一個(gè)內(nèi)存變量.例如:
我要定義一個(gè)不是特殊寄存器的內(nèi)存地址,比如52中超過0xff的地址

5樓: >>參與討論
fredson
感謝bingoes指點(diǎn),希望大家都來討論一下.
 
參與討論
昵稱:
討論內(nèi)容:
 
 
相關(guān)帖子
室溫測量溫度用NTC熱敏電阻,穩(wěn)定性和互換性如何
PCB板也分ROHS和無ROHS嗎?
幫判斷下,1875是否壞了。
請教大家如何做到延時(shí)時(shí)間在0.3-0.5秒,精度為0.1秒,非常的謝謝
求助:ST7920液晶的繪圖功能怎么弄?都調(diào)了2天了,還是不行
免費(fèi)注冊為維庫電子開發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入


Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號(hào)