⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.txt

📁 基于cortex arm stm32f103RB的智能卡(SmartCard)程序。编译通过
💻 TXT
📖 第 1 页 / 共 3 页
字号:
0002c8  7128              STRB     r0,[r5,#4]  ; SC_ADPU
0002ca  3308              ADDS     r3,r3,#8
0002cc  613c              STR      r4,[r7,#0x10]  ; i
                  |L3.718|
;;;260            {
;;;261              SC_ADPU.Body.Data[i] = CHV1[i];
0002ce  6938              LDR      r0,[r7,#0x10]  ; i
0002d0  5c19              LDRB     r1,[r3,r0]
0002d2  182a              ADDS     r2,r5,r0
0002d4  7151              STRB     r1,[r2,#5]
0002d6  1c40              ADDS     r0,r0,#1
0002d8  6138              STR      r0,[r7,#0x10]  ; i
0002da  7929              LDRB     r1,[r5,#4]  ; SC_ADPU
0002dc  4281              CMP      r1,r0
0002de  d8f6              BHI      |L3.718|
0002e0  e003              B        |L3.746|
                  |L3.738|
;;;262            }
;;;263            while(i < LCmax) 
;;;264            {    
;;;265              SC_ADPU.Body.Data[i++] = 0;
0002e2  1829              ADDS     r1,r5,r0
0002e4  714c              STRB     r4,[r1,#5]
0002e6  1c40              ADDS     r0,r0,#1
0002e8  6138              STR      r0,[r7,#0x10]  ; i
                  |L3.746|
0002ea  2814              CMP      r0,#0x14
0002ec  d3f9              BCC      |L3.738|
0002ee  e01c              B        |L3.810|
                  |L3.752|
;;;266            }
;;;267            SC_ADPU.Body.LE = 0;
;;;268    
;;;269            SC_Handler(&SCState, &SC_ADPU, &SC_Responce);
;;;270          }
;;;271        }
;;;272        else
;;;273        {
;;;274          if(((SC_Responce.SW1 << 8) | (SC_Responce.SW2)) == SC_OP_TERMINATED)
0002f0  4550              CMP      r0,r10
0002f2  d121              BNE      |L3.824|
;;;275          {
;;;276            /* Verify CHV1 (PIN1) ------------------------------------------------*/
;;;277            SC_ADPU.Header.CLA = SC_CLA_GSM11;
0002f4  702e              STRB     r6,[r5,#0]  ; SC_ADPU
;;;278            SC_ADPU.Header.INS = SC_VERIFY;
0002f6  2020              MOVS     r0,#0x20
0002f8  7068              STRB     r0,[r5,#1]  ; SC_ADPU
;;;279            SC_ADPU.Header.P1 = 0x00;
0002fa  70ac              STRB     r4,[r5,#2]  ; SC_ADPU
;;;280            SC_ADPU.Header.P2 = 0x01;
0002fc  2001              MOVS     r0,#1
0002fe  70e8              STRB     r0,[r5,#3]  ; SC_ADPU
;;;281            SC_ADPU.Body.LC = 0x08;
000300  2008              MOVS     r0,#8
;;;282    
;;;283            for(i = 0; i < SC_ADPU.Body.LC; i++)
000302  4b2a              LDR      r3,|L3.940|
000304  7128              STRB     r0,[r5,#4]  ; SC_ADPU
000306  3308              ADDS     r3,r3,#8
000308  613c              STR      r4,[r7,#0x10]  ; i
                  |L3.778|
;;;284            {
;;;285              SC_ADPU.Body.Data[i] = CHV1[i];
00030a  6938              LDR      r0,[r7,#0x10]  ; i
00030c  5c19              LDRB     r1,[r3,r0]
00030e  182a              ADDS     r2,r5,r0
000310  7151              STRB     r1,[r2,#5]
000312  1c40              ADDS     r0,r0,#1
000314  6138              STR      r0,[r7,#0x10]  ; i
000316  7929              LDRB     r1,[r5,#4]  ; SC_ADPU
000318  4281              CMP      r1,r0
00031a  d8f6              BHI      |L3.778|
00031c  e003              B        |L3.806|
                  |L3.798|
;;;286            }
;;;287            while(i < LCmax) 
;;;288            {    
;;;289              SC_ADPU.Body.Data[i++] = 0;
00031e  1829              ADDS     r1,r5,r0
000320  714c              STRB     r4,[r1,#5]
000322  1c40              ADDS     r0,r0,#1
000324  6138              STR      r0,[r7,#0x10]  ; i
                  |L3.806|
000326  2814              CMP      r0,#0x14
000328  d3f9              BCC      |L3.798|
                  |L3.810|
;;;290            }
;;;291            SC_ADPU.Body.LE = 0;
;;;292    
;;;293            SC_Handler(&SCState, &SC_ADPU, &SC_Responce);
00032a  4a1e              LDR      r2,|L3.932|
00032c  766c              STRB     r4,[r5,#0x19]  ; SC_ADPU
00032e  f1a2f1a2          SUB      r1,r2,#0x1a
000332  a802              ADD      r0,sp,#8
000334  f7fff7ff          BL       SC_Handler
                  |L3.824|
;;;294          }
;;;295        }
;;;296        /* Read Binary in IMSI ---------------------------------------------------*/
;;;297        if(((SC_Responce.SW1 << 8) | (SC_Responce.SW2)) == SC_OP_TERMINATED)
000338  f8bbf8bb          LDRH     r0,[r11,#0x14]  ; SC_Responce
00033c  ba40              REV16    r0,r0
00033e  4550              CMP      r0,r10
000340  d10d              BNE      |L3.862|
;;;298        {
;;;299          SC_ADPU.Header.CLA = SC_CLA_GSM11;
000342  702e              STRB     r6,[r5,#0]  ; SC_ADPU
;;;300          SC_ADPU.Header.INS = SC_READ_BINARY;
000344  20b0              MOVS     r0,#0xb0
000346  7068              STRB     r0,[r5,#1]  ; SC_ADPU
;;;301          SC_ADPU.Header.P1 = 0x00;
000348  70ac              STRB     r4,[r5,#2]  ; SC_ADPU
;;;302          SC_ADPU.Header.P2 = 0x00;
00034a  70ec              STRB     r4,[r5,#3]  ; SC_ADPU
;;;303          SC_ADPU.Body.LC = 0x00;
00034c  712c              STRB     r4,[r5,#4]  ; SC_ADPU
;;;304    
;;;305          SC_ADPU.Body.LE = 9;
00034e  2009              MOVS     r0,#9
;;;306    
;;;307          SC_Handler(&SCState, &SC_ADPU, &SC_Responce);
000350  4a14              LDR      r2,|L3.932|
000352  7668              STRB     r0,[r5,#0x19]  ; SC_ADPU
000354  f1a2f1a2          SUB      r1,r2,#0x1a
000358  a802              ADD      r0,sp,#8
00035a  f7fff7ff          BL       SC_Handler
                  |L3.862|
;;;308        }
;;;309        if(((SC_Responce.SW1 << 8) | (SC_Responce.SW2)) == SC_OP_TERMINATED)
00035e  f8bbf8bb          LDRH     r0,[r11,#0x14]  ; SC_Responce
000362  ba40              REV16    r0,r0
000364  4550              CMP      r0,r10
000366  d10e              BNE      |L3.902|
;;;310        {
;;;311          /* Copy the IMSI File content into IMSI_Content buffer */
;;;312          for(i = 0; i < SC_ADPU.Body.LE; i++)
000368  490e              LDR      r1,|L3.932|
00036a  613c              STR      r4,[r7,#0x10]  ; i
00036c  46bc              MOV      r12,r7
00036e  3923              SUBS     r1,r1,#0x23
000370  7e6b              LDRB     r3,[r5,#0x19]
000372  4620              MOV      r0,r4
000374  e005              B        |L3.898|
                  |L3.886|
;;;313          {
;;;314            IMSI_Content[i] =  SC_Responce.Data[i];
000376  f81bf81b          LDRB     r2,[r11,r0]
00037a  540a              STRB     r2,[r1,r0]
00037c  1c40              ADDS     r0,r0,#1
00037e  f8ccf8cc          STR      r0,[r12,#0x10]  ; i
                  |L3.898|
000382  4283              CMP      r3,r0
000384  d8f7              BHI      |L3.886|
                  |L3.902|
;;;315          }
;;;316        }
;;;317        /* Disable the Smartcard interface */
;;;318        SCState = SC_POWER_OFF;
000386  2005              MOVS     r0,#5
;;;319        SC_Handler(&SCState, &SC_ADPU, &SC_Responce);
000388  4a06              LDR      r2,|L3.932|
00038a  9002              STR      r0,[sp,#8]
00038c  f1a2f1a2          SUB      r1,r2,#0x1a
000390  a802              ADD      r0,sp,#8
000392  f7fff7ff          BL       SC_Handler
;;;320        CardInserted = 0;
000396  60bc              STR      r4,[r7,#8]  ; CardInserted
000398  e692              B        |L3.192|
;;;321      }
;;;322    }
                          ENDP

00039a  0000              DCW      0x0000
                  |L3.924|
00039c  40011000          DCD      0x40011000
                  |L3.928|
0003a0  40011800          DCD      0x40011800
                  |L3.932|
0003a4  0000002d          DCD      ||.bss||+0x2d
                  |L3.936|
0003a8  00000000          DCD      ||.data||
                  |L3.940|
0003ac  00000000          DCD      ||.constdata||

                          AREA ||i.RCC_Configuration||, CODE, READONLY, ALIGN=2

                  RCC_Configuration PROC
000000  b510              PUSH     {r4,lr}
000002  f7fff7ff          BL       RCC_DeInit
000006  f44ff44f          MOV      r4,#0x10000
00000a  4620              MOV      r0,r4
00000c  f7fff7ff          BL       RCC_HSEConfig
000010  f7fff7ff          BL       RCC_WaitForHSEStartUp
000014  4916              LDR      r1,|L4.112|
000016  7008              STRB     r0,[r1,#0]  ; HSEStartUpStatus
000018  7808              LDRB     r0,[r1,#0]  ; HSEStartUpStatus
00001a  2801              CMP      r0,#1
00001c  d122              BNE      |L4.100|
00001e  2010              MOVS     r0,#0x10
000020  f7fff7ff          BL       FLASH_PrefetchBufferCmd
000024  2002              MOVS     r0,#2
000026  f7fff7ff          BL       FLASH_SetLatency
00002a  2000              MOVS     r0,#0
00002c  f7fff7ff          BL       RCC_HCLKConfig
000030  2000              MOVS     r0,#0
000032  f7fff7ff          BL       RCC_PCLK2Config
000036  11a0              ASRS     r0,r4,#6
000038  f7fff7ff          BL       RCC_PCLK1Config
00003c  f44ff44f          MOV      r1,#0x1c0000
000040  4620              MOV      r0,r4
000042  f7fff7ff          BL       RCC_PLLConfig
000046  2001              MOVS     r0,#1
000048  f7fff7ff          BL       RCC_PLLCmd
                  |L4.76|
00004c  2039              MOVS     r0,#0x39
00004e  f7fff7ff          BL       RCC_GetFlagStatus
000052  2800              CMP      r0,#0
000054  d0fa              BEQ      |L4.76|
000056  2002              MOVS     r0,#2
000058  f7fff7ff          BL       RCC_SYSCLKConfig
                  |L4.92|
00005c  f7fff7ff          BL       RCC_GetSYSCLKSource
000060  2808              CMP      r0,#8
000062  d1fb              BNE      |L4.92|
                  |L4.100|
000064  2101              MOVS     r1,#1
000066  e8bde8bd          POP      {r4,lr}
00006a  2051              MOVS     r0,#0x51
00006c  f7fff7ff          B.W      RCC_APB2PeriphClockCmd
                          ENDP

                  |L4.112|
000070  00000000          DCD      ||.data||

                          AREA ||.data||, DATA, ALIGN=2

                  HSEStartUpStatus
000000  01000000          DCB      0x01,0x00,0x00,0x00
                  TimingDelay
000004  00000000          DCD      0x00000000
                  CardInserted
000008  00000000          DCD      0x00000000
                  CHV1Status
00000c  00000000          DCD      0x00000000
                  i
000010  00000000          DCD      0x00000000

                          AREA ||.constdata||, DATA, READONLY, ALIGN=0

                  MasterRoot
000000  3f00              DCB      0x3f,0x00
                  GSMDir
000002  7f20              DCB      0x7f,0x20
                  ICCID
000004  2fe2              DCB      0x2f,0xe2
                  IMSI
000006  6f07              DCB      0x6f,0x07
                  CHV1
000008  30303030          DCB      0x30,0x30,0x30,0x30
00000c  30303030          DCB      0x30,0x30,0x30,0x30

                          AREA ||.bss||, DATA, NOINIT, ALIGN=0

                  ICCID_Content
                          %        10
                  IMSI_Content
                          %        9
                  SC_ADPU
                          %        26
                  SC_Responce
                          %        22

                  __ARM_use_no_argv EQU 0

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -