📄 delay.lst
字号:
ARM COMPILER V2.42, delay 14/02/07 10:22:58 PAGE 1
ARM COMPILER V2.42, COMPILATION OF MODULE delay
OBJECT MODULE PLACED IN delay.OBJ
COMPILER INVOKED BY: C:\Keil\ARM\BIN\CA.exe delay.c THUMB BROWSE DEBUG TABS(4)
stmt level source
1 #include "delay.h"
2 #include "basetype.h"
3 //#include "project.h"
4
5 void delay_1us_nop(void)
6 {
7 1 unsigned char i;
8 1 for(i=0;i<2;i++);
9 1 }
10
11 void delay_10us_nop(void)
12 {
13 1 unsigned char i;
14 1 for(i=0;i<40;i++);
15 1 i = i << 1;
16 1 i = i << 1;
17 1 }
18
19 void delay_50us_nop(void)
20 {
21 1 unsigned char i;
22 1 for(i=0;i<217;i++);
23 1 }
24
25
26
27 void delay_1ms(unsigned int ms)
28 {
29 1 unsigned int delay1, delay2;
30 1
31 1 for( delay1=0; delay1<ms; delay1++ )
32 1 { for( delay2=0; delay2<20; delay2++ )
33 2 { delay_50us_nop(); // WDT_RST;
34 3 }
35 2 }
36 1 }
37
ARM COMPILER V2.42, delay 14/02/07 10:22:58 PAGE 2
ASSEMBLY LISTING OF GENERATED OBJECT CODE
*** PUBLICS:
PUBLIC delay_1us_nop?T
PUBLIC delay_10us_nop?T
PUBLIC delay_50us_nop?T
PUBLIC delay_1ms?T
*** CODE SEGMENT '?PR?delay_1us_nop?T?delay':
6: {
00000000 ; SCOPE-START
8: for(i=0;i<2;i++);
00000000 2000 MOV R0,#0x0
00000002 ---- Variable 'i' assigned to Register 'R0' ----
00000002 E002 B L_3 ; T=0x0000000A
00000004 L_1:
00000004 3001 ADD R0,#0x1
00000006 0600 LSL R0,R0,#0x18
00000008 0E00 LSR R0,R0,#0x18
0000000A L_3:
0000000A 1C01 MOV R1,R0 ; i
0000000C 0609 LSL R1,R1,#0x18 ; i
0000000E 0E09 LSR R1,R1,#0x18
00000010 2902 CMP R1,#0x2
00000012 DBF7 BLT L_1 ; T=0x00000004
00000014 ; SCOPE-END
9: }
00000014 4770 BX R14
00000016 ENDP ; 'delay_1us_nop?T'
*** CODE SEGMENT '?PR?delay_10us_nop?T?delay':
12: {
00000000 ; SCOPE-START
14: for(i=0;i<40;i++);
00000000 2000 MOV R0,#0x0
00000002 ---- Variable 'i' assigned to Register 'R0' ----
00000002 E002 B L_8 ; T=0x0000000A
00000004 L_6:
00000004 3001 ADD R0,#0x1
00000006 0600 LSL R0,R0,#0x18
00000008 0E00 LSR R0,R0,#0x18
0000000A L_8:
0000000A 1C01 MOV R1,R0 ; i
0000000C 0609 LSL R1,R1,#0x18 ; i
0000000E 0E09 LSR R1,R1,#0x18
00000010 2928 CMP R1,#0x28
00000012 DBF7 BLT L_6 ; T=0x00000004
15: i = i << 1;
00000014 0600 LSL R0,R0,#0x18 ; i
00000016 0E00 LSR R0,R0,#0x18
00000018 0040 LSL R0,R0,#0x1
0000001A 0600 LSL R0,R0,#0x18
0000001C 0E00 LSR R0,R0,#0x18
16: i = i << 1;
0000001E 0600 LSL R0,R0,#0x18 ; i
00000020 0E00 LSR R0,R0,#0x18
00000022 0040 LSL R0,R0,#0x1
00000024 0600 LSL R0,R0,#0x18
00000026 0E00 LSR R0,R0,#0x18
00000028 ; SCOPE-END
17: }
00000028 4770 BX R14
0000002A ENDP ; 'delay_10us_nop?T'
*** CODE SEGMENT '?PR?delay_50us_nop?T?delay':
20: {
00000000 ; SCOPE-START
ARM COMPILER V2.42, delay 14/02/07 10:22:58 PAGE 3
22: for(i=0;i<217;i++);
00000000 2000 MOV R0,#0x0
00000002 ---- Variable 'i' assigned to Register 'R0' ----
00000002 E002 B L_13 ; T=0x0000000A
00000004 L_11:
00000004 3001 ADD R0,#0x1
00000006 0600 LSL R0,R0,#0x18
00000008 0E00 LSR R0,R0,#0x18
0000000A L_13:
0000000A 1C01 MOV R1,R0 ; i
0000000C 0609 LSL R1,R1,#0x18 ; i
0000000E 0E09 LSR R1,R1,#0x18
00000010 29D9 CMP R1,#0xD9
00000012 DBF7 BLT L_11 ; T=0x00000004
00000014 ; SCOPE-END
23: }
00000014 4770 BX R14
00000016 ENDP ; 'delay_50us_nop?T'
*** CODE SEGMENT '?PR?delay_1ms?T?delay':
27: void delay_1ms(unsigned int ms)
00000000 B510 PUSH {R4,LR}
00000002 1C03 MOV R3,R0 ; ms
00000004 ---- Variable 'ms' assigned to Register 'R3' ----
28: {
00000004 ; SCOPE-START
31: for( delay1=0; delay1<ms; delay1++ )
00000004 2200 MOV R2,#0x0
00000006 ---- Variable 'delay1' assigned to Register 'R2' ----
00000006 E007 B L_18 ; T=0x00000018
32: { for( delay2=0; delay2<20; delay2++ )
00000008 L_25:
00000008 2400 MOV R4,#0x0
0000000A ---- Variable 'delay2' assigned to Register 'R4' ----
0000000A L_24:
33: { delay_50us_nop(); // WDT_RST;
0000000A F7FF BL delay_50us_nop?T ; T=0x0001 (1)
0000000C FFF9 BL delay_50us_nop?T ; T=0x0001 (2)
34: }
0000000E 3401 ADD R4,#0x1
00000010 1C20 MOV R0,R4 ; delay2
00000012 2814 CMP R0,#0x14 ; delay2
00000014 D3F9 BCC L_24 ; T=0x0000000A
35: }
00000016 3201 ADD R2,#0x1
00000018 L_18:
00000018 1C19 MOV R1,R3 ; ms
0000001A 1C10 MOV R0,R2 ; delay1
0000001C 4288 CMP R0,R1 ; delay1
0000001E D3F3 BCC L_25 ; T=0x00000008
00000020 ; SCOPE-END
36: }
00000020 BC10 POP {R4}
00000022 BC08 POP {R3}
00000024 4718 BX R3
00000026 ENDP ; 'delay_1ms?T'
Module Information Static
----------------------------------
code size = ------
data size = ------
const size = ------
End of Module Information.
ARM COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -