fltpr.s

来自「unix v7是最后一个广泛发布的研究型UNIX版本」· S 代码 · 共 130 行

S
130
字号
/ C library-- floating output.globl	pfloat.globl	pscien.globl	pgen.globl	fltused.globl	_ecvt.globl	_fcvt.globl	_gcvtfltused:		/ force loadingpgen:	mov	r3,-(sp)	mov	r0,-(sp)	tst	r2	bne	1f	mov	$6,(sp)1:	movf	(r4)+,fr0	movf	fr0,-(sp)	jsr	pc,_gcvt	add	$8+2+2,sp1:	tstb	(r3)+	bne	1b	dec	r3	rts	pcpfloat:	mov	$sign,-(sp)	mov	$decpt,-(sp)	tst	r2	bne	1f	mov	$6,r01:	mov	r0,-(sp)	mov	r0,ndigit	movf	(r4)+,fr0	movf	fr0,-(sp)	jsr	pc,_fcvt	add	$8+2+2+2,sp	tst	sign	beq	1f	movb	$'-,(r3)+1:	mov	decpt,r2	bgt	1f	movb	$'0,(r3)+1:	mov	r2,r1	ble	1f2:	movb	(r0)+,(r3)+	sob	r1,2b1:	mov	ndigit,r1	beq	1f	movb	$'.,(r3)+1:	neg	r2	ble	1f2:	dec	r1	blt	1f	movb	$'0,(r3)+	sob	r2,2b1:	tst	r1	ble	2f1:	movb	(r0)+,(r3)+	sob	r1,1b2:	rts	pcpscien:	mov	$sign,-(sp)	mov	$decpt,-(sp)	mov	r0,-(sp)	mov	r0,ndigit	tst	r2	bne	1f	mov	$6,(sp)1:	movf	(r4)+,fr0	movf	fr0,-(sp)	jsr	pc,_ecvt	add	$8+2+2+2,sp	tst	sign	beq	1f	movb	$'-,(r3)+1:	cmpb	(r0),$'0	bne	1f	inc	decpt1:	movb	(r0)+,(r3)+	movb	$'.,(r3)+	mov	ndigit,r1	dec	r1	ble	1f2:	movb	(r0)+,(r3)+	sob	r1,2b1:	movb	$'e,(r3)+	mov	decpt,r2	dec	r2	mov	r2,r1	bge	1f	movb	$'-,(r3)+	neg	r1	br	2f1:	movb	$'+,(r3)+2:	clr	r0	div	$10.,r0	add	$'0,r0	movb	r0,(r3)+	add	$'0,r1	movb	r1,(r3)+	rts	pc.datasign:	.=.+2ndigit:	.=.+2decpt:	.=.+2

⌨️ 快捷键说明

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