memmove.s

来自「一个通讯程序源码」· S 代码 · 共 65 行

S
65
字号
/+------------------------------------------------------------------/ memmove.s// $Id: memmove.s,v 1.3 1991/06/05 19:15:44 chip Exp $// Implementation of memmove(), which is inexplicably missing/ from the SCO Unix C library.// for profiling version,/ m4 profile.s memmove.s > memmove_p.s  # order is important!/ as -o memmove_p.o memmove_p.s/ / Note also that manually running memmove.s through m4 (instead of/ using as -m) before assembling will also save 100 or so bytes in/ the .o file for the non-profiling version./ /-------------------------------------------------------------------	.globl	memmovememmove:ifdef(`PROFILE',`	.bss.L1:	.=.+4	.text	mov	$.L1,%edx	.globl	_mcount	call	_mcount')	push	%edi	push	%esi	mov	12(%esp),%edi	mov	16(%esp),%esi	mov	20(%esp),%ecx	mov	%edi,%eax		/ return value: dest	jcxz	mm_exit	mov	%edi,%edx	sub	%esi,%edx	jb	mm_simple	cmp	%edx,%ecx	jb	mm_simple	add	%ecx,%edi	dec	%edi	add	%ecx,%esi	dec	%esi	std	rep; movsb	cld	jmp	mm_exitmm_simple:	cld	mov	%ecx,%edx	shr	$2,%ecx	rep; movs	mov	%edx,%ecx	and	$3,%ecx	rep; movsbmm_exit:	pop	%esi	pop	%edi	ret

⌨️ 快捷键说明

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