最新免费av在线观看,亚洲综合一区成人在线,中文字幕精品无码一区二区三区,中文人妻av高清一区二区,中文字幕乱偷无码av先锋

登錄 免費(fèi)注冊(cè) 首頁(yè) | 行業(yè)黑名單 | 幫助
維庫(kù)電子市場(chǎng)網(wǎng)
技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測(cè)控之家 | 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

指針的存儲(chǔ)位置和指向的關(guān)系

作者:hopeasy 欄目:嵌入式系統(tǒng)
指針的存儲(chǔ)位置和指向的關(guān)系
   我在C51中遇到  指針的存儲(chǔ)位置和指向的關(guān)系  ,我弄不很明白,請(qǐng)指點(diǎn)。
    data CHAR xdata *str;  和  CHAR xdata * data num;  我自己認(rèn)為他們是一
樣的。
    以下是我自己設(shè)計(jì)的測(cè)試代碼,您看正確不。


對(duì)于CHAR xdata * data num;
/**********************************************/

#include "reg52.h"
#include "absacc.h"

xdata CHAR i _at_ 0x30;
CHAR xdata * data num;
main()
{
xdata CHAR j;
XBYTE[0x0006]=0xaa;
i=XBYTE[0x0006];
j=*num;
while(1);
}
//它所對(duì)應(yīng)的匯編為:
     6: main()
     7: {
     8: xdata CHAR j;
     9: XBYTE[0x0006]=0xaa;
C:0x0003    900006   MOV      DPTR,#0x0006
C:0x0006    74AA     MOV      A,#0xAA
C:0x0008    F0       MOVX     @DPTR,A
    10: i=XBYTE[0x0006];
C:0x0009    E0       MOVX     A,@DPTR
C:0x000A    900030   MOV      DPTR,#i(0x0030)
C:0x000D    F0       MOVX     @DPTR,A
    11: j=*num;
C:0x000E    850982   MOV      DPL(0x82),0x09
C:0x0011    850883   MOV      DPH(0x83),num(0x08)
C:0x0014    E0       MOVX     A,@DPTR
C:0x0015    900000   MOV      DPTR,#C_STARTUP(0x0000)
C:0x0018    F0       MOVX     @DPTR,A
    12: while(1);
C:0x0019    80FE     SJMP     C:0019
/******************************************************/


對(duì)于  data CHAR xdata *str _at_ 0x0030;
/*****************************************************/
data CHAR xdata *str _at_ 0x0030;
CHAR m;
main()
{
str=0x0006;
*str=0x11;
*(CHAR xdata *)0x0006=0xaa;
m=*str;
while(1);
}
//它所對(duì)應(yīng)的匯編為:
    17: main()
    18: {
    19: str=0x0006;
C:0x0003    753000   MOV      str(0x30),#0x00
C:0x0006    753106   MOV      0x31,#0x06
    20: *str=0x11;
C:0x0009    853182   MOV      DPL(0x82),0x31
C:0x000C    853083   MOV      DPH(0x83),str(0x30)
C:0x000F    7411     MOV      A,#0x11
C:0x0011    F0       MOVX     @DPTR,A
    21: *(CHAR xdata *)0x0006=0xaa;
C:0x0012    900006   MOV      DPTR,#0x0006
C:0x0015    74AA     MOV      A,#0xAA
C:0x0017    F0       MOVX     @DPTR,A
    22: m=*str;
C:0x0018    853182   MOV      DPL(0x82),0x31
C:0x001B    853083   MOV      DPH(0x83),str(0x30)
C:0x001E    E0       MOVX     A,@DPTR
C:0x001F    F508     MOV      m(0x08),A
    23: while(1);
C:0x0021    80FE     SJMP     C:0021    
/**********************************************/

調(diào)試的結(jié)果都是,如果指針存放在data區(qū),指向xdata區(qū),則指針占兩個(gè)字節(jié),指向data,
idata,bdata區(qū)占一個(gè)字節(jié)

參與討論
昵稱:
討論內(nèi)容:
 
 
相關(guān)帖子
請(qǐng)教:請(qǐng)幫忙推薦2M的flash型號(hào),先謝了!
求ep7312 for Nucleus bsp
求夠塊已經(jīng)跑好了vxwork的開(kāi)發(fā)板(最好是 ARM9以上的)
uclinux中讀串口的問(wèn)題?
談?wù)凜語(yǔ)言的指針!
免費(fèi)注冊(cè)為維庫(kù)電子開(kāi)發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入


Copyright © 1998-2006 udpf.com.cn 浙ICP證030469號(hào)