地址映射的右移8位是什么意思啊该如何解决

地址映射的右移8位是什么意思啊。
看代码都会有如下:
#define   PHYSADDR     ((PVOID)0x10000000)
//   PHYSADDR   is   the   physical   address   of   the   peripheral
//   registers

#define   SIZE     (4800*4)

LPVOID   lpv;
BOOL   bRet;

lpv   =   VirtualAlloc(0,   SIZE,   MEM_RESERVE,   PAGE_NOACCESS);
bRet   =   VirtualCopy(lpv,   PHYSADDR> > 8,   SIZE,   PAGE_READWRITE   |   PAGE_NOCACHE   |   PAGE_PHYSICAL);

为什么PHYSADDR要右移8位呀?已经是物理实际地址了嘛,右移不是偏了?


------解决方案--------------------
相当于除于256

0x10000000 就变成 0x100000了
------解决方案--------------------
lpv = VirtualAlloc(0, SIZE, MEM_RESERVE, PAGE_NOACCESS);//lpv是申请的虚拟内存地址
bRet = VirtualCopy(lpv, PHYSADDR> > 8, SIZE, PAGE_READWRITE | PAGE_NOCACHE | PAGE_PHYSICAL);//把lpv拷贝到PHYSADDR> > 8(PHYSADDR ((PVOID)0x10000000),位移8就等于0x1000000)的位置。