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

📄 memset.s

📁 这是一个同样来自贝尔实验室的和UNIX有着渊源的操作系统, 其简洁的设计和实现易于我们学习和理解
💻 S
字号:
	TEXT	memset(SB),$0#define	BDNZ	BC	16,0,	MOVW R3, p+0(FP)		/* R3 is pointer *//* * performance: *	about 100mbytes/sec (8k blocks) on a 603/105 without L2 cache *	drops to 40mbytes/sec (10k blocks) and 28mbytes/sec with 32k blocks */	MOVW	n+8(FP), R4		/* R4 is count */	CMP	R4, $0	BLE	ret	MOVW	c+4(FP), R5		/* R5 is char *//* * create 16 copies of c in R5 .. R8 */	RLWNM	$0, R5, $0xff, R5	RLWMI	$8, R5, $0xff00, R5	RLWMI	$16, R5, $0xffff0000, R5	MOVW	R5, R6	MOVW	R5, R7	MOVW	R5, R8/* * let STSW do the work for 16 characters or less; aligned and unaligned */	CMP	R4, $16	BLE	out/* * store enough bytes to align pointer */	ANDCC	$7,R3, R9	BEQ	l2	SUBC	R9, $8, R9	MOVW	R9, XER	STSW	R5, (R3)	ADD	R9, R3	SUB	R9, R4/* * store 16 at a time while there's room * STSW was used here originally, but it's `completion serialised' */l2:	SRAWCC	$4, R4, R9	BLE	out	MOVW	R9, CTRl3:	MOVW	R5, 0(R3)	ADD	$8, R3, R10	MOVW	R6, 4(R3)	MOVW	R7, 0(R10)	ADD	$8, R10, R3	MOVW	R8, 4(R10)	BDNZ	l3	RLWNMCC	$0, R4, $15, R4	/* residue */	BEQ	ret/* * store up to 16 bytes from R5 .. R8; aligned and unaligned */out:	MOVW	R4, XER	STSW	R5, (R3)ret:	MOVW	0(FP), R3	RETURN	END

⌨️ 快捷键说明

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