winnie 发表于 2009-3-28 15:53:18

一个位移问题?

在汇编中这样做
    RRFTEMP1,1
    RRFTEMP2,1
    BCFTEMP1,7
    RRFTEMP1,1
    RRFTEMP2,1
    BCFTEMP1,7
等于把(TEMP1和TEMP2)双字节数除4,但是在c语言中
char TEMP1,TEMP2;
int TEMP;
TEMP1=TEMP1>>2;
TEMP2=TEMP2>>;
确不会有汇编的效果,把TEMP1和TEMP2合并成TEMP(用cypok的方法)
TEMP=TEMP>>2;
也得不到汇编的结果,c语言应该什么办?

winnie 发表于 2009-3-28 15:53:51

原来我在汇编时把两字节按比如 26H,27H这样的寄存器顺序存放,(26H放高字节,27H放低字节),到了c我也这么放,所以出错。应该是倒过来,(27H放高字节,26H放低字节),这样结果就对了
页: [1]
查看完整版本: 一个位移问题?