软件理解暂存
1.
int a = 1;
int *p = &a;
float *p1 = (float*)p;
则p和p1的值都是&a,但是*p是将&a地址中的值按照int型变量进行解释,而*p1则是将&a地址中的值按照float型变量进行解释;
解释:也就是第二行:取得的‘a’的地址值,是赋值给‘p’,不要受“ * “的影响。
同理,第三行的强制类型转换,不要受” * “的影响,p1获得的是p变量所代表的地址值。
2.

汇编指令 MOV 在C原因体现:
解:
(1)在汇编理解来说,是将 MOV destination,source,MOV 指令将源操作数复制到目的操作数。作为数据传送(data transfer)指令,它几乎用在所有程序中。在它的基本格式中,第一个操作数是目的操作数,第二个操作数是源操作数;
(2)那么在C语言的理解下,即将“ XX80h ”值赋值给“ XXAAh”(地址值)所指向的地址的存储空间;
具体实现:
unsigned short far* p=(unsigned short far*)(FlashBaseAddr+0xAA);
*p=0x0080;

浙公网安备 33010602011771号