Код:
EXTI2_IRQHandler PROC
;;;2
;;;3 void EXTI2_IRQHandler (void)
000000 2000 MOVS r0,#0
;;;4 {
;;;5 uint8_t input_buff;
;;;6 uint8_t output_buff=0;
;;;7
;;;8
;;;9 EXTI_STB_ON;
000002 2202 MOVS r2,#2
000004 4b46 LDR r3,|L1.288|
000006 619a STR r2,[r3,#0x18]
;;;10
;;;11 input_buff=(uint8_t)(GPIOB->IDR)&0x00ff;
000008 4a46 LDR r2,|L1.292|
00000a 6812 LDR r2,[r2,#0]
00000c b2d1 UXTB r1,r2
;;;12 input_buff=0xFF;
00000e 21ff MOVS r1,#0xff
;;;13
;;;14 if(input_buff & 0x01)output_buff |=key_buff[0];
000010 f0110f01 TST r1,#1
000014 d002 BEQ |L1.28|
000016 4a44 LDR r2,|L1.296|
000018 7812 LDRB r2,[r2,#0] ; key_buff
00001a 4310 ORRS r0,r0,r2
|L1.28|
;;;15 if(input_buff & 0x02)output_buff |=key_buff[1];
00001c f0110f02 TST r1,#2
000020 d002 BEQ |L1.40|
000022 4a41 LDR r2,|L1.296|
000024 7852 LDRB r2,[r2,#1] ; key_buff
000026 4310 ORRS r0,r0,r2
|L1.40|
;;;16 if(input_buff & 0x04)output_buff |=key_buff[2];
000028 f0110f04 TST r1,#4
00002c d002 BEQ |L1.52|
00002e 4a3e LDR r2,|L1.296|
000030 7892 LDRB r2,[r2,#2] ; key_buff
000032 4310 ORRS r0,r0,r2
|L1.52|
;;;17 if(input_buff & 0x08)output_buff |=key_buff[3];
000034 f0110f08 TST r1,#8
000038 d002 BEQ |L1.64|
00003a 4a3b LDR r2,|L1.296|
00003c 78d2 LDRB r2,[r2,#3] ; key_buff
00003e 4310 ORRS r0,r0,r2
|L1.64|
;;;18 if(input_buff & 0x10)output_buff |=key_buff[4];
000040 f0110f10 TST r1,#0x10
000044 d002 BEQ |L1.76|
000046 4a38 LDR r2,|L1.296|
000048 7912 LDRB r2,[r2,#4] ; key_buff
00004a 4310 ORRS r0,r0,r2
|L1.76|
;;;19 if(input_buff & 0x20)output_buff |=key_buff[5];
00004c f0110f20 TST r1,#0x20
000050 d002 BEQ |L1.88|
000052 4a35 LDR r2,|L1.296|
000054 7952 LDRB r2,[r2,#5] ; key_buff
000056 4310 ORRS r0,r0,r2
|L1.88|
;;;20 if(input_buff & 0x40)output_buff |=key_buff[6];
000058 f0110f40 TST r1,#0x40
00005c d002 BEQ |L1.100|
00005e 4a32 LDR r2,|L1.296|
000060 7992 LDRB r2,[r2,#6] ; key_buff
000062 4310 ORRS r0,r0,r2
|L1.100|
;;;21 if(input_buff & 0x80)output_buff |=key_buff[7];
000064 f0110f80 TST r1,#0x80
000068 d002 BEQ |L1.112|
00006a 4a2f LDR r2,|L1.296|
00006c 79d2 LDRB r2,[r2,#7] ; key_buff
00006e 4310 ORRS r0,r0,r2
|L1.112|
;;;22
;;;23 GPIOB->ODR=output_buff;
000070 4a2c LDR r2,|L1.292|
000072 1d12 ADDS r2,r2,#4
000074 6010 STR r0,[r2,#0]
;;;24
;;;25 EXTI_STB_OFF;
000076 f44f3200 MOV r2,#0x20000
00007a 4b29 LDR r3,|L1.288|
00007c 619a STR r2,[r3,#0x18]
;;;26 EXTI->PR |=EXTI_PR_PR2;
00007e 4a2b LDR r2,|L1.300|
000080 6812 LDR r2,[r2,#0]
000082 f0420204 ORR r2,r2,#4
000086 4b29 LDR r3,|L1.300|
000088 601a STR r2,[r3,#0]
;;;27
;;;28 }
00008a 4770 BX lr
;;;29
ENDP