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

📄 bmove.s

📁 操作系统SunOS 4.1.3版本的源码
💻 S
字号:
        .data        .asciz  "@(#)bmove.s 1.1 92/07/30 Copyr 1984 Sun Micro"        .even        .text				|       Copyright (c) 1984 by Sun Microsystems, Inc.#	bmove(int), bremove()#.globl	_bmove, _bremove.globl	_board, _pval, _amp, _flag, _eppos, _value, _bkpos.globl	_game# r0 -> d0# r1 -> d1# r2 -> d2# r3 -> d3# r4 -> a4atmp =  a0atmp1 = a1dtmp =  d5_bmove:	movl	_amp,a4			| mov	_amp,r4	movb	sp@(7),d3	extw	d3			| movb	2(sp),r3	/ to	movb	sp@(6),d2	extw	d2			| movb	3(sp),r2	/ from	movw	_value,a4@+		| mov	_value,(r4)+	movw	_flag,a4@+		| mov	_flag,(r4)+	movw	_eppos,a4@+		| mov	_eppos,(r4)+	movw	d2,a4@+			| mov	r2,(r4)+	movw	d3,a4@+			| mov	r3,(r4)+	aslw	#1,d2			| asl	r2	/ from as a word index	aslw	#1,d3			| asl	r3	/ to as word index	extl	d3	movl	d3,atmp	addl	#_board,atmp	movw	atmp@,d0		| mov	_board(r3),r0	movw	d0,a4@+			| mov	r0,(r4)+	beq	1f			| beq	1f	aslw	#1,d0			| asl	r0	extl	d0	movl	d0,atmp	addl	#_pval+12,atmp	movw	atmp@,dtmp	subw	dtmp,_value		| sub	_pval+12.(r0),_value1:	extl	d2	movl	d2,atmp	addl	#_board,atmp	movw	atmp@,d0		| mov	_board(r2),r0	extl	d3	movl	d3,atmp1	addl	#_board,atmp1	movw	d0,atmp1@		| mov	r0,_board(r3)	clrw	atmp@			| clr	_board(r2)	movw	#-1,_eppos		| mov	$-1,_eppos	aslw	#1,d0			| asl	r0	ble	error			| ble	error	movw	pc@(6-2,d0:w),dtmp	jmp	pc@(2,dtmp:w)		| jmp	*0f-2(r0)	/ type of man0:	.word	pmove-0b	.word	nmove-0b	.word	bmove-0b	.word	rmove-0b	.word	qmove-0b	.word	kmove-0berror:	jsr	_abort			| 3pmove:	subw	d3,d2			| sub	r3,r2	bge	1f			| bge	1f	negw	d2			| neg	r21:	cmpw	#2*1,d2			| cmp	r2,$2*1		/ ep capture	bne	1f			| bne	1f		extl	d3	movl	d3,atmp	addl	#_board,atmp	clrw	atmp@			| clr	_board(r3)	addl	#2*8,atmp	movw	#1,atmp@		| mov	$1,_board+[2*8.](r3)	movw	#4,a4@+			| mov	$4,(r4)+	movl	a4,_amp			| mov	r4,_amp	rts				| rts	pc1:	cmpw	#2*16,d2		| cmp	r2,$2*16.	/ double move	bne	1f			| bne	1f	movb	sp@(6),d2	extw	d2			| movb	3(sp),r2	addw	#8,d2			| add	$8,r2	movw	d2,_eppos		| mov	r2,_eppos	bra	move			| br	move1:	cmpw	#40*2,d3		| cmp	r3,$40.*2	blt	move			| blt	move	addw	#25,_value		| add	$25.,_value	cmpw	#48*2,d3		| cmp	r3,$48.*2	blt	move			| blt	move	addw	#50,_value		| add	$50.,_value	cmpw	#56*2,d3		| cmp	r3,$56.*2   / queen promotion	blt	move			| blt	move	addw	#625,_value		| add	$625.,_value	extl	d3	movl	d3,atmp	addl	#_board,atmp	movw	#5,atmp@		| mov	$5,_board(r3)	movw	#5,a4@+			| mov	$5,(r4)+	movl	a4,_amp			| mov	r4,_amp	rts				| rts	pcrmove:	cmpw	#2*7,d2			| cmp	r2,$2*7.	bne	1f			| bne	1f	movw	#~010,dtmp	andw	dtmp,_flag		| bic	$10,_flag	bra	move			| br	move1:	tstw	d2			| tst	r2	bne	move			| bne	move	movw	#~020,dtmp	andw	dtmp,_flag		| bic	$20,_flag	bra	move			| br	movekmove:	asrw	#1,d3			| asr	r3	movw	d3,_bkpos		| mov	r3,_bkpos	movw	#~030,dtmp	andw	dtmp,_flag		| bic	$30,_flag	cmpw	#2*4,d2			| cmp	r2,$2*4.	bne	2f			| bne	2f	cmpw	#6,d3			| cmp	r3,$6	/ kingside castle	bne	1f			| bne	1f	addqw	#1,_value		| inc	_value	movw	#4,_board+(2*5)		| mov	$4,_board+[2*5.]	clrw	_board+(2*7)		| clr	_board+[2*7.]	movw	#2,a4@+			| mov	$2,(r4)+	movl	a4,_amp			| mov	r4,_amp	rts				| rts	pc1:	cmpw	#2,d3			| cmp	r3,$2	/ queenside castle	bne	2f			| bne	2f	addqw	#1,_value		| inc	_value	movw	#4,_board+(2*3)		| mov	$4,_board+[2*3.]	clrw	_board+(2*0)		| clr	_board+[2*0.]	movw	#3,a4@+			| mov	$3,(r4)+	movl	a4,_amp			| mov	r4,_amp	rts				| rts	pc2:					| 	/ king move	tstw	_game			| tst	_game	bne	1f			| bne	1f	subw	#2,_value		| sub	$2,_value1:	clrw	a4@+			| clr	(r4)+	movl	a4,_amp			| mov	r4,_amp	rts				| rts	pcqmove:	tstw	_game			| tst	_game	bne	move			| bne	move	subqw	#1,_value		| dec	_value	bra	move			| br	movenmove:bmove:move:	movw	#1,a4@+			| mov	$1,(r4)+	movl	a4,_amp			| mov	r4,_amp	rts				| rts	pc_bremove:	movl	_amp,a4			| mov	_amp,r4	movw	a4@-,d0			| mov	-(r4),r0	movw	a4@-,d1			| mov	-(r4),r1	movw	a4@-,d3			| mov	-(r4),r3	movw	a4@-,d2			| mov	-(r4),r2	movw	a4@-,_eppos		| mov	-(r4),_eppos	movw	a4@-,_flag		| mov	-(r4),_flag	movw	a4@-,_value		| mov	-(r4),_value	movl	a4,_amp			| mov	r4,_amp	aslw	#1,d2			| asl	r2	aslw	#1,d3			| asl	r3	extl	d3	movl	d3,atmp	addl	#_board,atmp	extl	d2	movl	d2,atmp1	addl	#_board,atmp1	movw	atmp@,atmp1@		| mov	_board(r3),_board(r2)	movw	d1,atmp@		| mov	r1,_board(r3)	aslw	#1,d0			| asl	r0	movw	pc@(6,d0:w),dtmp	jmp	pc@(2,dtmp:w)		| jmp	*0f(r0)0:	.word	movek-0b	.word	movex-0b	.word	moveo-0b	.word	moveoo-0b	.word	movep-0b	.word	moveq-0bmovek:	asrw	#1,d2			| asr	r2	movw	d2,_bkpos		| mov	r2,_bkposmovex:	rts				| rts	pcmoveo:	movw	#4,_board+(2*7)		| mov	$4,_board+[2*7.]	clrw	_board+(2*5)		| clr	_board+[2*5]	movw	#4,_bkpos		| mov	$4,_bkpos	rts				| rts	pcmoveoo:	movw	#4,_board+(2*0)		| mov	$4,_board+[2*0]	clrw	_board+(2*3)		| clr	_board+[2*3]	movw	#4,_bkpos;			| mov	$4,_bkpos;	rts				| rts	pcmovep:	extl	d2	movl	d2,atmp	addl	#_board,atmp	movw	#1,atmp@		| mov	$1,_board(r2)	extl	d3	movl	d3,atmp	addl	#_board+(2*8),atmp	clrw	atmp@			| clr	_board+[2*8.](r3)	rts				| rts	pcmoveq:	extl	d2	movl	d2,atmp	addl	#_board,atmp	movw	#1,atmp@		| mov	$1,_board(r2)	rts				| rts	pc

⌨️ 快捷键说明

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