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

📄 testarm.s

📁 arm10_verilog.rar是基于arm10的verilog代码
💻 S
字号:
/*****************************************************************************$RCSfile: testarm.s,v $$Revision: 1.11 $$Author: kohlere $$Date: 1999/05/06 20:09:07 $$State: Exp $$Source: /home/lefurgy/tmp/ISC-repository/isc/hardware/ARM10/behavioral/testarm.s,v $*****************************************************************************/		begin:@set up a few register valuesAND 	R0, R0, #0	@R0 = 0AND 	R1, R1, #0	@R1 = 0AND 	R2, R2, #0	@R2 = 0AND 	R3, R3, #0	@R3 = 0ORR	R0, R0, #1	@R0 = 1ORR 	R1, R0, #2	@R1 = 3ADD	R2, R0, R1	@R2 = 4@test a simple loop, ends with R2=0, R1=-37 (0xFFFFFFDB)loop: SUB	R1, R1, #10	@R1 = R1 - 10 => -37SUBS	R2, R2, #1	@R2 = R2 - 1  => 0BNE 	loop@call some subroutinesBL	alu		@tests the alu functions (R0-R13 = 0)BL	stw		@tests simple store/load of wordsmov	sp, #1000	@Set up a Stack Pointer BL	testldmstm	@test ldm/stm functions of wordsBL	testswp		@test swp functionsBL	testmull	@test Signed/Unsigned MultiplicationBL	testmsr		@test MSR/MRS InstructionsBL	teststrh	@test Halfword/Byte Loads/Storesmov 	sp, #1000	@Reset the stack PointerBL	main		@Doesn't Work (wasn't linked)teststrh:mov 	R0, #0xff	@R0 = 0x000000ffmov 	R1, #0xaa00	@R1 = 0x0000aa00ORR 	R0,R0,R1	@R0 = 0x0000aaffmov 	R1, #0x550000	@R1 = 0x00550000ORR 	R0,R0,R1        @R0 = 0x0055aaffmov 	R1, #0x10000    @R1 = 0x00010000strh 	R0, [R1],#2     @[10000] = 0xXXXXaaffldr 	R6, [R1,#-2]    @R6 = 0xXXXXaaffstrh 	R0, [R1],#2     @[10000] = 0xaaffaaffldr 	R7, [R1,#-4]    @R7 = 0xaaffaaffldrh 	R2, [R1,#-2]    @R2 = 0x0000aaffldrsh 	R3, [R1,#-2]    @R3 = 0xffffaaffldrsb 	R4, [R1,#-2]    @R4 = 0xffffffffldrsb 	R5, [R1,#-1]    @R5 = 0xffffffaasub 	R1,R1,#4        @R1 = 0x10000str 	R0,[R1]         @[10000] = 0055aaffadd 	R1,R1,#1        @R1 = 0x10001ldr 	R9,[R1]         @R9 = 0xff0055aaadd 	R1,R1,#1        @R1 = 0x10002ldr 	R9,[R1]         @R9 = 0xaaff0055add 	R1,R1,#1        @R1 = 0x10003ldr	R9,[R1]         @R9 = 0x55aaff00sub 	R1,R1,#2        @R1 = 0x10001str 	R0,[R1]         @[10000] = 0x0055aaffldr 	R9,[R1]		@R9 = 0xff0055aasub 	R1,R1,#1        @R9 = 0x10000ldr 	R9,[R1]		@R9 = 0x0055aaffmov 	PC, R14		@Returnalu:	MOVS	R0, #-1		@R0 = -1 (0xFFFFFFFF)ADDS	R0, R0, #1	@R0 = 0SUBS	R0, R0, #1	@R0 = -1MOVS 	R2, #255	@R2 = 0x000000FFEORS	R1, R0, R2	@R1 = 0xFFFFFFFF00RSBS	R0, R0, #1	@R0 = 2ADCS	R0, R0, R0	@R0 = 4SBCS	R0, R0, R0	@R0 = -1RSCS	R2, R0, R2	@R2 = 0x000000FF)SUBS	R2, R2, #1	@R2 = 0x000000FE)ORRS	R1, R1, R2	@R1 = 0xFFFFFFFEMOVS	R0, #1		@R0 = 1BICS	R3, R0, R2	@R3 = 1ORRS   R1,R0,R1,LSR #28 @R1 = 0x0000000FADDS	R1, R1, #1	@R1 = 0x00000010ADDS	R0, R0, #65536 	@R0 = 0x00010001SUBS 	R0,R0,R3,LSL R1 @R0 = 0x00000001 (R0 = R0 - (R3 << 15))ANDS   R0,R0,R3,ROR #31 @R0 = 0x00000000 ADDS	R3,R3,R1,ASR #1 @R3 = 0x00000009ANDS	R2, R2, #0	@R2 = 0x00000000ANDS 	R1, R1, #0	@R1 = 0x00000000MOVS	PC, R14		@Returntestmull:mov 	R0, #2147483649	@R0 = 0x80000001mov	R1, #4		@R1 = 0x4UMULL 	R2,R3,R1,R0	@R2 = 0x4, R3 = 0x2SMULL 	R4,R5,R1,R0	@R4 = 0x4, R5 = 0xFFFFFFFEMOV 	PC, R14		@Returnstw:mov R0, #0		@R0 = 0x0mov R1, #10		@R1 = 0xAmov R2, #100		@R2 = 0x64mov R3, #1000		@R3 = 0x3E8mov R4, #32768		@R4 = 0x8000strt R1, [R4], #8	@R1 -> [R4], R4 += 8strt R2, [R4], #8	@R2 -> [R4], R4 += 8strt R3, [R4], #8	@R3 -> [R4], R4 += 8mov R1, #0		@R1 = 0mov R2, #0		@R2 = 0mov R3, #0		@R3 = 0ldr R1, [R4, #-8]!	@R4 -= 8, R1 = 0x3E8ldr R2, [R4, #-8]!	@R4 -= 8, @2 = 0x64ldr R3, [R4, #-8]!	@R4 -= 8, R3 = 0xAMOV     PC, R14         @Returntestldmstm:mov R0, #0		@R0=0	mov R1, #1		@R1=1mov R2, #2		@R2=2mov R3, #3		@R3=3mov R4, #65536		@R4=0x10000mov R5, #196608		@R5=0x30000mov R6, #458752		@R6=0x70000mov R7, #983040		@R7=0xF0000mov R8, #32768		@R8=0x8000mov R9, #16384		@R9=0x4000stmia r8!, {r0-r7}	@Store R0-R7, R8=8020ldmia r9, {r0-r7}       @clear R0-R7ldmdb r8!, {r0-r7}	@Load R0-R7, R8=8000stmib r8!, {r0-r7}	@Store R0-R7, R8=8020ldmia r9, {r0-r7}       @clear R0-R7ldmda r8!, {r0-r7}	@Load R0-R7, R8=8000stmda r8!, {r0-r7}	@Store R0-R7, R8=7FE0ldmia r9, {r0-r7}       @clear R0-R7ldmib r8!, {r0-r7}	@Load R0-R7, R8=8000stmdb r8!, {r0-r7}	@Store R0-R7, R8=7FE0ldmia r9, {r0-r7}       @clear R0-R7	ldmia r8!, {r0-r7}	@Load R0-R7, R8=8000ldmia r9, {r0-r7}       @clear R0-R7MOV     PC, R14         @Returntestswp:		@([8000] = 0x000000FF)mov R0, #0		@R0=0x0mov R1, #1		@R1=0x1mov R2, #2		@R2=0x2mov R3, #49152		@R3=0xC000swp R0, R1, [R3]        @R0 = 0xFF, [C000] = 0x1swp R2, R2, [R3]        @R2 = 0x1, [C000] = 0x2swp R2, R3, [R3]        @R2 = 0x2, [C000] = 0xC000swp R0, R0, [R3]        @R0 = 0xC000, [C000] = 0xFFswpb R0, R0, [R3]       @R0 = 0x000000FF, [C000] = 0x0swp R0, R0, [R3]        @R0 = 0x0, [C000] = 0x000000FFMOV     PC, R14         @Return@Tests for MSR/MRS Instructionstestmsr:mov R0, #16     @Set R0 to USR Modemov R1, #17     @Set R1 to FIQ Modemov R2, #18     @Set R2 to IRQ Modemov R3, #19     @Set R3 to SVC Modemov R4, #23     @Set R4 to ABT Modemov R5, #27     @Set R5 to UND modemov R6, #31     @Set R6 to SYS Modemov R7, #4026531840     @R7 = 0xF00000000mov R8, #2147483648     @R8 = 0x800000000MSR cpsr_all, R1                @CPSR = 0x00000011 (FIQ Mode)MSR spsr_all, R7                @SPSR_FIQ = 0xF0000000MRS R8, spsr                    @R16 = 0xF00000000MRS R9, spsr                    @R17 = 0xF00000000MRS R10, spsr                   @R18 = 0xF00000000MRS R11, spsr                   @R19 = 0xF00000000MRS R12, spsr                   @R20 = 0xF00000000MRS R13, spsr                   @R21 = 0xF00000000MRS R14, spsr                   @R22 = 0xF00000000MSR cpsr_all, R2                @CPSR = 0x00000012 (IRQ Mode)MSR spsr_all, R8                @SPSR_IRQ = 0x80000000MRS R13, spsr                   @R27 = 0x800000000MRS R14, spsr                   @R28 = 0x800000000MSR cpsr_all, R3                @CPSR = 0x00000013 (SVC Mode)MSR spsr_all, R7                @SPSR_SVC = 0xF0000000MRS R10, spsr                   @R10 = 0xF00000000mov R3, R14                     @Copy Link Register to R3MSR cpsr_all, R4                @CPSR = 0x00000017 (ABT Mode)MSR spsr_all, R8                @SPSR_ABT = 0x80000000MRS R13, spsr                   @R25 = 0x80000000MRS R14, spsr                   @R26 = 0x80000000MSR cpsr_all, R5                @CPSR = 0x0000001B (UND Mode)MSR spsr_all, R7                @SPSR_UND = 0xF0000000MRS R13, spsr                   @R29 = 0xF00000000MRS R14, spsr                   @R30 = 0xF00000000MSR cpsr_all, R6                @CPSR = 0x0000001F (SYS Mode)MRS R13, cpsr                   @R13 = 0x0000001Fmov R14, R3                     @Copy Link Register to R14MSR cpsr_all, R0                @CPSR = 0x00000010 (User Mode)MSR cpsr_all, R7                @CPSR = 0xF0000010MSR cpsr_flg, R8                @CPSR = 0x80000010MSR cpsr_flg, #2684354560       @CPSR = 0xA0000010MRS R9, cpsr                    @R9 = 0xA0000010mov PC, R14			@Return.text.align 0.global mainmain:        @ args = 0, pretend = 0, frame = 24        @ frame_needed = 1, current_function_anonymous_args = 0        mov     ip, sp        stmfd   sp!, {r4, fp, ip, lr, pc}        sub     fp, ip, #4        sub     sp, sp, #24        bl      __gccmain        mov     r3, #0        str     r3, [fp, #-40]        mov     r3, #0        str     r3, [fp, #-40].L2:        ldr     r3, [fp, #-40]        cmp     r3, #5        ble     .L5        b       .L3.L5:        ldr     r3, [fp, #-40]        cmp     r3, #1        bgt     .L6        ldr     r3, [fp, #-40]        mov     r2, r3        mov     r3, r2, asl #2        sub     r2, fp, #36        mov     r1, #1        str     r1, [r2, r3]        b       .L4.L6:        ldr     r3, [fp, #-40]        mov     r2, r3        mov     r3, r2, asl #2        sub     r2, fp, #36        ldr     ip, [fp, #-40]        sub     r1, ip, #1        mov     ip, r1        mov     r1, ip, asl #2        sub     ip, fp, #36        ldr     r4, [fp, #-40]        sub     lr, r4, #2        mov     r4, lr        mov     lr, r4, asl #2        sub     r4, fp, #36        ldr     r1, [ip, r1]        ldr     ip, [r4, lr]        add     r1, r1, ip        str     r1, [r2, r3].L7:.L4:        ldr     r3, [fp, #-40]        add     r2, r3, #1        str     r2, [fp, #-40]        b       .L2.L3:        mov     r0, #0        b       .L1.L1:        ldmea   fp, {r4, fp, sp, pc}

⌨️ 快捷键说明

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