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

📄 alloc1.s

📁 UNIX v6源代码 这几乎是最经典的unix版本 unix操作系统设计和莱昂氏unix源代码分析都是用的该版
💻 S
字号:
.globl	plausible.globl	lookchar.globl	wc.globl	seekchar.globl	putchar.globl	allocate.globl	release.globl	stats.globl	w,r,a,l.globl	bufchar.globl	copy.globl	getbuf.globl	swap.globl fixct//	routine to copy the contents of one string/	to another.//	mov	source,r0/	mov	dest,r1/	jsr	pc,copy/	mov	r1,...//	on return, r1 points to the new string and should/	be saved.  r0 is preserved./copy:	mov	r0,-(sp)	mov	r2,-(sp)	mov	r3,-(sp)	jsr	pc,wc1:	jsr	pc,reset	mov	w(r0),r2	sub	a(r0),r2	/W-A	mov	l(r1),r3	sub	a(r1),r3	/L-A	cmp	r2,r3	ble	1f	jsr	pc,release	mov	r2,r0	jsr	pc,allocate	mov	4(sp),r0/1:	mov	a(r1),w(r1)	/rewind w pointer	mov	a(r0),-(sp)/4:	mov	(sp),0f	mov	afi,r0	sys	seek;0:.. ;0	/set input pointer	cmp	r2,$512.	ble	2f	mov	$512.,r3	/# output this time	mov	r3,0f	mov	r3,3f	add	r3,(sp)	sub	r3,r2	/# left to output	br	1f/2:	mov	r2,0f	mov	r2,3f	mov	r2,r3	clr	r2/1:	mov	afi,r0	sys	read;b1;0:..	bes	bad	cmp	r0,r3	bne	bad	mov	afout,r0	mov	(r1),0f	add	r3,(r1)	sys	seek;0:.. ;0	sys	write;b1;3:..	bes	bad	tst	r2	bgt	4b	tst	(sp)+	mov	4(sp),r0	/restore r0//	fix up read ptr of new string/1:	mov	r(r0),r2	sub	a(r0),r2	add	a(r1),r2	mov	r2,r(r1)//	restore and return/	mov	(sp)+,r3	mov	(sp)+,r2	mov	(sp)+,r0	rts	pc/bad:	mov	$1,r0	sys write;1f;2f-1f	41:	<error on copy\n>2:	.even//wc:	mov	r1,-(sp)	mov	r2,-(sp)	mov	r3,-(sp)	clr	r31:	cmp	r3,nbuf	bge	1f	mov	r3,r2	asl	r2	tst	w1(r2)	ble	2f	mov	r3,r1	ashc	$9.,r1	bic	$777,r1	add	$b1,r1	jsr	pc,clean2:	inc	r3	br	1b1:	jsr	pc,whead	mov	(sp)+,r3	mov	(sp)+,r2	mov	(sp)+,r1	rts	pcswap:	mov	w(r1),-(sp)	mov	w(r0),w(r1)	mov	(sp),w(r0)	mov	r(r1),(sp)	mov	r(r0),r(r1)	mov	(sp),r(r0)	mov	a(r1),(sp)	mov	a(r0),a(r1)	mov	(sp),a(r0)	mov	l(r1),(sp)	mov	l(r0),l(r1)	mov	(sp)+,l(r0)	rts	pc//////	mov	position,r0/	mov	...,r1/	jsr	pc,seekchar/seekchar:	mov	r1,-(sp)	mov	r0,-(sp)1:	mov	(sp),r0	add	a(r1),r0	cmp	r0,l(r1)	bhi	3f	mov	r0,r(r1)	cmp	r0,w(r1)	blo	1f	mov	r0,w(r1)	br	1f3:	mov	(sp),r0	jsr	pc,allocate	mov	2(sp),r0	jsr	pc,copy	jsr	pc,swap	jsr	pc,release	mov	2(sp),r1	br	1b1:	mov	(sp)+,r0	mov	(sp)+,r1	rts	pc/reset:	mov	r3,-(sp)	mov	r2,-(sp)	clr	r31:	cmp	r3,nbuf	bge	1f	mov	r3,r2	asl	r2	mov	$-1.,w1(r2)	clr	b1s(r2)	clr	b1e(r2)	clr	u1(r2)	inc	r3	br	1b1:	clr	flag	mov	(sp)+,r2	mov	(sp)+,r3	rts	pc/

⌨️ 快捷键说明

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