一般来说,片内外统一编址是对程序存储器来说的,因为统一用PC计数。至于你说的“单片机的I/O口和外部RAM统一编址”意思是MOVX送出的地址是由p2和p0口上的数据决定的。 在XBYTE[]中括号里的 地址如何确定? 答:要按照电路实际情况决定,XBYTE 的作用,可以用来定义绝对地址,即P0口和P2口共同决定的地址。 如 XBYTE[0x1234] = 0x35; 则等价于 mov dptr,#1234h mov @dptr,#35h 。 在电路设计时,地址的分配不可能总是连续的,因为各种选通器件的电路不同,将导致出现离散的地址,这是就要用到XBYTE来决定绝对地址了。比如p2决定外部地址的高八位,它的一些引脚是选通器件的,所以对外部器件而言的地址跟单片机内部的地址是不一样的,这要根据经验来决定电路设计和绝对地址的分配。 这就是使用 XBYTE的一个原因。