怎样从指定寄存器地址中读取二进制数.再判断高位是0还是1?该怎么处理

怎样从指定寄存器地址中读取二进制数.再判断高位是0还是1?
从指定寄存器地址中读取一个二进制数.然后再判断高位是0还是1?    
该怎么做啊?有高手能写一下程序吗?谢谢啊

------解决方案--------------------
if ( x & 0x80 )
printf( "最高位是1\n ");
else
printf( "最高位是0\n ");
------解决方案--------------------
假设是32位的寄存器

#define REG_ADDR 0x850000

if ((*((volatile unsigned long*)REG_ADDR)) & (1 < < 31))
// 为1
else
// 为0
------解决方案--------------------
如是在TC的话有几个全局变量_AX,_BX,_CX,_DX.这几个变量不用你定义,系统定义好了,你这样判断
if(_AX&0x8000)
{
最高位为1

}
else
{
最高位为0
}

不知道能给我50分不,最近我很需要分呀
------解决方案--------------------
printf( "%x ",*((unsigned long *)reg));

reg为32位寄存器
__________________
顺便bs楼上的:一口气想要所有的分。。。。
楼下的来说句公道话
^_^