📄 key.lst
字号:
ARM COMPILER V2.53, key 02/08/06 16:25:35 PAGE 1
ARM COMPILER V2.53, COMPILATION OF MODULE key
OBJECT MODULE PLACED IN .\Obj\key.obj
COMPILER INVOKED BY: C:\Keil\ARM\BIN\CA.exe key.c THUMB BROWSE DEBUG PRINT(.\LST\KEY.LST) TABS(4) OBJECT(.\Obj\key.obj)
stmt level source
1
2 #include <lpc214x.h>
3
4 #include "code.h"
5
6
7 #define fun 13
8 #define add 15
9 #define dec 7
10 #define ok 6
11
12
13
14 unsigned char Scan_Key(void)
15 {
16 1 unsigned int k;
17 1 unsigned char key;
18 1
19 1 key=0;
20 1
21 1 k=IOPIN0;
22 1 if((k&1<<fun)==0)key=fun;
23 1 // key=key<<1;
24 1 if((k&1<<add)==0)key=add;
25 1 // key=key<<1;
26 1 if((k&1<<dec)==0)key=dec;
27 1 // key=key<<1;
28 1 if((k&1<<ok)==0)key=ok;
29 1 /* switch(key)
30 1 {
31 1 case 0x00:
32 1 i=0;
33 1 break;
34 1 case 0x08:
35 1 i=4;
36 1 break;
37 1
38 1 case 0x04:
39 1 i=3;
40 1 break;
41 1
42 1 case 0x02:
43 1 i=2;
44 1 break;
45 1
46 1 case 0x01:
47 1 i=1;
48 1 break;
49 1
50 1 case 0x0F: //复合键
51 1 i=0XF;
52 1 break;
53 1
54 1 case 0x0E:
55 1 i=0X0E;
56 1 break;
57 1 default:
58 1 i=0;
59 1 break;
ARM COMPILER V2.53, key 02/08/06 16:25:35 PAGE 2
60 1 } */
61 1 return key;
62 1 }
ARM COMPILER V2.53, key 02/08/06 16:25:35 PAGE 3
ASSEMBLY LISTING OF GENERATED OBJECT CODE
*** PUBLICS:
PUBLIC Scan_Key?T
*** CODE SEGMENT '?PR?Scan_Key?T?key':
15: {
00000000 ; SCOPE-START
19: key=0;
00000000 2100 MOV R1,#0x0
00000002 ---- Variable 'key' assigned to Register 'R1' ----
21: k=IOPIN0;
00000002 4800 LDR R0,=0xE0028000
00000004 6803 LDR R3,[R0,#0x0]
00000006 ---- Variable 'k' assigned to Register 'R3' ----
22: if((k&1<<fun)==0)key=fun;
00000006 1C18 MOV R0,R3 ; k
00000008 4800 LDR R2,=0x2000
0000000A 4210 TST R0,R2 ; k
0000000C D100 BNE L_1 ; T=0x00000010
0000000E 210D MOV R1,#0xD
00000010 L_1:
24: if((k&1<<add)==0)key=add;
00000010 1C18 MOV R0,R3 ; k
00000012 4800 LDR R2,=0x8000
00000014 4210 TST R0,R2 ; k
00000016 D100 BNE L_2 ; T=0x0000001A
00000018 210F MOV R1,#0xF
0000001A L_2:
26: if((k&1<<dec)==0)key=dec;
0000001A 1C18 MOV R0,R3 ; k
0000001C 2280 MOV R2,#0x80
0000001E 4210 TST R0,R2 ; k
00000020 D100 BNE L_3 ; T=0x00000024
00000022 2107 MOV R1,#0x7
00000024 L_3:
28: if((k&1<<ok)==0)key=ok;
00000024 1C18 MOV R0,R3 ; k
00000026 2240 MOV R2,#0x40
00000028 4210 TST R0,R2 ; k
0000002A D100 BNE L_4 ; T=0x0000002E
0000002C 2106 MOV R1,#0x6
0000002E L_4:
61: return key;
0000002E 1C08 MOV R0,R1 ; key
00000030 0600 LSL R0,R0,#0x18 ; key
00000032 0E00 LSR R0,R0,#0x18
00000034 ; SCOPE-END
00000034 4770 BX R14
00000036 ENDP ; 'Scan_Key?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 + -