| 菲利浦80C51MX提供了統(tǒng)一的16MB地址空間。新的指令最大可以存取16MB的內(nèi)存,其中CODE和XDATA空間被配置到單一的地址空間中。堆棧指針可以被設(shè)置為16位,可以在EDATA內(nèi)存類型中尋址片內(nèi)RAM。下表所示為對(duì)80C51MX架構(gòu)編程用到的內(nèi)存類型。當(dāng)我們使用AX51宏匯編器和LX51連接/定位器時(shí),這些內(nèi)存類型都可用。 | 內(nèi)存類型 | 地址范圍 | 說明羅畝的筆記 | | DATA | 7F:0000 - 7F:007F | 可直接尋址的片內(nèi)RAM | | BIT | 7F:0020 - 7F:002F | 可位尋址的RAM;使用位指令訪問 | | IDATA | 7F:0000 - 7F:FFFF | 間接尋址的片內(nèi)RAM;可以使用@R0或@R1訪問 | | EDATA | 7F:0000 - 7F:FFFF | 完全片內(nèi)RAM;可以用作堆?臻g,也可用@PR0或PR1存取。 | | XDATA | X:0000 - X:FFFF | 64KB RAM(讀/寫訪問)。使用MOVX指令訪問。 | | HDATA | X:0000 - X: FFFFFF | 8MB RAM(讀/寫訪問)。使用MOVX指令和擴(kuò)展的DPTR訪問。 | | CODE | C:0000 - C:FFFF | 與傳統(tǒng)8051兼容的64KB ROM(只讀)。用于存儲(chǔ)常量或可執(zhí)行代碼。 | | ECODE | C:0000 - C:FFFFFF | 8MB ROM(只讀)。 | | HCONST | 80:0000 - 80:FFFF | 8MB ROM。同ECODE,由CX51編譯器用于存儲(chǔ)常量。 | BANK0 ...BANK31 | 80:0000 - 0xBF:FFFF B0:0000 - B63:FFFF | 由CX51編譯器把程序存儲(chǔ)器空間擴(kuò)展到超過64KB。羅畝的筆記 | 注意 冒號(hào)只是用來提高可讀性。地址在工具軟件中輸入時(shí)作為數(shù)字,不帶冒號(hào)。 存儲(chǔ)空間的類型前綴D:I:X:C:B0:..B31:不能用于Ax51匯編器級(jí)。列出存儲(chǔ)類型的前綴只是為了更好地理解。Lx51連接/定位器和一些調(diào)試工具,例如μVersion2調(diào)試器,使用存儲(chǔ)類型前綴來標(biāo)志地址的存儲(chǔ)空間類型。 80C51MX的存儲(chǔ)器布局 菲利浦80C51MX的存儲(chǔ)器布局如下圖所示,提供了一個(gè)統(tǒng)一的內(nèi)存地圖,在單一的16MB地址區(qū)域內(nèi)包含了所有的存儲(chǔ)器類型。  80C51MX提供了新型的CPU指令,采用一種新的尋址模式,叫做通用指針尋址(Universal Pointer Addressing)。共有兩個(gè)通用指針寄存器PR0和PR1。PR0由寄存器R1、R2和R3構(gòu)成。PR1由R5、R6和R7構(gòu)成。這些新型的通用指針寄存器持有24位地址,與EMOV指令一起使用,可以對(duì)整個(gè)16MB存儲(chǔ)空間尋址。 |