|
技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機 | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計 | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
C51的一個奇怪問題 |
作者:guoox 欄目:單片機 |
我在用keil C51 的時候遇到了下面的問題: 第一次我這樣寫,匯編結(jié)果如下: 7: void main(void) 8: { 9: unsigned CHAR data *j,*i; 10: 11: 12: j=0x21; C:0x0015 7821 MOV R0,#0x21 13: *j=0x23; 14: C:0x0017 7623 MOV @R0,#0x23 15: i=0x44; C:0x0019 7B00 MOV R3,#0x00 C:0x001B 7A00 MOV R2,#0x00 C:0x001D 7944 MOV R1,#0x44 16: *i=0x33; 17: C:0x001F 7433 MOV A,#0x33 C:0x0021 120003 LCALL C?CSTPTR(C:0003) 18: while(1) C:0x0024 80FE SJMP C:0024 然后改為: 7: void main(void) 8: { 9: unsigned CHAR data *j; 10: 11: unsigned CHAR data *i; 12: j=0x21; C:0x000F 7821 MOV R0,#0x21 13: *j=0x23; 14: C:0x0011 7623 MOV @R0,#0x23 15: i=0x31; C:0x0013 7831 MOV R0,#0x31 16: *i=0x33; 17: C:0x0015 7633 MOV @R0,#0x33 18: while(1) C:0x0017 80FE SJMP C:0017 感覺這個編譯器很奇怪。不過對結(jié)果好像沒什么影響。 看來用C寫,不能總是看到底反匯編成什么。 不知我想的對不對。 |
2樓: | >>參與討論 |
作者: maychang 于 2005/4/7 20:33:00 發(fā)布:
你的程序沒有看 不過用C一定可以看到最后匯編成什么。讓編譯時生成匯編代碼就是了。 |
3樓: | >>參與討論 |
作者: guoox 于 2005/4/7 23:07:00 發(fā)布:
C語句是我寫的,匯編語句是keil反匯編出來的 大家可以看一下,同樣的語句,匯編結(jié)果不一樣,不過運算結(jié)果一樣。 感覺挺有意思的。 |
4樓: | >>參與討論 |
作者: xwj 于 2005/4/8 8:28:00 發(fā)布:
暈,你認為這是同樣的語句? unsigned CHAR data *j,*i; 和 unsigned CHAR data *j; unsigned CHAR data *i; |
5樓: | >>參與討論 |
作者: jzt369 于 2005/4/8 9:00:00 發(fā)布:
! 誰能講講這個具體差別! |
6樓: | >>參與討論 |
作者: guoox 于 2005/4/8 16:56:00 發(fā)布:
虛心請教 請問xwj, unsigned CHAR data *j,*i; 和 unsigned CHAR data *j; unsigned CHAR data *i; 到底有什么不同啊? |
7樓: | >>參與討論 |
作者: ooq2001 于 2005/4/8 22:52:00 發(fā)布:
后面的*i沒有指定存儲類型 |
8樓: | >>參與討論 |
作者: coke 于 2005/4/9 9:04:00 發(fā)布:
同意樓上的說法. |
9樓: | >>參與討論 |
作者: zheng_ys 于 2005/4/9 10:00:00 發(fā)布:
我也遇到了同樣的問題 void main () {unsigned CHAR i,TEMP=0; ..... } void main () {unsigned CHAR i; unsigned CHAR TEMP=0; ..... } 只是定義方式不一樣然而第一個程序的TEMP沒有賦值給我,而且不可以使用,不知道是什么原因? |
10樓: | >>參與討論 |
作者: raintin 于 2005/4/9 13:51:00 發(fā)布:
不認為這是同樣的語句 一個全局指針變量,兩個局部指針變量,怎么會相同呢?????? |
|
|
免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進入 |
Copyright © 1998-2006 udpf.com.cn 浙ICP證030469號 |