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

📄 spr32x32_8.s

📁 十七种模拟器源代码 非常有用的作课程设计不可缺少的
💻 S
📖 第 1 页 / 共 3 页
字号:
	shr	$16,%eax	shr	$16,%ebx	testb	%al,%al	jz	7f	movb	%al,%dl	movb	(%ecx,%edx),%al	movb	%al,31-2(%edi)7:	testb	%bl,%bl	jz	7f	movb	%bl,%dl	movb	(%ecx,%edx),%al	movb	%al,31-6(%edi)7:	testb	%ah,%ah	jz	7f	movb	%ah,%dl	movb	(%ecx,%edx),%al	movb	%al,31-3(%edi)7:	testb	%bh,%bh	jz	7f	movb	%bh,%dl	movb	(%ecx,%edx),%al	movb	%al,31-7(%edi)7:	movl	8(%esi),%eax	movl	12(%esi),%ebx	testb	%al,%al	jz	7f	movb	%al,%dl	movb	(%ecx,%edx),%al	movb	%al,31-8(%edi)7:	testb	%bl,%bl	jz	7f	movb	%bl,%dl	movb	(%ecx,%edx),%al	movb	%al,31-12(%edi)7:	testb	%ah,%ah	jz	7f	movb	%ah,%dl	movb	(%ecx,%edx),%al	movb	%al,31-9(%edi)7:	testb	%bh,%bh	jz	7f	movb	%bh,%dl	movb	(%ecx,%edx),%al	movb	%al,31-13(%edi)7:	shr	$16,%eax	shr	$16,%ebx	testb	%al,%al	jz	7f	movb	%al,%dl	movb	(%ecx,%edx),%al	movb	%al,31-10(%edi)7:	testb	%bl,%bl	jz	7f	movb	%bl,%dl	movb	(%ecx,%edx),%al	movb	%al,31-14(%edi)7:	testb	%ah,%ah	jz	7f	movb	%ah,%dl	movb	(%ecx,%edx),%al	movb	%al,31-11(%edi)7:	testb	%bh,%bh	jz	7f	movb	%bh,%dl	movb	(%ecx,%edx),%al	movb	%al,31-15(%edi)7:// Pfff !		movl	16(%esi),%eax	movl	16+4(%esi),%ebx	testb	%al,%al	jz	7f	movb	%al,%dl	movb	(%ecx,%edx),%al	movb	%al,15(%edi)7:	testb	%bl,%bl	jz	7f	movb	%bl,%dl	movb	(%ecx,%edx),%al	movb	%al,15-4(%edi)7:	testb	%ah,%ah	jz	7f	movb	%ah,%dl	movb	(%ecx,%edx),%al	movb	%al,15-1(%edi)7:	testb	%bh,%bh	jz	7f	movb	%bh,%dl	movb	(%ecx,%edx),%al	movb	%al,15-5(%edi)7:	shr	$16,%eax	shr	$16,%ebx	testb	%al,%al	jz	7f	movb	%al,%dl	movb	(%ecx,%edx),%al	movb	%al,15-2(%edi)7:	testb	%bl,%bl	jz	7f	movb	%bl,%dl	movb	(%ecx,%edx),%al	movb	%al,15-6(%edi)7:	testb	%ah,%ah	jz	7f	movb	%ah,%dl	movb	(%ecx,%edx),%al	movb	%al,15-3(%edi)7:	testb	%bh,%bh	jz	7f	movb	%bh,%dl	movb	(%ecx,%edx),%al	movb	%al,15-7(%edi)7:	movl	16+8(%esi),%eax	movl	16+12(%esi),%ebx	testb	%al,%al	jz	7f	movb	%al,%dl	movb	(%ecx,%edx),%al	movb	%al,15-8(%edi)7:	testb	%bl,%bl	jz	7f	movb	%bl,%dl	movb	(%ecx,%edx),%al	movb	%al,15-12(%edi)7:	testb	%ah,%ah	jz	7f	movb	%ah,%dl	movb	(%ecx,%edx),%al	movb	%al,15-9(%edi)7:	testb	%bh,%bh	jz	7f	movb	%bh,%dl	movb	(%ecx,%edx),%al	movb	%al,15-13(%edi)7:	shr	$16,%eax	shr	$16,%ebx	testb	%al,%al	jz	7f	movb	%al,%dl	movb	(%ecx,%edx),%al	movb	%al,15-10(%edi)7:	testb	%bl,%bl	jz	7f	movb	%bl,%dl	movb	(%ecx,%edx),%al	movb	%al,15-14(%edi)7:	testb	%ah,%ah	jz	7f	movb	%ah,%dl	movb	(%ecx,%edx),%al	movb	%al,15-11(%edi)7:	testb	%bh,%bh	jz	7f	movb	%bh,%dl	movb	(%ecx,%edx),%al	movb	%al,(%edi)7:			addl	$32,%esi		//	Next	Tile	Line	subl	$0xDEADBEEF,%edi	//	Next	Screen	Linebitw_07:	decl	%ebp	jne	9b		popl	%ebx	popl	%esi	popl	%edi	popl	%ebp	ret#define HANDLE_32 \	movl	(%esi),%eax   ;\	movl	4(%esi),%ebx  ;\	orl	%ecx,%eax     ;\	orl	%ecx,%ebx     ;\	movl	%eax,(%edi)   ;\	movl	%ebx,4(%edi)  ;\	movl	8(%esi),%eax  ;\	movl	12(%esi),%ebx ;\	orl	%ecx,%eax     ;\	orl	%ecx,%ebx     ;\	movl	%eax,8(%edi)  ;\	movl	%ebx,12(%edi) ;\                              ;\	movl	16(%esi),%eax ;\	movl	20(%esi),%ebx ;\	orl	%ecx,%eax     ;\	orl	%ecx,%ebx     ;\	movl	%eax,16(%edi)  ;\	movl	%ebx,20(%edi)  ;\	movl	16+8(%esi),%eax ;\	movl	16+12(%esi),%ebx ;\	orl	%ecx,%eax        ;\	orl	%ecx,%ebx        ;\	movl	%eax,16+8(%edi)  ;\	movl	%ebx,16+12(%edi) 	FUNC(Draw32x32)	pushl	%edi	pushl	%esi	pushl	%ebx	movl	16(%esp),%esi			// source	movl	24(%esp),%ebx			// y	movl	28(%esp),%eax			// cmap	sall	$2,%ebx	movb	%al,%ah				// cmap	movl	0xDEADBEEF(%ebx),%ediblin_08:	mov	%ax,%cx				// cmap	addl	20(%esp),%edi			// x	shll	$16,%ecx			// cmap	movl	$0xDEADBEEF,%edx		// screen widthbitw_08:	mov	%ax,%cx				// cmap	HANDLE_32			addl	$32,%esi	addl	%edx,%edi	HANDLE_32		addl	$32,%esi	addl	%edx,%edi		HANDLE_32		addl	$32,%esi	addl	%edx,%edi	HANDLE_32			addl	$32,%esi	addl	%edx,%edi		HANDLE_32		addl	$32,%esi	addl	%edx,%edi	HANDLE_32			addl	$32,%esi	addl	%edx,%edi		HANDLE_32		addl	$32,%esi	addl	%edx,%edi	HANDLE_32			addl	$32,%esi	addl	%edx,%edi	HANDLE_32			addl	$32,%esi	addl	%edx,%edi	HANDLE_32			addl	$32,%esi	addl	%edx,%edi	HANDLE_32			addl	$32,%esi	addl	%edx,%edi	HANDLE_32			addl	$32,%esi	addl	%edx,%edi	HANDLE_32			addl	$32,%esi	addl	%edx,%edi	HANDLE_32			addl	$32,%esi	addl	%edx,%edi	HANDLE_32			addl	$32,%esi	addl	%edx,%edi	HANDLE_32		popl	%ebx	popl	%esi	popl	%edi	ret#define HANDLE_32_FlipY ;\	movl	12(%esi),%eax ;\	movl	8(%esi),%ebx  ;\	orl	%ecx,%eax     ;\	orl	%ecx,%ebx     ;\	bswap	%eax          ;\	bswap	%ebx          ;\	movl	%eax,16(%edi)   ;\	movl	%ebx,16+4(%edi)  ;\	movl	4(%esi),%eax  ;\	movl	(%esi),%ebx   ;\	orl	%ecx,%eax     ;\	orl	%ecx,%ebx     ;\	bswap	%eax          ;\	bswap	%ebx          ;\	movl	%eax,16+8(%edi)  ;\	movl	%ebx,16+12(%edi) ;\	                      ;\	movl	16+12(%esi),%eax ;\	movl	16+8(%esi),%ebx  ;\	orl	%ecx,%eax     ;\	orl	%ecx,%ebx     ;\	bswap	%eax          ;\	bswap	%ebx          ;\	movl	%eax,(%edi)   ;\	movl	%ebx,4(%edi)  ;\	movl	16+4(%esi),%eax  ;\	movl	16(%esi),%ebx   ;\	orl	%ecx,%eax     ;\	orl	%ecx,%ebx     ;\	bswap	%eax          ;\	bswap	%ebx          ;\	movl	%eax,8(%edi)  ;\	movl	%ebx,12(%edi)	FUNC(Draw32x32_FlipY)	pushl	%edi	pushl	%esi	pushl	%ebx	movl	16(%esp),%esi			// source	movl	24(%esp),%ebx			// y	movl	28(%esp),%eax			// cmap	sall	$2,%ebx	movb	%al,%ah				// cmap	movl	0xDEADBEEF(%ebx),%ediblin_09:	mov	%ax,%cx				// cmap	addl	20(%esp),%edi			// x	shll	$16,%ecx			// cmap	movl	$0xDEADBEEF,%edx		// screen widthbitw_09:	mov	%ax,%cx				// cmap		HANDLE_32_FlipY		addl	$32,%esi	addl	%edx,%edi	HANDLE_32_FlipY		addl	$32,%esi	addl	%edx,%edi	HANDLE_32_FlipY		addl	$32,%esi	addl	%edx,%edi	HANDLE_32_FlipY	addl	$32,%esi	addl	%edx,%edi	HANDLE_32_FlipY	addl	$32,%esi	addl	%edx,%edi	HANDLE_32_FlipY		addl	$32,%esi	addl	%edx,%edi	HANDLE_32_FlipY		addl	$32,%esi	addl	%edx,%edi	HANDLE_32_FlipY		addl	$32,%esi	addl	%edx,%edi	HANDLE_32_FlipY		addl	$32,%esi	addl	%edx,%edi	HANDLE_32_FlipY	addl	$32,%esi	addl	%edx,%edi	HANDLE_32_FlipY	addl	$32,%esi	addl	%edx,%edi	HANDLE_32_FlipY		addl	$32,%esi	addl	%edx,%edi	HANDLE_32_FlipY	addl	$32,%esi	addl	%edx,%edi	HANDLE_32_FlipY	addl	$32,%esi	addl	%edx,%edi	HANDLE_32_FlipY	addl	$32,%esi	addl	%edx,%edi	HANDLE_32_FlipY		popl	%ebx	popl	%esi	popl	%edi	ret#define HANDLE_32_FlipX ;\	movl	(%esi),%eax  ;\	movl	4(%esi),%ebx ;\	orl	%ecx,%eax    ;\	orl	%ecx,%ebx    ;\	movl	%eax,(%edi)  ;\	movl	%ebx,4(%edi) ;\	movl	8(%esi),%eax ;\	movl	12(%esi),%ebx ;\	orl	%ecx,%eax     ;\	orl	%ecx,%ebx     ;\	movl	%eax,8(%edi)  ;\	movl	%ebx,12(%edi) ;\	                      ;\	movl	16(%esi),%eax  ;\	movl	16+4(%esi),%ebx ;\	orl	%ecx,%eax    ;\	orl	%ecx,%ebx    ;\	movl	%eax,16(%edi)  ;\	movl	%ebx,16+4(%edi) ;\	movl	16+8(%esi),%eax ;\	movl	16+12(%esi),%ebx ;\	orl	%ecx,%eax     ;\	orl	%ecx,%ebx     ;\	movl	%eax,16+8(%edi)  ;\	movl	%ebx,16+12(%edi)		FUNC(Draw32x32_FlipX)	pushl	%edi	pushl	%esi	pushl	%ebx	movl	16(%esp),%esi			// source	movl	24(%esp),%ebx			// y	movl	28(%esp),%eax			// cmap	sall	$2,%ebx	movb	%al,%ah				// cmap	movl	0xDEADBEEF(%ebx),%ediblin_10:	mov	%ax,%cx				// cmap	addl	20(%esp),%edi			// x	shll	$16,%ecx			// cmap	movl	$0xDEADBEEF,%edx		// screen widthbitw_10:	mov	%ax,%cx				// cmap		HANDLE_32_FlipX		addl	$32,%esi	subl	%edx,%edi	HANDLE_32_FlipX	addl	$32,%esi	subl	%edx,%edi	HANDLE_32_FlipX	addl	$32,%esi	subl	%edx,%edi	HANDLE_32_FlipX	addl	$32,%esi	subl	%edx,%edi	HANDLE_32_FlipX		addl	$32,%esi	subl	%edx,%edi	HANDLE_32_FlipX	addl	$32,%esi	subl	%edx,%edi	HANDLE_32_FlipX	addl	$32,%esi	subl	%edx,%edi	HANDLE_32_FlipX	addl	$32,%esi	subl	%edx,%edi	HANDLE_32_FlipX	addl	$32,%esi	subl	%edx,%edi	HANDLE_32_FlipX	addl	$32,%esi	subl	%edx,%edi	HANDLE_32_FlipX	addl	$32,%esi	subl	%edx,%edi	HANDLE_32_FlipX	addl	$32,%esi	subl	%edx,%edi	HANDLE_32_FlipX		addl	$32,%esi	subl	%edx,%edi	HANDLE_32_FlipX		addl	$32,%esi	subl	%edx,%edi	HANDLE_32_FlipX	addl	$32,%esi	subl	%edx,%edi	HANDLE_32_FlipX	popl	%ebx	popl	%esi	popl	%edi	ret#define HANDLE_32_FlipXY ;\	movl	16+12(%esi),%eax   ;\	movl	16+8(%esi),%ebx    ;\	orl	%ecx,%eax       ;\	orl	%ecx,%ebx       ;\	bswap	%eax            ;\	bswap	%ebx            ;\	movl	%eax,(%edi)     ;\	movl	%ebx,4(%edi)    ;\	movl	16+4(%esi),%eax ;\	movl	16(%esi),%ebx   ;\	orl	%ecx,%eax       ;\	orl	%ecx,%ebx       ;\	bswap	%eax            ;\	bswap	%ebx            ;\	movl	%eax,8(%edi)    ;\	movl	%ebx,12(%edi)   ;\	                        ;\	movl	12(%esi),%eax   ;\	movl	8(%esi),%ebx    ;\	orl	%ecx,%eax       ;\	orl	%ecx,%ebx       ;\	bswap	%eax            ;\	bswap	%ebx            ;\	movl	%eax,16(%edi)     ;\	movl	%ebx,16+4(%edi)    ;\	movl	4(%esi),%eax ;\	movl	(%esi),%ebx   ;\	orl	%ecx,%eax       ;\	orl	%ecx,%ebx       ;\	bswap	%eax            ;\	bswap	%ebx            ;\	movl	%eax,16+8(%edi)    ;\	movl	%ebx,16+12(%edi)	FUNC(Draw32x32_FlipXY)	pushl	%edi	pushl	%esi	pushl	%ebx	movl	16(%esp),%esi			// source	movl	24(%esp),%ebx			// y	movl	28(%esp),%eax			// cmap	sall	$2,%ebx	movb	%al,%ah				// cmap	movl	0xDEADBEEF(%ebx),%ediblin_11:	mov	%ax,%cx				// cmap	addl	20(%esp),%edi			// x	shll	$16,%ecx			// cmap	movl	$0xDEADBEEF,%edx		// screen widthbitw_11:	mov	%ax,%cx				// cmap	HANDLE_32_FlipXY			addl	$32,%esi	subl	%edx,%edi	HANDLE_32_FlipXY		addl	$32,%esi	subl	%edx,%edi	HANDLE_32_FlipXY	addl	$32,%esi	subl	%edx,%edi	HANDLE_32_FlipXY	addl	$32,%esi	subl	%edx,%edi	HANDLE_32_FlipXY		addl	$32,%esi	subl	%edx,%edi	HANDLE_32_FlipXY		addl	$32,%esi	subl	%edx,%edi	HANDLE_32_FlipXY		addl	$32,%esi	subl	%edx,%edi	HANDLE_32_FlipXY		addl	$32,%esi	subl	%edx,%edi	HANDLE_32_FlipXY		addl	$32,%esi	subl	%edx,%edi	HANDLE_32_FlipXY		addl	$32,%esi	subl	%edx,%edi	HANDLE_32_FlipXY	addl	$32,%esi	subl	%edx,%edi	HANDLE_32_FlipXY		addl	$32,%esi	subl	%edx,%edi	HANDLE_32_FlipXY		addl	$32,%esi	subl	%edx,%edi	HANDLE_32_FlipXY		addl	$32,%esi	subl	%edx,%edi	HANDLE_32_FlipXY		addl	$32,%esi	subl	%edx,%edi	HANDLE_32_FlipXY		popl	%ebx	popl	%esi	popl	%edi	ret// I leave the Draw32x32_Trans functions for now... Probably useless anyway	FUNC(init_spr32x32asm)	movl	GLOBL(GameBitmap),%eax	movl	(%eax),%eax		// Width		movl	%eax,bitw_00-4	movl	%eax,bitw_01-4	movl	%eax,bitw_02-4	movl	%eax,bitw_03-4	movl	%eax,bitw_04-4	movl	%eax,bitw_05-4	movl	%eax,bitw_06-4	movl	%eax,bitw_07-4	movl	%eax,bitw_08-4	movl	%eax,bitw_09-4	movl	%eax,bitw_10-4	movl	%eax,bitw_11-4	movl	GLOBL(GameBitmap),%eax	addl	$64,%eax		// Line 0	movl	%eax,blin_00-4	movl	%eax,blin_01-4	movl	%eax,blin_04-4	movl	%eax,blin_05-4	movl	%eax,blin_08-4	movl	%eax,blin_09-4	addl	$31*4,%eax		// Last line	movl	%eax,blin_02-4	movl	%eax,blin_03-4	movl	%eax,blin_06-4	movl	%eax,blin_07-4	movl	%eax,blin_10-4	movl	%eax,blin_11-4	ret

⌨️ 快捷键说明

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