pdmemcpy.asm

来自「2407嵌入式系统程序(c语言)」· 汇编 代码 · 共 40 行

ASM
40
字号
; void pdmemcpy(void *dmemdst[], void *pmemsrc[], unsigned int N);
; This function copies N words from pmem in program memory to dmem in data memory.


	
    .text
    .def	_pdmemcpy
;
; Start Of Main Code:
;

_pdmemcpy:
	sbrk #1

	; Local variables (and parameters) will be set up as follows:
	;
	; get arguments and place them properly - take the from the
	; software stack and place them into their correct positions
AR_SAVE .set ar3
AR_D .set ar4
AR_N .set ar5

NUM_PARAMS .set 3 ; Number of calling parameters
	lar AR_SAVE,*
	lar AR_D,*- ; XEXP
	lacl *-			
	lar AR_N,*-,AR_N
	mar *-,ar1 ; AR_N--
	adrk #NUM_PARAMS+3 ; ar1 = next empty point on stack (SP)
	sar AR_N,*

	rpt *,AR_D 
	tblr *+

	mar *,ar1   
	sar AR_SAVE,*
	lacl * ; Return pointer  
	sbrk #2
	ret

⌨️ 快捷键说明

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