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

📄 cstr.s

📁 UNIX v6源代码 这几乎是最经典的unix版本 unix操作系统设计和莱昂氏unix源代码分析都是用的该版
💻 S
字号:
.globl jget,iget.globl succ.globl create,rewind,putchar,getchar,allocate.globl smark.globl rewcstr,putcstr,getcstr,size/ currnet string manipulations/ keep a initial fragment handy for quick access/go to allocator for the restsmark:	jsr	pc,jget	clr	cstrw	jmp	succrewcstr:	clr	cstrr	rts	pcputcstr:	mov	cstrw,r1	inc	cstrw	cmp	r1,$cstrt	/is it quick access?	bge	1f	movb	r0,cstrb(r1)	/yes, stash the char	rts	pc1:	bne	1f	mov	r0,-(sp)	/first char to allocator	mov	symp,r1	bne	2f	mov	$64,r0	jsr	pc,allocate	mov	r1,symp2:	jsr	pc,create	mov	(sp)+,r01:	mov	symp,r1	jsr	pc,putchar	rts	pcgetcstr:	mov	cstrr,r1	cmp	r1,cstrw	blt	1f	clr	r0	/end of string	rts	pc1:	inc	cstrr	cmp	r1,$cstrt	bge	1f	movb	cstrb(r1),r0	rts	pc1:	bne	1f	mov	symp,r1	jsr	pc,rewind1:	mov	symp,r1	jsr	pc,getchar	rts	pcsize:	jsr	pc,iget	mov	cstrw,(r0)	jmp	succcstrt = 16		/top of quick access current string.datasymp:	0	/pointer to dynamicallly allocated current stringcstrw:	0	/current string write pointer.bsscstrr:	.=.+2	/read pointercstrb:	.=.+cstrt	/base of quick access fragment

⌨️ 快捷键说明

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