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

📄 strcpy.s

📁 这是一个同样来自贝尔实验室的和UNIX有着渊源的操作系统, 其简洁的设计和实现易于我们学习和理解
💻 S
字号:
	TEXT	strcpy(SB), $0MOVW	R7, 0(FP)	MOVW	s1+0(FP), R9		/* R9 is to pointer */	MOVW	s2+4(FP), R10		/* R10 is from pointer *//* * test if both pointers * are similarly word aligned */	XOR	R9,R10, R7	ANDCC	$3,R7, R0	BNE	una/* * make byte masks */	MOVW	$0xff, R17	SLL	$8,R17, R16	SLL	$16,R17, R13	SLL	$24,R17, R12/* * byte at a time to word align */al1:	ANDCC	$3,R10, R0	BE	al2	MOVB	(R10), R11	ADD	$1, R10	MOVB	R11, (R9)	ADD	$1, R9	SUBCC	R0,R11, R0	BNE	al1	JMP	out/* * word at a time */al2:	ADD	$4, R9	MOVW	(R10), R11	/* fetch */	ADD	$4, R10	ANDCC	R12,R11, R0	/* is it byte 0 */	BE	b0	ANDCC	R13,R11, R0	/* is it byte 1 */	BE	b1	ANDCC	R16,R11, R0	/* is it byte 2 */	BE	b2	MOVW	R11, -4(R9)	/* store */	ANDCC	R17,R11, R0	/* is it byte 3 */	BNE	al2	JMP	outb0:	MOVB	R0, -4(R9)	JMP	outb1:	SRL	$24, R11	MOVB	R11, -4(R9)	MOVB	R0, -3(R9)	JMP	outb2:	SRL	$24,R11, R7	MOVB	R7, -4(R9)	SRL	$16, R11	MOVB	R11, -3(R9)	MOVB	R0, -2(R9)	JMP	outuna:	MOVB	(R10), R11	ADD	$1, R10	MOVB	R11, (R9)	ADD	$1, R9	SUBCC	R0,R11, R0	BNE	unaout:	MOVW	s1+0(FP),R7	RETURN

⌨️ 快捷键说明

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