📄 main.lst
字号:
0000003C L_7:
0000003C 7802 LDRB R2,[R0,#0x0]
0000003E 700A STRB R2,[R1,#0x0]
00000040 1C40 ADD R0,R0,#0x1
00000042 1C49 ADD R1,R1,#0x1
00000044 1E5B SUB R3,R3,#0x1
00000046 D1F9 BNE L_7 ; T=0x0000003C
00000048 4800 LDR R0,=0x1C200
0000004A F7FF BL UART0_Init?T ; T=0x0001 (1)
0000004C FFD9 BL UART0_Init?T ; T=0x0001 (2)
0000004E B001 ADD R13,#0x4
35: U0FCR = 0x01; //接收器触发点为1个字符
00000050 2101 MOV R1,#0x1
00000052 4800 LDR R0,=0xE000C008
00000054 7001 STRB R1,[R0,#0x0]
37: U0IER = 0x01; //接收中断开,发送中断关
00000056 4800 LDR R0,=0xE000C004
00000058 7001 STRB R1,[R0,#0x0]
40: VICVectCntl0 = 0x20|0x06;
0000005A 2126 MOV R1,#0x26
0000005C 4800 LDR R0,=0xFFFFF200
0000005E 6001 STR R1,[R0,#0x0]
41: VICVectAddr0 = (uint32)IRQ_UART0;
00000060 4900 LDR R1,=IRQ_UART0?A ; IRQ_UART0?A
00000062 4800 LDR R0,=0xFFFFF100
00000064 6001 STR R1,[R0,#0x0]
42: VICIntEnable = 1<<0x06;
00000066 2140 MOV R1,#0x40
00000068 4800 LDR R0,=0xFFFFF010
0000006A 6001 STR R1,[R0,#0x0]
46: VICVectCntl5 = 0x20 | 16; // 分配外部中断0到向量中断0
0000006C 2130 MOV R1,#0x30
0000006E 4800 LDR R0,=0xFFFFF214
00000070 6001 STR R1,[R0,#0x0]
47: VICVectAddr5 = (uint32)IRQ_Eint2; // 设置中断服务程序地址
00000072 4900 LDR R1,=IRQ_Eint2?A ; IRQ_Eint2?A
00000074 4800 LDR R0,=0xFFFFF114
00000076 6001 STR R1,[R0,#0x0]
48: VICIntEnable = 1 << 16; // 使能EINT2中断
00000078 4800 LDR R1,=0x10000
0000007A 4800 LDR R0,=0xFFFFF010
0000007C 6001 STR R1,[R0,#0x0]
50: EXTINT = 0x0f; // 清除EINT所有中断标志
0000007E 210F MOV R1,#0xF
00000080 4800 LDR R0,=0xE01FC140
00000082 7001 STRB R1,[R0,#0x0]
51: EXTMODE = 0x04; // EINT2为下降沿中断
00000084 2104 MOV R1,#0x4
00000086 4800 LDR R0,=0xE01FC148
00000088 7001 STRB R1,[R0,#0x0]
55: T1PR = 0;
0000008A 2100 MOV R1,#0x0
0000008C 4800 LDR R0,=0xE000800C
0000008E 6001 STR R1,[R0,#0x0]
56: T1MCR = 0x00; //禁止定时器1所有相关中断
00000090 4800 LDR R0,=0xE0008014
00000092 6001 STR R1,[R0,#0x0]
58: T1PR = Fpclk/100000; //预分频寄存器定时时间为0.01ms
00000094 226E MOV R2,#0x6E
00000096 4800 LDR R0,=0xE000800C
00000098 6002 STR R2,[R0,#0x0]
59: T1TCR = 0x00; //定时器计数器禁止计数
0000009A 4800 LDR R0,=0xE0008004
0000009C 6001 STR R1,[R0,#0x0]
66: VICIntSelect = 0x00000000; // 设置所有中断分配为IRQ中断
0000009E 4800 LDR R0,=0xFFFFF00C
ARM COMPILER V2.50a, main 16/06/07 08:25:44 PAGE 5
000000A0 6001 STR R1,[R0,#0x0]
68: KeyDown=0;
000000A2 2100 MOV R1,#0x0
000000A4 4800 LDR R0,=KeyDown ; KeyDown
000000A6 7001 STRB R1,[R0,#0x0] ; KeyDown
69: UART0_SendByte('K');
000000A8 204B MOV R0,#0x4B
000000AA F7FF BL UART0_SendByte?T ; T=0x0001 (1)
000000AC FFA9 BL UART0_SendByte?T ; T=0x0001 (2)
70: while(1)
000000AE L_3:
72: if(KeyDown == 1)
000000AE 4800 LDR R0,=KeyDown ; KeyDown
000000B0 7800 LDRB R0,[R0,#0x0] ; KeyDown
000000B2 2801 CMP R0,#0x1
000000B4 D1FB BNE L_3 ; T=0x000000AE
74: Redinfo = Reddata; //用户码
000000B6 4800 LDR R0,=Reddata ; Reddata
000000B8 6801 LDR R1,[R0,#0x0] ; Reddata
000000BA 0609 LSL R1,R1,#0x18
000000BC 0E09 LSR R1,R1,#0x18
000000BE 4800 LDR R0,=Redinfo ; Redinfo
000000C0 7001 STRB R1,[R0,#0x0] ; Redinfo
75: UART0_SendByte(Redinfo);
000000C2 4800 LDR R0,=Redinfo ; Redinfo
000000C4 7800 LDRB R0,[R0,#0x0] ; Redinfo
000000C6 F7FF BL UART0_SendByte?T ; T=0x0001 (1)
000000C8 FF9B BL UART0_SendByte?T ; T=0x0001 (2)
76: Reddata>>=8;
000000CA 4800 LDR R0,=Reddata ; Reddata
000000CC 6801 LDR R1,[R0,#0x0] ; Reddata
000000CE 0A09 LSR R1,R1,#0x8
000000D0 4800 LDR R0,=Reddata ; Reddata
000000D2 6001 STR R1,[R0,#0x0] ; Reddata
77: Redinfo = Reddata; //用户反码
000000D4 4800 LDR R0,=Reddata ; Reddata
000000D6 6801 LDR R1,[R0,#0x0] ; Reddata
000000D8 0609 LSL R1,R1,#0x18
000000DA 0E09 LSR R1,R1,#0x18
000000DC 4800 LDR R0,=Redinfo ; Redinfo
000000DE 7001 STRB R1,[R0,#0x0] ; Redinfo
78: UART0_SendByte(Redinfo);
000000E0 4800 LDR R0,=Redinfo ; Redinfo
000000E2 7800 LDRB R0,[R0,#0x0] ; Redinfo
000000E4 F7FF BL UART0_SendByte?T ; T=0x0001 (1)
000000E6 FF8C BL UART0_SendByte?T ; T=0x0001 (2)
79: Reddata>>=8;
000000E8 4800 LDR R0,=Reddata ; Reddata
000000EA 6801 LDR R1,[R0,#0x0] ; Reddata
000000EC 0A09 LSR R1,R1,#0x8
000000EE 4800 LDR R0,=Reddata ; Reddata
000000F0 6001 STR R1,[R0,#0x0] ; Reddata
80: Redinfo = Reddata; //键值数据字节
000000F2 4800 LDR R0,=Reddata ; Reddata
000000F4 6801 LDR R1,[R0,#0x0] ; Reddata
000000F6 0609 LSL R1,R1,#0x18
000000F8 0E09 LSR R1,R1,#0x18
000000FA 4800 LDR R0,=Redinfo ; Redinfo
000000FC 7001 STRB R1,[R0,#0x0] ; Redinfo
81: UART0_SendByte(Redinfo);
000000FE 4800 LDR R0,=Redinfo ; Redinfo
00000100 7800 LDRB R0,[R0,#0x0] ; Redinfo
00000102 F7FF BL UART0_SendByte?T ; T=0x0001 (1)
00000104 FF7D BL UART0_SendByte?T ; T=0x0001 (2)
82: Reddata>>=8;
00000106 4800 LDR R0,=Reddata ; Reddata
ARM COMPILER V2.50a, main 16/06/07 08:25:44 PAGE 6
00000108 6801 LDR R1,[R0,#0x0] ; Reddata
0000010A 0A09 LSR R1,R1,#0x8
0000010C 4800 LDR R0,=Reddata ; Reddata
0000010E 6001 STR R1,[R0,#0x0] ; Reddata
83: Redinfo = Reddata; //键值数据反字节
00000110 4800 LDR R0,=Reddata ; Reddata
00000112 6801 LDR R1,[R0,#0x0] ; Reddata
00000114 0609 LSL R1,R1,#0x18
00000116 0E09 LSR R1,R1,#0x18
00000118 4800 LDR R0,=Redinfo ; Redinfo
0000011A 7001 STRB R1,[R0,#0x0] ; Redinfo
84: UART0_SendByte(Redinfo);
0000011C 4800 LDR R0,=Redinfo ; Redinfo
0000011E 7800 LDRB R0,[R0,#0x0] ; Redinfo
00000120 F7FF BL UART0_SendByte?T ; T=0x0001 (1)
00000122 FF6E BL UART0_SendByte?T ; T=0x0001 (2)
85: KeyDown=0;
00000124 2100 MOV R1,#0x0
00000126 4800 LDR R0,=KeyDown ; KeyDown
00000128 7001 STRB R1,[R0,#0x0] ; KeyDown
87: }
0000012A E7C0 B L_3 ; T=0x000000AE
0000012C ; SCOPE-END
0000012C B001 ADD R13,#0x4
0000012E BC08 POP {R3}
00000130 4718 BX R3
00000132 ENDP ; 'main'
Module Information Static
----------------------------------
code size = ------
data size = 6
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 + -