来了21IC好些阵子了,一直靠发些半灌水贴以求混个脸熟。今天发个纯技术问题求教求教。 如题:hug: 。
1、keil中要对工作寄存器(R0,R1等)进行入栈出栈操作为什么不能直接用如PUSH R0、POP R0这样的写法,要用R0的地址,就是要这样:PUSH 00H、POP 00H?
2、C语言的问题。我写个式子:unsigned int a; a=(168*196)/10; 结果a=62276,较真实结果大很多,而改成:unsigned int a; a=168*196; a=a/10; 结果是a=3292;是正确的。 而如果 a=(167*196)/10; 结果也是真确的(167*196是32732,小于int型上限,(168*196)大于int型上限),我明明定义a是unsigned int 型上限是65535,不会越界的。 这是为什么? 不同的写法结果怎么不同? |