如,定义一个全局变量 unsigned char x; 这里的x ,默认是放到哪个区域的?
DATA
如,定义一个局部变量unsigned char x; 这里的x,又默认是放到哪个区域的?
寄存器
- #include "reg51.h"
- #define uchar unsigned char
- #define uint unsigned int
- unsigned char Ex; //定义一个全局变量
- void delay()
- {
- unsigned char x; //定义一个局部变量
- for(x=0;x<150;x++)
- {
- ;
- }
- }
- void main()
- {
- Ex =1;
- delay();
-
- }
复制代码
- C51 COMPILER V9.52.0.0 TEST001 06/08/2021 16:36:51 PAGE 1
- C51 COMPILER V9.52.0.0, COMPILATION OF MODULE TEST001
- OBJECT MODULE PLACED IN Test001.OBJ
- COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE Test001.c BROWSE DEBUG OBJECTEXTEND CODE SYMBOLS TABS(2)
- line level source
- 1 #include "reg51.h"
- 2
- 3
- 4 #define uchar unsigned char
- 5 #define uint unsigned int
- 6
- 7 unsigned char Ex; //定义一个全局变量
- 8
- 9 void delay()
- 10 {
- 11 1 unsigned char x; //定义一个局部变量
- 12 1 for(x=0;x<150;x++)
- 13 1 {
- 14 2 ;
- 15 2 }
- 16 1 }
- 17
- 18 void main()
- 19 {
- 20 1 Ex =1;
- 21 1 delay();
- 22 1
- 23 1 }
- C51 COMPILER V9.52.0.0 TEST001 06/08/2021 16:36:51 PAGE 2
- ASSEMBLY LISTING OF GENERATED OBJECT CODE
- ; FUNCTION delay (BEGIN)
- ; SOURCE LINE # 9
- ; SOURCE LINE # 10
- ; SOURCE LINE # 12
- ;---- Variable 'x' assigned to Register 'R7' ----
- 0000 E4 CLR A
- 0001 FF MOV R7,A
- 0002 ?C0001:
- ; SOURCE LINE # 13
- ; SOURCE LINE # 15
- 0002 0F INC R7
- 0003 BF96FC CJNE R7,#096H,?C0001
- ; SOURCE LINE # 16
- 0006 ?C0004:
- 0006 22 RET
- ; FUNCTION delay (END)
- ; FUNCTION main (BEGIN)
- ; SOURCE LINE # 18
- ; SOURCE LINE # 19
- ; SOURCE LINE # 20
- 0000 750001 R MOV Ex,#01H
- ; SOURCE LINE # 21
- 0003 020000 R LJMP delay
- ; FUNCTION main (END)
- C51 COMPILER V9.52.0.0 TEST001 06/08/2021 16:36:51 PAGE 3
- NAME CLASS MSPACE TYPE OFFSET SIZE
- ==== ===== ====== ==== ====== ====
- delay. . . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
- x. . . . . . . . . . . . . . . . . . * REG * DATA U_CHAR 0007H 1
- main . . . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
- Ex . . . . . . . . . . . . . . . . . . PUBLIC DATA U_CHAR 0000H 1
- MODULE INFORMATION: STATIC OVERLAYABLE
- CODE SIZE = 13 ----
- CONSTANT SIZE = ---- ----
- XDATA SIZE = ---- ----
- PDATA SIZE = ---- ----
- DATA SIZE = 1 ----
- IDATA SIZE = ---- ----
- BIT SIZE = ---- ----
- END OF MODULE INFORMATION.
- C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
复制代码
|