关于指针-3

来源:本站
导读:目前正在解读《关于指针-3》的相关信息,《关于指针-3》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《关于指针-3》的详细说明。
简介:下面我们了解一下赋值语句 x=y的含义。通过这个语句,我们了解一下地址的含义。

下面我们了解一下赋值语句 x=y的含义。通过这个语句,我们了解一下地址的含义。

x=y;

其实就是将变量y的值赋给x。但是单片机在运行中过程十什么。这个可以通过实验获得。在keil中输入以下代码。

#include

int main(void)

{

volatile unsigned char x,y;

x=10;

y=11;

x=y;

}

编译以后我们可以获得机器码。

C:0x000C 02000F LJMP main(C:000F)

3: int main(void)

4: {

5: volatile unsigned char x,y;

6:

7: x=10;

C:0x000F 75080A MOV 0x08,#0x0A

8: y=11;

9:

C:0x0012 75090B MOV 0x09,#0x0B

10: x=y;

11:

C:0x0015 850908 MOV 0x08,0x09

12: }

浏览以上编译后的汇编,可以知道变量的地址是0x08,y的地址是0x09.

x=y;

就是将地址0x09的值送入0x08地址中。在这里x,y是字节变量。如果是整型会怎样?

我们试一下:

3: int main(void)

4: {

5: volatile unsigned int x,y;

6:

7: x=10;

C:0x0003 750800 MOV 0x08,#0x00

C:0x0006 75090A MOV 0x09,#0x0A

8: y=11;

9:

C:0x0009 750A00 MOV 0x0A,#0x00

C:0x000C 750B0B MOV 0x0B,#0x0B

10: x=y;

11:

C:0x000F 850A08 MOV 0x08,0x0A

C:0x0012 850B09 MOV 0x09,0x0B

12: }

整型占用两个字节,所以一个赋值语句x=y,需要两个MOV语句。所以在单片机编程中尽可能使用合适的数据类型。

本节,我们通过赋值语句了解一下地址概念。

提醒:《关于指针-3》最后刷新时间 2024-03-14 01:04:28,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《关于指针-3》该内容的真实性请自行鉴别。