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

📄 blocks.s

📁 ARM在Embest 下的 运用源码.可以直接在Embest下运行
💻 S
字号:
#/*        $Revision: 1.1.34.1 $:        
#        AREA Block, CODE, READONLY      /*  name this block of code */

.text
.equ	num, 20					/* Set number of words to be copied */

#        ENTRY            		/*  mark the first instruction to call */

start:
        LDR     r0, =src        /*  r0 = pointer to source block */
        LDR     r1, =dst        /*  r1 = pointer to destination block */
        MOV     r2, #num        /*  r2 = number of words to copy */

        MOV     sp, #0x400      /*  set up stack pointer (r13) */
blockcopy:       
        MOVS    r3,r2, LSR #3   /*  number of eight word multiples */
        BEQ     copywords    	/*  less than eight words to move ? */

        STMFD   sp!, {r4-r11}   /*  save some working registers */
octcopy:
        LDMIA   r0!, {r4-r11}   /*  load 8 words from the source */
        STMIA   r1!, {r4-r11}   /*  and put them at the destination */
        SUBS    r3, r3, #1              /*  decrement the counter */
        BNE     octcopy         /*  ... copy more */

        LDMFD   sp!, {r4-r11}   /*  don't need these now - restore originals */

copywords:
        ANDS    r2, r2, #7     	/*  number of odd words to copy */
        BEQ     stop           	/*  No words left to copy ? */
wordcopy:
        LDR     r3, [r0], #4  	/*  a word from the source */
        STR     r3, [r1], #4    /*  store a word to the destination */
        SUBS    r2, r2, #1    	/*  decrement the counter */
        BNE     wordcopy      	/*  ... copy more */

stop:
        MOV     r0, #0x18      	/*  angel_SWIreason_ReportException */
        LDR     r1, =0x20026  	/*  ADP_Stopped_ApplicationExit */
        SWI     0x123456       	/*  Angel semihosting ARM SWI */

#        AREA BlockData, DATA, READWRITE
.data
src:
     .long     1,2,3,4,5,6,7,8,1,2,3,4,5,6,7,8,1,2,3,4
dst:
     .long     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0

.end
#        END

⌨️ 快捷键说明

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