unsigned int rr_shift16(unsigned int var,unsigned char count)<br />{<br /> while(count--) //移位次数控制<br /> {<br /> #asm //嵌入汇编<br /> rrf ?_rr_shift16+0,w //最低位送入C<br /> rrf ?_rr_shift16+1,f //var高字节右移一位,C移入最高位<br /> rrf ?_rr_shift16+0,f //var低字节右移一位<br /> #endasm //结束嵌入汇编<br /> }<br /> return(var); //返回结果<br />}<br />这个程序我是摘自张明峰老师所著的有关PIC单片机的C语言编程内容里的,因有几处无法理解想请各位大虾指点指点<br />一: C语言中内嵌了汇编程序,?_rr_shift16+0,?_rr_shift16+1与?_rr_shift16+0具体含义是指什么?与变量 var 是如何联系在一起的?<br />二:入口参数有两个是var 和 count .返回值仍然是var.前面的var与返回的var不会发生矛盾吗?<br />列如调用函数rr_shift16(10,4),结果是什么?会不会还是10? |
|