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

📄 fp3.s

📁 Version 6 Unix 核心源代码 Version 6 Unix 核心源代码
💻 S
字号:
/ fp3 -- floating simulationi.addx:	jsr	pc,setab	br	1fi.subx:	jsr	pc,setab	neg	bsign1:	tst	bsign	beq	reta	tst	asign	beq	retb	mov	areg+8,r1	sub	breg+8,r1	blt	1f	beq	2f	cmp	r1,$56.	bge	reta	mov	$breg,r0	br	4f1:	neg	r1	cmp	r1,$56.	bge	retb	mov	$areg,r04:	mov	r1,-(sp)	mov	(r0)+,r1	mov	(r0)+,r2	mov	(r0)+,r3	mov	(r0)+,r4	add	(sp),(r0)1:	clc	ror	r1	ror	r2	ror	r3	ror	r4	dec	(sp)	bgt	1b	mov	r4,-(r0)	mov	r3,-(r0)	mov	r2,-(r0)	mov	r1,-(r0)	tst	(sp)+2:	mov	$areg+8,r1	mov	$breg+8,r2	mov	$4,r0	cmp	asign,bsign	bne	4f	clc1:	adc	-(r1)	bcs	3f	add	-(r2),(r1)2:	dec	r0	bne	1b	br	5f3:	add	-(r2),(r1)	sec	br	2b	br	5f4:	clc1:	sbc	-(r1)	bcs	3f	sub	-(r2),(r1)2:	dec	r0	bne	1b	br	5f3:	sub	-(r2),(r1)	sec	br	2bsaret:	mov	$areg,r15:	tst	(r1)	bge	3f	mov	$areg+8,r1	mov	$4,r0	clc1:	adc	-(r1)	bcs	2f	neg	(r1)2:	dec	r0	bne	1b	neg	-(r1)3:	jsr	pc,norm	br	retaretb:	mov	$bsign,r1	mov	$asign,r2	mov	$6,r01:	mov	(r1)+,(r2)+	dec	r0	bne	1breta:	mov	r5,r2	mov	$asign,r0	tst	(r0)	beq	unflo	mov	aexp,r1	cmp	r1,$177	bgt	ovflo	cmp	r1,$-177	blt	unflo	add	$200,r1	swab	r1	clc	ror	r1	tst	(r0)+	bge	1f	bis	$100000,r11:	bic	$!177,(r0)	bis	(r0)+,r1	mov	r1,(r2)+	mov	(r0)+,(r2)+	bit	$m.ext,fpsr	beq	1f	mov	(r0)+,(r2)+	mov	(r0)+,(r2)+1:	rts	pcunflo:	clr	(r2)+	clr	(r2)+	bit	$m.ext,fpsr	beq	1f	clr	(r2)+	clr	(r2)+1:	rts	pcovflo:	bis	$2,fpsr			/ set v-bit (overflow)	jmp	reti.mulx:	jsr	pc,i.mul	br	sareti.modx:	jsr	pc,i.mul	jsr	pc,norm	mov	$asign,r0	mov	$bsign,r1	mov	$6,r21:	mov	(r0)+,(r1)+	dec	r2	bne	1b	clr	r0		/ count	mov	$200,r1		/ bit	clr	r2		/ reg offset1:	cmp	r0,aexp	bge	2f		/ in fraction	bic	r1,areg(r2)	br	3f2:	bic	r1,breg(r2)3:	inc	r0	clc	ror	r1	bne	1b	mov	$100000,r1	add	$2,r2	cmp	r2,$8	blt	1b	jsr	pc,norm	jsr	pc,reta	cmp	r5,$ac1	beq	1f	cmp	r5,$ac3	beq	1f	bit	$200,breg	bne	2f	clr	bsign2:	add	$8,r5	jsr	pc,retb	sub	$8,r51:	rts	pci.divx:	jsr	pc,setab	tst	bsign	beq	ovflo	sub	bexp,aexp	jsr	pc,xorsign	mov	r5,-(sp)	mov	$areg,r0	mov	(r0),r1	clr	(r0)+	mov	(r0),r2	clr	(r0)+	mov	(r0),r3	clr	(r0)+	mov	(r0),r4	clr	(r0)+	mov	$areg,r5	mov	$400,-(sp)1:	mov	$breg,r0	cmp	(r0)+,r1	blt	2f	bgt	3f	cmp	(r0)+,r2	blo	2f	bhi	3f	cmp	(r0)+,r3	blo	2f	bhi	3f	cmp	(r0)+,r4	bhi	3f2:	mov	$breg,r0	sub	(r0)+,r1	clr	-(sp)	sub	(r0)+,r2	adc	(sp)	clr	-(sp)	sub	(r0)+,r3	adc	(sp)	sub	(r0)+,r4	sbc	r3	adc	(sp)	sub	(sp)+,r2	adc	(sp)	sub	(sp)+,r1	bis	(sp),(r5)3:	asl	r4	rol	r3	rol	r2	rol	r1	clc	ror	(sp)	bne	1b	mov	$100000,(sp)	add	$2,r5	cmp	r5,$areg+8	blo	1b	tst	(sp)+	mov	(sp)+,r5	jmp	sareti.mul:	jsr	pc,setab	add	bexp,aexp	dec	aexp	jsr	pc,xorsign	mov	r5,-(sp)	mov	$breg+4,r5	bit	$m.ext,fpsr	beq	1f	add	$4,r51:	clr	r0	clr	r1	clr	r2	clr	r3	clr	r41:	asl	r0	bne	2f	inc	r0	tst	-(r5)2:	cmp	r0,$400	bne	2f	cmp	r5,$breg	bhi	2f	mov	$areg,r0	mov	r1,(r0)+	mov	r2,(r0)+	mov	r3,(r0)+	mov	r4,(r0)+	mov	(sp)+,r5	rts	pc2:	clc	ror	r1	ror	r2	ror	r3	ror	r4	bit	r0,(r5)	beq	1b	mov	r0,-(sp)	mov	$areg,r0	add	(r0)+,r1	clr	-(sp)	add	(r0)+,r2	adc	(sp)	clr	-(sp)	add	(r0)+,r3	adc	(sp)	add	(r0)+,r4	adc	r3	adc	(sp)	add	(sp)+,r2	adc	(sp)	add	(sp)+,r1	mov	(sp)+,r0	br	1bxorsign:	cmp	asign,bsign	beq	1f	mov	$-1,asign	rts	pc1:	mov	$1,asign	rts	pc

⌨️ 快捷键说明

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