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

📄 qsort.s

📁 操作系统SunOS 4.1.3版本的源码
💻 S
字号:
	.seg	"data"	.asciz	"@(#)qsort.s 1.1 92/07/30 Copyr 1987 Sun Micro"	.seg	"text"!	Copyright (c) 1987 by Sun Microsystems, Inc.#include <sun4/asm_linkage.h>!	qsort(*int,*int)!! qsort interface to c!	qsort(from, to)! r0 -> i0 (this is used as a temporary)! r1 -> i1! r2 -> i2! r3 -> i3.global	_qsort_qsort:	mov	%o1, %o2		! mov	2(sp),r1	mov	%o0, %o1		! mov	4(sp),r2					! jsr	pc,qsort					! rts	pcqsort:	save	%sp, -SA(MINFRAME), %spqsort1:					! mov	r2,r3	sub	%i2, %i1, %i3		! sub	r1,r3	cmp	%i3, 4			! cmp	r3,$4	ble	done			! ble	done	nop	sra	%i3, 1, %i3		! asr	r3	bclr	3, %i3			! bic	$3,r3	add	%i3, %i1, %i3		! add	r1,r3	mov	%i1, %l1		! mov	r1,-(sp)	mov	%i2, %l2		! mov	r2,-(sp)loop:	cmp	%i1, %i3		! cmp	r1,r3	bgeu	loop1			! bhis	loop1	nop	ldsh	[%i1], %g1	ldsh	[%i3], %g2	cmp	%g1, %g2		! cmp	(r1),(r3)	ble,a	loop			! bgt	loop1	add	%i1, 4, %i1		! add	$4,r1					! br	looploop1:	cmp	%i2, %i3		! cmp	r2,r3	bleu	1f			! blos	1f	nop	sub	%i2, 4, %i2		! sub	$4,r2	mov	%i2, %i0		! mov	r2,r0	ldsh	[%i0], %g1	ldsh	[%i3], %g2	cmp	%g1, %g2		! cmp	(r0),(r3)	bge	loop1			! bge	loop1	nop	ldsh	[%i1], %i0		! mov	(r1),r0	ldsh	[%i2], %g1	sth	%g1, [%i1]		! mov	(r2),(r1)+	sth	%i0, [%i2]		! mov	r0,(r2)+	ldsh	[%i1 + 2], %i0		! mov	(r1),r0	ldsh	[%i2 + 2], %g1	sth	%g1, [%i1 + 2]		! mov	(r2),(r1)	sth	%i0, [%i2 + 2]		! mov	r0,(r2)					! cmp	-(r1),-(r2)	cmp	%i1, %i3		! cmp	r1,r3	bne	loop			! bne	loop	nop	b	loop			! mov	r2,r3	mov	%i2, %i3		! br	loop1:	cmp	%i1, %i3		! cmp	r1,r3	be	1f			! beq	1f	nop	ldsh	[%i1], %i0		! mov	(r1),r0	ldsh	[%i2], %g1	sth	%g1, [%i1]		! mov	(r2),(r1)+	sth	%i0, [%i2]		! mov	r0,(r2)+	ldsh	[%i1 + 2], %i0		! mov	(r1),r0	ldsh	[%i2 + 2], %g1	sth	%g1, [%i1 + 2]		! mov	(r2),(r1)	sth	%i0, [%i2 + 2]		! mov	r0,(r2)	b	loop1			! cmp	-(r1),-(r2)	mov	%i1, %i3		! mov	r1,r3					! br	loop11:	mov	%l2, %o2		! mov	(sp)+,r2	mov	%i3, %l2		! mov	r3,-(sp)	call	qsort			! mov	r3,r1	add	%i3, 4, %o1		! add	$4,r1					! jsr	pc,qsort	mov	%l2, %i2		! mov	(sp)+,r2	b	qsort1	mov	%l1, %i1		! mov	(sp)+,r1					! br	qsortdone:	ret	restore				! rts	pc!!	temporarily disabled!!	rti = 2				! rti = 2!	itinit()!.globl	_itinit!.globl	_intrp, _term!signal = 48			! signal = 48.!!_itinit:!	sys	signal; 1; 1!	bit	$1,r0!	bne	1f!	sys	signal; 1; _onhup!1:!	sys	signal; 2; 1!	bit	$1,r0!	bne	1f!	sys	signal; 2; onint!1:!	sys	signal; 3; 1!	rts	pc!!.globl	_onhup!_onhup:!	sys	signal; 1; 1!	sys	signal; 2; 1!	sys	signal; 3; 1!	jmp	_term!!onint:!	mov	r0,-(sp)!	sys	signal; 2; onint!	clr	r0!	sys	seek; 0; 2!	mov	2(sp),r0!	cmp	-6(r0),$sys+read!	bne	1f!	sub	$6,2(sp)!1:!	inc	_intrp!	mov	(sp)+,r0!	rti!!!	replaced by clock.c!!/	t = clock()!!.globl	_clock!_clock:!	sys	time!	mov	r0,-(sp)!	mov	r1,-(sp)!	sub	t+2,r1!	sbc	r0!	sub	t,r0!	mov	r1,r0!	mov	(sp)+,t+2!	mov	(sp)+,t!	rts	pc!!.bss!t:!	.skip 4				! :	.=.+4

⌨️ 快捷键说明

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