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

📄 swi_vec.lst

📁 uCOS在LPC213X上的移植。适合ARM嵌入式系统初学者。
💻 LST
字号:
AA MACRO ASSEMBLER  SWI_VEC                                                                 22/12/07 19:56:45 PAGE     1


MACRO ASSEMBLER AA V2.00
OBJECT MODULE PLACED IN SWI_VEC.OBJ
ASSEMBLER INVOKED BY: C:\Keil\ARM\BIN\AA.exe SWI_VEC.S DEBUG EP

LOC      OBJ             LINE     SOURCE

                          1     
                          2     
                          3     
                          4     
                          5     
                          6     
                          7     
                          8     
                          9     
                         10     
                         11     
                         12     
                         13     
                         14     
                         15     
                         16     
                         17     
                         18     
                         19     
                         20     
                         21     
                         22     
                         23     
                         24     
                         25     
                         26     
                         27     
                         28     
                         29     
                         30     
                         31     
                         32     
                         33     
                         34     
00000000                 35     AREA ?C?SWI, CODE, READONLY, ALIGN=2
                         36     
                         37     PUBLIC SWI_Handler?A, ?SWI?Table, ?SWI?Empty
                         38     
                         39     SWI_Handler?A    PROC CODE32
00000000 E92D5108        40             STMFD   SP!,{R3,R8,R12,LR} ; Store R3,R8,R12,LR register
00000004 E14F8000        41             MRS     R8,SPSR            ; 将SPSR放入R8中
00000008 E92D0100        42             STMFD   SP!,{R8}           ; 将R8压栈
0000000C E3180020        43             TST     R8,#0x20           ; SWI call from 
00000010 115E80B2        44             LDRNEH  R8,[LR,#-2]        ; Thumb: Load halfword instruction
00000014 120880FF        45             ANDNE   R8,R8,#0xFF        ;        extract SWI number
00000018 051E8004        46             LDREQ   R8,[LR,#-4]        ; ARM:   Load word     instruction
0000001C 03C884FF        47             BICEQ   R8,R8,#0xFF000000  ;        extract SWI number
                         48                                        ; R4 now contains SWI number
                         49     ; SWI Handler
                         50     ;       LDR     R12,[PC,#(?SWI?Table-$-8)] ; Maximum number of interrupts
                         51     ;       LDR     R12,[PC,#0x24]     ; Maximum number of interrupts
00000020 E28FC028        52             ADR     R12,?SWI?Table
00000024 E59CC000        53             LDR     R12,[R12]          ; load last SWI-Function-number
                         54     
00000028 E158000C        55             CMP     R8,R12                                             
0000002C CA000006        56             BGT     ?SWI?Empty         ; overflow
00000030 E28FC01C        57             ADR     R12,?SWI?Table+4
00000034 E79CC108        58             LDR     R12,[R12,R8,LSL #2]; SWI function address
AA MACRO ASSEMBLER  SWI_VEC                                                                 22/12/07 19:56:45 PAGE     2

00000038 E1A0E00F        59             MOV     LR,PC              ; Return address
0000003C E12FFF1C        60             BX      R12                ; Call SWI function
                         61              
00000040 E8BD0100        62                     LDMFD   SP!,{R8}           ;R8出栈
00000044 E16FF008        63                     MSR     SPSR_fsxc,R8       ;设置SPSR寄存器
00000048 E8FD9108        64             LDMFD   SP!,{R3,R8,R12,PC}^  ; Return
                         65     
0000004C                 66     ?SWI?Empty:
0000004C EAFFFFFE        67             B       $                  ; no existing SWI
                         68     
                         69     ; *** DO NOT MODIFY THIS PORTION OF THE FILE ***
00000050                 70     ?SWI?Table:                        ; Marker for LA Linker                       
                         71     ; 
                         72     ; The LA Linker inserts at this label
                         73     ;       DD      0                  ; <last SWI function number>
                         74     ;       DD      ?SWI?Empty         ; <entry for SWI function 0>
                         75     ;       DD      <SWI entry 1>
                         76     ;       DD      <SWI entry 2>
                         77     ;       DD           :
                         78     ; For non-existing SWI functions DD ?SWI?Empty is inserted
                         79     
                         80             ENDP
                         81     
                         82             END
AA MACRO ASSEMBLER  SWI_VEC                                                                 22/12/07 19:56:45 PAGE     3

SYMBOL TABLE LISTING
------ ----- -------


N A M E             T Y P E  V A L U E     ATTRIBUTES

?C?SWI . . . . . .  C  SEG   0050H         REL=UNIT, ALN=BYTE
?SWI?Empty . . . .  C  ADDR  004CH     R   SEG=?C?SWI
?SWI?Table . . . .  C  ADDR  0050H     R   SEG=?C?SWI
SWI_Handler?A. . .  C  ADDR  0000H     R   SEG=?C?SWI

ASSEMBLY COMPLETE.  0 WARNING(S), 0 ERROR(S).

⌨️ 快捷键说明

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