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

📄 spc700.s

📁 SFC游戏模拟器 snes9x 1.43 的原代码
💻 S
📖 第 1 页 / 共 5 页
字号:
	call S9xAPUGetByte__FUl	movb APUBit,%cl	andl $255,%eax	andl $255,%ecx	sarl %cl,%eax	andl $1,%eax	addl $4,%esp	testl %eax,%eax	jne .L484	movb %al,APU_Carry.L484:	movl APUPC,%ecx	addl $3,%ecx	movl %ecx,APUPC	retApuOp6A:	movl APUPC,%eax	movw 1(%eax),%ax	andl $65535,%eax	movl %eax,%edx	movl %eax,APUAddress	shrl $13,%edx	andl $8191,%eax	movb %dl,APUBit	movl %eax,APUAddress	movb APU_Carry,%dl	testb %dl,%dl	je .L492	pushl %eax	call S9xAPUGetByte__FUl	xorl %edx,%edx	movb %al,%dl	movb APUBit,%al	andl $255,%eax	addl $4,%esp	btl %eax,%edx	jnc .L492	xorl %ecx,%ecx	movb %cl,APU_Carry.L492:	movl APUPC,%eax	addl $3,%eax	movl %eax,APUPC	retApuOp8A:	movl APUPC,%eax	movw 1(%eax),%ax	andl $65535,%eax	movl %eax,%edx	movl %eax,APUAddress	shrl $13,%edx	andl $8191,%eax	movb %dl,APUBit	movl %eax,APUAddress	movb APU_Carry,%dl	testb %dl,%dl	je .L502	pushl %eax	call S9xAPUGetByte__FUl	xorl %edx,%edx	movb %al,%dl	movb APUBit,%al	andl $255,%eax	addl $4,%esp	btl %eax,%edx	jnc .L504	xorl %ecx,%ecx	movb %cl,APU_Carry	jmp .L504.L502:	pushl %eax	call S9xAPUGetByte__FUl	xorl %edx,%edx	movb %al,%dl	movb APUBit,%al	andl $255,%eax	addl $4,%esp	btl %eax,%edx	jnc .L504	movl $1,%eax	movb %al,APU_Carry.L504:	movl APUPC,%edx	addl $3,%edx	movl %edx,APUPC	retApuOpAA:	movl APUPC,%eax	movw 1(%eax),%ax	andl $65535,%eax	movl %eax,%edx	movl %eax,APUAddress	shrl $13,%edx	andl $8191,%eax	movb %dl,APUBit	movl %eax,APUAddress	pushl %eax	call S9xAPUGetByte__FUl	movb APUBit,%cl	andl $255,%eax	andl $255,%ecx	sarl %cl,%eax	andl $1,%eax	addl $4,%esp	testb %al,%al	je .L512	movl $1,%ecx	movb %cl,APU_Carry	jmp .L513.L512:	movb %al,APU_Carry.L513:	movl APUPC,%eax	addl $3,%eax	movl %eax,APUPC	retApuOpCA:	movl APUPC,%eax	movw 1(%eax),%ax	andl $65535,%eax	movl %eax,%edx	movl %eax,APUAddress	shrl $13,%edx	andl $8191,%eax	movb %dl,APUBit	movl %eax,APUAddress	movb APU_Carry,%dl	testb %dl,%dl	je .L520	pushl %eax	pushl %eax	call S9xAPUGetByte__FUl	movb APUBit,%cl	movb %al,%dl	movl $1,%eax	andl $255,%ecx	sall %cl,%eax	orb %dl,%al	jmp .L523.L520:	pushl %eax	pushl %eax	call S9xAPUGetByte__FUl	movb APUBit,%cl	movb %al,%dl	movl $-2,%eax	andl $255,%ecx	roll %cl,%eax	andb %dl,%al.L523:	addl $4,%esp	andl $255,%eax	pushl %eax	call S9xAPUSetByte__FUcUl	addl $8,%esp	movl APUPC,%ecx	addl $3,%ecx	movl %ecx,APUPC	retApuOpEA:	movl APUPC,%eax	movw 1(%eax),%ax	andl $65535,%eax	movl %eax,APUAddress	movl %eax,%edx	andl $8191,%eax	shrl $13,%edx	pushl %eax	movb %dl,APUBit	movl %eax,APUAddress	pushl %eax	call S9xAPUGetByte__FUl	movb APUBit,%cl	movb %al,%dl	movl $1,%eax	andl $255,%ecx	sall %cl,%eax	xorb %dl,%al	addl $4,%esp	andl $255,%eax	pushl %eax	call S9xAPUSetByte__FUcUl	movl APUPC,%eax	addl $3,%eax	addl $8,%esp	movl %eax,APUPC	retApuOp0B:	movl APUPC,%eax	movb 1(%eax),%dl	xorl %eax,%eax	movb %dl,%al	pushl %eax	call S9xAPUGetByteZ__FUc	movb %al,Work8	movb %al,%dl	addb %al,%al	shrb $7,%dl	movb %al,Work8	movb %al,APU_Zero	movb %dl,APU_Carry	movl APUPC,%eax	movb 1(%eax),%cl	xorl %eax,%eax	movb %cl,%al	pushl %eax	movb Work8,%al	andl $255,%eax	pushl %eax	call S9xAPUSetByteZ__FUcUc	movl APUPC,%eax	addl $2,%eax	addl $12,%esp	movl %eax,APUPC	retApuOp0C:	movl APUPC,%eax	movw 1(%eax),%ax	andl $65535,%eax	movl %eax,APUAddress	pushl %eax	call S9xAPUGetByte__FUl	movb %al,%dl	movb %al,Work8	shrb $7,%dl	addb %al,%al	movb %dl,APU_Carry	movb %al,Work8	movb %al,APU_Zero	movl APUAddress,%edx	andl $255,%eax	pushl %edx	pushl %eax	call S9xAPUSetByte__FUcUl	movl APUPC,%ecx	addl $3,%ecx	addl $12,%esp	movl %ecx,APUPC	retApuOp1B:	movl APUPC,%edx	movb ApuX,%al	movb 1(%edx),%cl	addb %cl,%al	andl $255,%eax	pushl %eax	call S9xAPUGetByteZ__FUc	movb %al,Work8	movb %al,%cl	addb %al,%al	movl APUPC,%edx	shrb $7,%cl	movb %al,Work8	movb %al,APU_Zero	movb %cl,APU_Carry	movb ApuX,%al	movb 1(%edx),%cl	addb %cl,%al	andl $255,%eax	pushl %eax	movb Work8,%al	andl $255,%eax	pushl %eax	call S9xAPUSetByteZ__FUcUc	movl APUPC,%eax	addl $2,%eax	addl $12,%esp	movl %eax,APUPC	retApuOp1C:	movb ApuA,%al	movb %al,%dl	shrb $7,%dl	movb %dl,APU_Carry	movl APUPC,%edx	addb %al,%al	incl %edx	movb %al,ApuA	movb %al,APU_Zero	movl %edx,APUPC	retApuOp0D:	pushl %edi	pushl %esi	pushl %ebx	movb ApuP,%cl	movb APU_Zero,%dl	andb $60,%cl	movb %dl,%bl	movb %cl,ApuP	movzbl APU_Overflow,%esi	andb $128,%bl	movzbl APU_Carry,%edi	sall $6,%esi	andl $255,%ebx	andl $255,%ecx	testb %dl,%dl	jne .L552	movl %ebx,%eax	orb $2,%al	orl %edi,%eax	jmp .L556.L552:	movl %edi,%eax	orl %ebx,%eax.L556:	orl %esi,%eax	orl %ecx,%eax	movb ApuS,%cl	movl APURAM,%edx	movb %al,ApuP	andl $255,%ecx	movb %al,256(%edx,%ecx)	movb ApuS,%cl	movl APUPC,%eax	popl %ebx	decb %cl	incl %eax	popl %esi	movb %cl,ApuS	movl %eax,APUPC	popl %edi	retApuOp2D:	movb ApuS,%cl	movl APURAM,%edx	movb ApuA,%al	andl $255,%ecx	movb %al,256(%edx,%ecx)	movb ApuS,%dl	movl APUPC,%ecx	decb %dl	incl %ecx	movb %dl,ApuS	movl %ecx,APUPC	retApuOp4D:	movb ApuS,%cl	movl APURAM,%edx	movb ApuX,%al	andl $255,%ecx	movb %al,256(%edx,%ecx)	movb ApuS,%al	movl APUPC,%edx	decb %al	incl %edx	movb %al,ApuS	movl %edx,APUPC	retApuOp6D:	movb ApuS,%cl	movl APURAM,%edx	movb ApuY,%al	andl $255,%ecx	movb %al,256(%edx,%ecx)	movb ApuS,%cl	movl APUPC,%eax	decb %cl	incl %eax	movb %cl,ApuS	movl %eax,APUPC	retApuOp8E:	pushl %esi	pushl %ebx	movb ApuS,%dl	incb %dl	xorl %eax,%eax	movl APURAM,%ebx	movb %dl,%al	movb %dl,ApuS	movb 256(%ebx,%eax),%dl	movb %dl,%al	shrb $1,%al	movb %dl,%cl	notl %eax	andb $128,%cl	andl $1,%eax	movl %ecx,%esi	orb %al,%cl	movb %cl,APU_Zero	movb %dl,%al	movb %dl,%cl	andb $64,%al	andb $1,%cl	shrb $6,%al	movb %dl,ApuP	movb %cl,APU_Carry	movb %al,APU_Overflow	testb $32,%dl	je .L578	addl $256,%ebx.L578:	movl %ebx,APUDirectPage	movl APUPC,%ecx	popl %ebx	incl %ecx	popl %esi	movl %ecx,APUPC	retApuOpAE:	movb ApuS,%dl	incb %dl	xorl %eax,%eax	movb %dl,ApuS	movb %dl,%al	movl APURAM,%ecx	movl APUPC,%edx	movb 256(%ecx,%eax),%al	incl %edx	movb %al,ApuA	movl %edx,APUPC	retApuOpCE:	movb ApuS,%cl	incb %cl	xorl %eax,%eax	movl APURAM,%edx	movb %cl,ApuS	movb %cl,%al	movb 256(%edx,%eax),%al	movl APUPC,%edx	incl %edx	movb %al,ApuX	movl %edx,APUPC	retApuOpEE:	movb ApuS,%cl	incb %cl	xorl %eax,%eax	movl APURAM,%edx	movb %cl,ApuS	movb %cl,%al	movb 256(%edx,%eax),%al	movl APUPC,%edx	incl %edx	movb %al,ApuY	movl %edx,APUPC	retApuOp0E:	movl APUPC,%eax	movw 1(%eax),%ax	andl $65535,%eax	movl %eax,APUAddress	pushl %eax	call S9xAPUGetByte__FUl	movl APUAddress,%ecx	movb %al,%dl	pushl %ecx	movb ApuA,%cl	orb %cl,%al	andl $255,%eax	movb %dl,Work8	pushl %eax	call S9xAPUSetByte__FUcUl	movb Work8,%al	movb ApuA,%dl	movl APUPC,%ecx	andb %dl,%al	addl $12,%esp	addl $3,%ecx	movb %al,Work8	movb %al,APU_Zero	movl %ecx,APUPC	retApuOp4E:	movl APUPC,%eax	movw 1(%eax),%ax	andl $65535,%eax	movl %eax,APUAddress	pushl %eax	call S9xAPUGetByte__FUl	movl APUAddress,%ecx	pushl %ecx	movb %al,%dl	movb ApuA,%al	notb %al	andb %dl,%al	andl $255,%eax	movb %dl,Work8	pushl %eax	call S9xAPUSetByte__FUcUl	movb Work8,%al	movb ApuA,%cl	movl APUPC,%edx	andb %cl,%al	addl $12,%esp	addl $3,%edx	movb %al,Work8	movb %al,APU_Zero	movl %edx,APUPC	retApuOp0F:	pushl %ebp	pushl %edi	pushl %esi	pushl %ebx	movl APURAM,%edx	movl %edx,%eax	movb ApuS,%cl	movl APUPC,%ebx	decl %eax	andl $255,%ecx	subl %eax,%ebx	movw %bx,255(%edx,%ecx)	movb ApuS,%al	addb $-2,%al	movb APU_Zero,%dl	movb %al,ApuS	movb %dl,%al	movb ApuP,%cl	movzbl APU_Carry,%edi	andb $128,%al	andb $60,%cl	movzbl APU_Overflow,%esi	movl %eax,%ebp	movb %cl,ApuP	sall $6,%esi	andl $255,%ebp	andl $255,%ecx	testb %dl,%dl	jne .L603	movl %ebp,%eax	orb $2,%al	orl %edi,%eax	jmp .L607.L603:	movl %edi,%eax	orl %ebp,%eax.L607:	orl %esi,%eax	orl %ecx,%eax	movb ApuS,%cl	movl APURAM,%edx	movb %al,ApuP	andl $255,%ecx	movb %al,256(%edx,%ecx)	movb ApuP,%al	movb ApuS,%dl	orb $16,%al	decb %dl	andb $251,%al	movb %dl,ApuS	movb %al,ApuP	movl APURAM,%ecx	movb APUExtraRAM+0x20,%dl	movb APUExtraRAM+0x21,%al	popl %ebx	andl $255,%edx	andl $255,%eax	popl %esi	addl %ecx,%edx	sall $8,%eax	popl %edi	addl %eax,%edx	popl %ebp	movl %edx,APUPC	retApuOpEF:	movl APUPC,%edx	xorl %eax,%eax	incl %edx	movb %al,APUExecuting	movl %edx,APUPC	retApuOpFF:	movl APUPC,%eax	xorl %ecx,%ecx	incl %eax	movb %cl,APUExecuting	movl %eax,APUPC	retApuOp10:	movl APUPC,%ecx	movl %ecx,%edx	movb 1(%ecx),%al	addl $2,%edx	movb %al,Int8	subw APURAM,%dx	cbtw	addl %eax,%edx	movw %dx,Int16	movb APU_Zero,%al	testb %al,%al	jl .L617	xorl %eax,%eax	movw %dx,%ax	movl APURAM,%ecx	addl %ecx,%eax	movl %eax,APUPC	testb $0xff,Shutdown	jz .L627	movl APUWaitAddress1,%ecx	cmpl %ecx,%eax	je .L619	movl APUWaitAddress2,%edx	cmpl %edx,%eax	jne .L627.L619:	movl APUWaitCounter,%eax	testl %eax,%eax	jne .L620	movb CPUExecuting,%cl	testb %cl,%cl	jne .L621	movl NextEvent,%eax	movl %eax,CYCLES	SAVE_CYCLES	ccall S9xUpdateAPUTimer 	ret.L621:	movb %al,APUExecuting	ret.L620:	cmpl $1,%eax	jbe .L624	movl $1,%eax	movl %eax,APUWaitCounter	ret.L624:	decl %eax	movl %eax,APUWaitCounter	ret.L617:	addl $2,%ecx	movl %ecx,APUPC.L627:	retApuOp30:	movl APUPC,%ecx	movl %ecx,%edx	movb 1(%ecx),%al	addl $2,%edx	movb %al,Int8	subw APURAM,%dx	cbtw	addl %eax,%edx	movw %dx,Int16	movb APU_Zero,%al	testb %al,%al	jge .L629	xorl %eax,%eax	movw %dx,%ax	movl APURAM,%ecx	addl %ecx,%eax	movl %eax,APUPC	movb Shutdown,%dl	testb %dl,%dl	je .L639	movl APUWaitAddress1,%ecx	cmpl %ecx,%eax	je .L631	movl APUWaitAddress2,%edx	cmpl %edx,%eax	jne .L639.L631:	movl APUWaitCounter,%eax	testl %eax,%eax	jne .L632	movb CPUExecuting,%cl	testb %cl,%cl	jne .L633	movl NextEvent,%eax	movl %eax,CYCLES	SAVE_CYCLES	ccall S9xUpdateAPUTimer 	ret.L633:	movb %al,APUExecuting	ret.L632:	cmpl $1,%eax	jbe .L636	movl $1,%eax	movl %eax,APUWaitCounter	ret.L636:	decl %eax	movl %eax,APUWaitCounter	ret.L629:	addl $2,%ecx	movl %ecx,APUPC.L639:	retApuOp90:	movl APUPC,%ecx	movl %ecx,%edx	movb 1(%ecx),%al	addl $2,%edx	movb %al,Int8	subw APURAM,%dx	cbtw	addl %eax,%edx	movw %dx,Int16	movb APU_Carry,%al	testb %al,%al	jne .L641	xorl %eax,%eax	movw %dx,%ax	movl APURAM,%ecx	addl %ecx,%eax	movl %eax,APUPC	movb Shutdown,%dl	testb %dl,%dl	je .L651	movl APUWaitAddress1,%ecx	cmpl %ecx,%eax	je .L643	movl APUWaitAddress2,%edx	cmpl %edx,%eax	jne .L651.L643:	movl APUWaitCounter,%eax	testl %eax,%eax	jne .L644	movb CPUExecuting,%cl	testb %cl,%cl	jne .L645	movl NextEvent,%eax	movl %eax,CYCLES	SAVE_CYCLES	ccall S9xUpdateAPUTimer 		ret.L645:	movb %al,APUExecuting	ret.L644:	cmpl $1,%eax	jbe .L648	movl $1,%eax	movl %eax,APUWaitCounter	ret.L648:	decl %eax	movl %eax,APUWaitCounter	ret.L641:	addl $2,%ecx	movl %ecx,APUPC.L651:	retApuOpB0:	movl APUPC,%ecx	movl %ecx,%edx	movb 1(%ecx),%al	addl $2,%edx	movb %al,Int8	subw APURAM,%dx	cbtw	addl %eax,%edx	movw %dx,Int16	movb APU_Carry,%al	testb %al,%al	je .L653	xorl %eax,%eax	movw %dx,%ax	movl APURAM,%ecx	addl %ecx,%eax	movl %eax,APUPC	movb Shutdown,%dl	testb %dl,%dl	je .L663	movl APUWaitAddress1,%ecx	cmpl %ecx,%eax	je .L655	movl APUWaitAddress2,%edx	cmpl %edx,%eax	jne .L663.L655:	movl APUWaitCounter,%eax	testl %eax,%eax	jne .L656	movb CPUExecuting,%cl	testb %cl,%cl	jne .L657	movl NextEvent,%eax	movl %eax,CYCLES	SAVE_CYCLES	ccall S9xUpdateAPUTimer	ret.L657:	movb %al,APUExecuting	ret.L656:	cmpl $1,%eax	jbe .L660	movl $1,%eax	movl %eax,APUWaitCounter	ret.L660:	decl %eax	movl %eax,APUWaitCounter	ret.L653:	addl $2,%ecx	movl %ecx,APUPC.L663:	retApuOpD0:	movl APUPC,%ecx	movl %ecx,%edx	movb 1(%ecx),%al	addl $2,%edx	movb %al,Int8	subw APURAM,%dx	cbtw	addl %eax,%edx	movw %dx,Int16	movb APU_Zero,%al	testb %al,%al	je .L665	xorl %eax,%eax	movw %dx,%ax	movl APURAM,%ecx	addl %ecx,%eax	movl %eax,APUPC	movb Shutdown,%dl	testb %dl,%dl	je .L675	movl APUWaitAddress1,%ecx	cmpl %ecx,%eax	je .L667	movl APUWaitAddress2,%edx	cmpl %edx,%eax	jne .L675.L667:	movl APUWaitCounter,%eax	testl %eax,%eax	jne .L668	movb CPUExecuting,%cl	testb %cl,%cl	jne .L669	movl NextEvent,%eax	movl %eax,CYCLES	SAVE_CYCLES	ccall S9xUpdateAPUTimer 		ret.L669:	movb %al,APUExecuting	ret.L668:	cmpl $1,%eax	jbe .L672	movl $1,%eax	movl %eax,APUWaitCounter

⌨️ 快捷键说明

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