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

📄 copymblock.asm

📁 一个播放器 使用了evc 大家可以参考下 哦
💻 ASM
📖 第 1 页 / 共 2 页
字号:
	
; ======== loop 2 ======== 
; copy 4 words

	;; load the words
	ldr       r3, [r0]
	ldr       r4, [r0,#4]
	ldr       r5, [r0,#8]
	ldr       r6, [r0,#12]
	
	;; preload the n+2 stride
	& 0xf5d8f000		; pld[r8] loop n+2 src beginning
	& 0xf5d8f00f		; pld[r8,#f] loop n+2 src end
	add	r8,r2,r8	; r8 has pointer to next src line
	
	; add stride to src (for loop n+1)
	add       r0, r0, r2
	; add stride to dest (for this loop)
	add       r1, r1, r2

	str       r3, [r1]
	str       r4, [r1,#4]
	str       r5, [r1,#8]
	str       r6, [r1,#12]

		
; ======== loop 3 ======== 
; copy 4 words

	;; load the words
	ldr       r3, [r0]
	ldr       r4, [r0,#4]
	ldr       r5, [r0,#8]
	ldr       r6, [r0,#12]
	
	;; preload the n+2 stride
	& 0xf5d8f000		; pld[r8] loop n+2 src beginning
	& 0xf5d8f00f		; pld[r8,#f] loop n+2 src end
	add	r8,r2,r8	; r8 has pointer to next src line
	
	; add stride to src (for loop n+1)
	add       r0, r0, r2
	; add stride to dest (for this loop)
	add       r1, r1, r2

	str       r3, [r1]
	str       r4, [r1,#4]
	str       r5, [r1,#8]
	str       r6, [r1,#12]
	

; ======== loop 4 ======== 
; copy 4 words

	;; load the words
	ldr       r3, [r0]
	ldr       r4, [r0,#4]
	ldr       r5, [r0,#8]
	ldr       r6, [r0,#12]
	
	;; preload the n+2 stride
	& 0xf5d8f000		; pld[r8] loop n+2 src beginning
	& 0xf5d8f00f		; pld[r8,#f] loop n+2 src end
	add	r8,r2,r8	; r8 has pointer to next src line
	
	; add stride to src (for loop n+1)
	add       r0, r0, r2
	; add stride to dest (for this loop)
	add       r1, r1, r2

	str       r3, [r1]
	str       r4, [r1,#4]
	str       r5, [r1,#8]
	str       r6, [r1,#12]
	

; ======== loop 5 ======== 
; copy 4 words

	;; load the words
	ldr       r3, [r0]
	ldr       r4, [r0,#4]
	ldr       r5, [r0,#8]
	ldr       r6, [r0,#12]
	
	;; preload the n+2 stride
	& 0xf5d8f000		; pld[r8] loop n+2 src beginning
	& 0xf5d8f00f		; pld[r8,#f] loop n+2 src end
	add	r8,r2,r8	; r8 has pointer to next src line
	
	; add stride to src (for loop n+1)
	add       r0, r0, r2
	; add stride to dest (for this loop)
	add       r1, r1, r2

	str       r3, [r1]
	str       r4, [r1,#4]
	str       r5, [r1,#8]
	str       r6, [r1,#12]
	

; ======== loop 6 ======== 
; copy 4 words

	;; load the words
	ldr       r3, [r0]
	ldr       r4, [r0,#4]
	ldr       r5, [r0,#8]
	ldr       r6, [r0,#12]
	
	;; preload the n+2 stride
	& 0xf5d8f000		; pld[r8] loop n+2 src beginning
	& 0xf5d8f00f		; pld[r8,#f] loop n+2 src end
	add	r8,r2,r8	; r8 has pointer to next src line
	
	; add stride to src (for loop n+1)
	add       r0, r0, r2
	; add stride to dest (for this loop)
	add       r1, r1, r2

	str       r3, [r1]
	str       r4, [r1,#4]
	str       r5, [r1,#8]
	str       r6, [r1,#12]
	

; ======== loop 7 ======== 
; copy 4 words

	;; load the words
	ldr       r3, [r0]
	ldr       r4, [r0,#4]
	ldr       r5, [r0,#8]
	ldr       r6, [r0,#12]
	
	;; preload the n+2 stride
	& 0xf5d8f000		; pld[r8] loop n+2 src beginning
	& 0xf5d8f00f		; pld[r8,#f] loop n+2 src end
	add	r8,r2,r8	; r8 has pointer to next src line
	
	; add stride to src (for loop n+1)
	add       r0, r0, r2
	; add stride to dest (for this loop)
	add       r1, r1, r2

	str       r3, [r1]
	str       r4, [r1,#4]
	str       r5, [r1,#8]
	str       r6, [r1,#12]
	

; ======== loop 8 ======== 
; copy 4 words

	;; load the words
	ldr       r3, [r0]
	ldr       r4, [r0,#4]
	ldr       r5, [r0,#8]
	ldr       r6, [r0,#12]
	
	;; preload the n+2 stride
	& 0xf5d8f000		; pld[r8] loop n+2 src beginning
	& 0xf5d8f00f		; pld[r8,#f] loop n+2 src end
	add	r8,r2,r8	; r8 has pointer to next src line
	
	; add stride to src (for loop n+1)
	add       r0, r0, r2
	; add stride to dest (for this loop)
	add       r1, r1, r2

	str       r3, [r1]
	str       r4, [r1,#4]
	str       r5, [r1,#8]
	str       r6, [r1,#12]
	

; ======== loop 9 ======== 
; copy 4 words

	;; load the words
	ldr       r3, [r0]
	ldr       r4, [r0,#4]
	ldr       r5, [r0,#8]
	ldr       r6, [r0,#12]
	
	;; preload the n+2 stride
	& 0xf5d8f000		; pld[r8] loop n+2 src beginning
	& 0xf5d8f00f		; pld[r8,#f] loop n+2 src end
	add	r8,r2,r8	; r8 has pointer to next src line
	
	; add stride to src (for loop n+1)
	add       r0, r0, r2
	; add stride to dest (for this loop)
	add       r1, r1, r2

	str       r3, [r1]
	str       r4, [r1,#4]
	str       r5, [r1,#8]
	str       r6, [r1,#12]
	

; ======== loop 10 ======== 
; copy 4 words

	;; load the words
	ldr       r3, [r0]
	ldr       r4, [r0,#4]
	ldr       r5, [r0,#8]
	ldr       r6, [r0,#12]
	
	;; preload the n+2 stride
	& 0xf5d8f000		; pld[r8] loop n+2 src beginning
	& 0xf5d8f00f		; pld[r8,#f] loop n+2 src end
	add	r8,r2,r8	; r8 has pointer to next src line
	
	; add stride to src (for loop n+1)
	add       r0, r0, r2
	; add stride to dest (for this loop)
	add       r1, r1, r2

	str       r3, [r1]
	str       r4, [r1,#4]
	str       r5, [r1,#8]
	str       r6, [r1,#12]
	

; ======== loop 11 ======== 
; copy 4 words

	;; load the words
	ldr       r3, [r0]
	ldr       r4, [r0,#4]
	ldr       r5, [r0,#8]
	ldr       r6, [r0,#12]
	
	;; preload the n+2 stride
	& 0xf5d8f000		; pld[r8] loop n+2 src beginning
	& 0xf5d8f00f		; pld[r8,#f] loop n+2 src end
	add	r8,r2,r8	; r8 has pointer to next src line
	
	; add stride to src (for loop n+1)
	add       r0, r0, r2
	; add stride to dest (for this loop)
	add       r1, r1, r2

	str       r3, [r1]
	str       r4, [r1,#4]
	str       r5, [r1,#8]
	str       r6, [r1,#12]
	

; ======== loop 12 ======== 
; copy 4 words

	;; load the words
	ldr       r3, [r0]
	ldr       r4, [r0,#4]
	ldr       r5, [r0,#8]
	ldr       r6, [r0,#12]
	
	;; preload the n+2 stride
	& 0xf5d8f000		; pld[r8] loop n+2 src beginning
	& 0xf5d8f00f		; pld[r8,#f] loop n+2 src end
	add	r8,r2,r8	; r8 has pointer to next src line
	
	; add stride to src (for loop n+1)
	add       r0, r0, r2
	; add stride to dest (for this loop)
	add       r1, r1, r2

	str       r3, [r1]
	str       r4, [r1,#4]
	str       r5, [r1,#8]
	str       r6, [r1,#12]
	

; ======== loop 13 ======== 
; copy 4 words

	;; load the words
	ldr       r3, [r0]
	ldr       r4, [r0,#4]
	ldr       r5, [r0,#8]
	ldr       r6, [r0,#12]
	
	;; preload the n+2 stride
	& 0xf5d8f000		; pld[r8] loop n+2 src beginning
	& 0xf5d8f00f		; pld[r8,#f] loop n+2 src end
	add	r8,r2,r8	; r8 has pointer to next src line
	
	; add stride to src (for loop n+1)
	add       r0, r0, r2
	; add stride to dest (for this loop)
	add       r1, r1, r2

	str       r3, [r1]
	str       r4, [r1,#4]
	str       r5, [r1,#8]
	str       r6, [r1,#12]
	

; ======== loop 14 ======== 
; copy 4 words

	;; load the words
	ldr       r3, [r0]
	ldr       r4, [r0,#4]
	ldr       r5, [r0,#8]
	ldr       r6, [r0,#12]
	
	;; preload the n+2 stride
	& 0xf5d8f000		; pld[r8] loop n+2 src beginning
	& 0xf5d8f00f		; pld[r8,#f] loop n+2 src end
	add	r8,r2,r8	; r8 has pointer to next src line
	
	; add stride to src (for loop n+1)
	add       r0, r0, r2
	; add stride to dest (for this loop)
	add       r1, r1, r2

	str       r3, [r1]
	str       r4, [r1,#4]
	str       r5, [r1,#8]
	str       r6, [r1,#12]
	

; ======== loop 15 ======== 
; copy 4 words

	;; load the words
	ldr       r3, [r0]
	ldr       r4, [r0,#4]
	ldr       r5, [r0,#8]
	ldr       r6, [r0,#12]
	
	; add stride to src (for loop n+1)
	add       r0, r0, r2
	; add stride to dest (for this loop)
	add       r1, r1, r2

	str       r3, [r1]
	str       r4, [r1,#4]
	str       r5, [r1,#8]
	str       r6, [r1,#12]
	

; ======== loop 16 ======== 
; copy 4 words

	;; load the words
 	ldr       r3, [r0]	
	ldr       r4, [r0,#4]
	ldr       r5, [r0,#8]
	ldr       r6, [r0,#12]
	
	; add stride to dest (for this loop)
	add       r1, r1, r2

	str       r3, [r1]
	str       r4, [r1,#4]
	str       r5, [r1,#8]
	str       r6, [r1,#12]

; return
	ldmia     sp!, {r4 - r8, pc}  ; ldmfd

|$M223|

	ENDP  ; |CopyMBlock|, CopyMBlock

	END

⌨️ 快捷键说明

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