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

📄 memmove.s

📁 这是一个同样来自贝尔实验室的和UNIX有着渊源的操作系统, 其简洁的设计和实现易于我们学习和理解
💻 S
字号:
TEXT memmove(SB), $0	MOVL	p1+0(FP), DI	MOVL	DI, AX			/* return value */	MOVL	p2+4(FP), SI	MOVL	n+8(FP), BX	CMPL	BX, $0	JGT	_ok	JEQ	_return			/* nothing to do if n == 0 */	MOVL	$0, SI			/* fault if n < 0 *//* * check and set for backwards: *	(p2 < p1) && ((p2+n) > p1) */_ok:	CMPL	SI, DI	JGT	_forward	JEQ	_return			/* nothing to do if p2 == p1 */	MOVL	SI, DX	ADDL	BX, DX	CMPL	DX, DI	JGT	_back/* * copy whole longs */_forward:	MOVL	BX, CX	CLD	SHRL	$2, CX	ANDL	$3, BX	REP;	MOVSL/* * copy the rest, by bytes */	JEQ	_return			/* flags set by above ANDL */	MOVL	BX, CX	REP;	MOVSB	RET/* * whole thing backwards has * adjusted addresses */_back:	ADDL	BX, DI	ADDL	BX, SI	STD	SUBL	$4, DI	SUBL	$4, SI/* * copy whole longs */	MOVL	BX, CX	SHRL	$2, CX	ANDL	$3, BX	REP;	MOVSL/* * copy the rest, by bytes */	JEQ	_return			/* flags set by above ANDL */	ADDL	$3, DI	ADDL	$3, SI	MOVL	BX, CX	REP;	MOVSB_return:	RET

⌨️ 快捷键说明

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