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

📄 swi_vec.lst

📁 看看ARM菜鸟在ARM7上写的操作系统——ARM圈圈操作系统 最近在ADuC7027上写了一个ARM_00_OS
💻 LST
字号:
AA MACRO ASSEMBLER RSWI_VEC                                                                 16/05/06 14:55:44 PAGE     1


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

LOC      OBJ             LINE     SOURCE

                          1     
                          2     
                          3     
                          4     
                          5     
                          6     
                          7     
                          8     
                          9     
                         10     
                         11     
                         12     
                         13     
                         14     
00000000                 15     AREA ?C?SWI, CODE, READONLY, ALIGN=2
                         16     
                         17     PUBLIC SWI_Handler?A, ?SWI?Table, ?SWI?Empty
                         18     
                         19     SWI_Handler?A    PROC CODE32
00000000 E92D5108        20             STMFD   SP!,{R3,R8,R12,LR} ; Store R3,R8,R12,LR register
00000004 E14F8000        21             MRS     R8,SPSR            ; 将SPSR放入R8中
00000008 E92D0100        22             STMFD   SP!,{R8}           ; 将R8压栈
0000000C E3180020        23             TST     R8,#0x20           ; SWI call from 
00000010 115E80B2        24             LDRNEH  R8,[LR,#-2]        ; Thumb: Load halfword instruction
00000014 120880FF        25             ANDNE   R8,R8,#0xFF        ;        extract SWI number
00000018 051E8004        26             LDREQ   R8,[LR,#-4]        ; ARM:   Load word     instruction
0000001C 03C884FF        27             BICEQ   R8,R8,#0xFF000000  ;        extract SWI number
                         28                                        ; R4 now contains SWI number
                         29     ; SWI Handler
                         30     ;       LDR     R12,[PC,#(?SWI?Table-$-8)] ; Maximum number of interrupts
                         31     ;       LDR     R12,[PC,#0x24]     ; Maximum number of interrupts
00000020 E28FC028        32             ADR     R12,?SWI?Table
00000024 E59CC000        33             LDR     R12,[R12]          ; load last SWI-Function-number
                         34     
00000028 E158000C        35             CMP     R8,R12                                             
0000002C CA000006        36             BGT     ?SWI?Empty         ; overflow
00000030 E28FC01C        37             ADR     R12,?SWI?Table+4
00000034 E79CC108        38             LDR     R12,[R12,R8,LSL #2]; SWI function address
00000038 E1A0E00F        39             MOV     LR,PC              ; Return address
0000003C E12FFF1C        40             BX      R12                ; Call SWI function
                         41              
00000040 E8BD0100        42                     LDMFD   SP!,{R8}           ;R8出栈
00000044 E16FF008        43                     MSR     SPSR_fsxc,R8       ;设置SPSR寄存器
00000048 E8FD9108        44             LDMFD   SP!,{R3,R8,R12,PC}^  ; Return
                         45     
0000004C                 46     ?SWI?Empty:
0000004C EAFFFFFE        47             B       $                  ; no existing SWI
                         48     
                         49     ; *** DO NOT MODIFY THIS PORTION OF THE FILE ***
00000050                 50     ?SWI?Table:                        ; Marker for LA Linker                       
                         51     ; 
                         52     ; The LA Linker inserts at this label
                         53     ;       DD      0                  ; <last SWI function number>
                         54     ;       DD      ?SWI?Empty         ; <entry for SWI function 0>
                         55     ;       DD      <SWI entry 1>
                         56     ;       DD      <SWI entry 2>
                         57     ;       DD           :
                         58     ; For non-existing SWI functions DD ?SWI?Empty is inserted
AA MACRO ASSEMBLER RSWI_VEC                                                                 16/05/06 14:55:44 PAGE     2

                         59     
                         60             ENDP
                         61     
                         62             END
AA MACRO ASSEMBLER RSWI_VEC                                                                 16/05/06 14:55:44 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 + -