软件理解暂存

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;

 

posted @ 2022-03-03 11:57  行程两万  阅读(96)  评论(0)    收藏  举报