|
发表于 2009-6-19 23:21:33
|
显示全部楼层
送你一段程序,好好读一下吧:
;=================================================================================================================
; change interface
; R0 mode
00105FF8 B510 PUSH {R4, LR}
00105FFA 4B13 LDR R3, [PC,#0x04C] ; R3 = [0x106048] =PIOA_SODR (0xFFFFF430)
00105FFC 2280 MOV R2, #128 ;
00105FFE 0092 LSL R2, R2, #2 ; R2 = 0x00000200
00106000 4912 LDR R1, [PC,#0x048] ; R1 = [0x10604C] =PIOA_CODR (0xFFFFF434)
00106002 4C10 LDR R4, [PC,#0x040] ; R4 = [0x106044] =0x08000010
00106004 2800 CMP R0, #0
00106006 D004 BEQ 0x106012 ; if(R0 == 0) then goto 0x106012
;-----------------------------------------------------------
00106008 2801 CMP R0, #1
0010600A D00A BEQ 0x106022 ; if(R0 == 1) then goto 0x106022
;-----------------------------------------------------------
0010600C 2802 CMP R0, #2
0010600E D00E BEQ 0x10602E ; if(R0 == 2) then goto 0x10602E
;-----------------------------------------------------------
00106010 BD10 POP {R4, PC}
;-----------------------------------------------------------
; R0 == 0
00106012 601C STR R4, [R3, #0]
00106014 2088 MOV R0, #136
00106016 0280 LSL R0, R0, #10
00106018 6008 STR R0, [R1, #0]
0010601A 0150 LSL R0, R2, #5
0010601C 6018 STR R0, [R3, #0]
0010601E 600A STR R2, [R1, #0]
00106020 BD10 POP {R4, PC}
;-----------------------------------------------------------
; R0 == 1
00106022 601A STR R2, [R3, #0]
00106024 20C0 MOV R0, #192
00106026 01C0 LSL R0, R0, #7
00106028 6008 STR R0, [R1, #0]
0010602A 600C STR R4, [R1, #0]
0010602C BD10 POP {R4, PC}
;-----------------------------------------------------------
; R0 == 2
0010602E 4808 LDR R0, [PC,#0x020]
00106030 6004 STR R4, [R0, #0]
00106032 4808 LDR R0, [PC,#0x020]
00106034 2310 MOV R3, #16
00106036 6003 STR R3, [R0, #0]
00106038 2098 MOV R0, #152
0010603A 0280 LSL R0, R0, #10
0010603C 6008 STR R0, [R1, #0]
0010603E 600A STR R2, [R1, #0]
00106040 BD10 POP {R4, PC}
;-----------------------------------------------------------
00106042 46C0 FB
00106044 08000010 DW 0x08000010
00106048 FFFFF430 DW 0xFFFFF430
0010604C FFFFF434 DW 0xFFFFF434
00106050 FFFFF414 DW 0xFFFFF414
00106054 FFFFF460 DW 0xFFFFF460
;================================================================================================================= |
|