2、指针
C166的处理器地址空间为24位(16M),整型是16位。对于数据来说,寻址用Page,而对于指令来说,寻址使用Seg。对于一个16位的数据地址Offset来说,要想获得24位的绝对地址,需要和DPP0-3来配合得到。DPP(Data Page Pointer)是4个数据Page寄存器,根据Offset的最高两位Bit,来决定使用哪一个DPP。使用时用Offset和当前使用的DPP左移14位相加即为24bit的地址。如果临时指定一个绝对地址,可以用EXTP或EXTS,分别对应Page和Seg。所以一个DWORD的绝对地址指针(far*)根据是数据还是地址会有不同的解释。在Keil中可以用pag()和seg()来取得对应的内容。这部分的内容可以详细看一下指令手册的第六章Addressing Modes。
=======================================================
这个是进阶中的相关部分,在程序中正常情况下寻址数据是会和DPP配合的,如果想临时寻址其他页(段)的数据,则可以用EXTP(EXTS)来配合的到一个24位far指针。
[此贴子已经被作者于2004-3-5 12:16:41编辑过]
|