📄 spr32x32_8.s
字号:
cmp $0xDEADBEEF,%esiendc_03: jne 9b popl %ebx popl %esi popl %edi popl %ebp ret // Arg ! I have nothing rest to pair with the ret // instruction : Here is a waste of 1/2 cycle ... :-)FUNC(Draw32x32_Trans_Mapped) movl 12(%esp),%eax // y movl 4(%esp),%edx // source shll $2,%eax addl $32*32,%edx // tile end pushl %ebp pushl %edi pushl %esi pushl %ebx movl %edx,endc_04-4 movl 20(%esp),%esi // source movl 32(%esp),%ebp // cmap movl 0xDEADBEEF(%eax),%ediblin_04: addl 24(%esp),%edi // x xorl %eax,%eax // pixels 0, 1, 4 and 5 of the line xorl %ebx,%ebx xorl %ecx,%ecx xorl %edx,%edx jmp 9f.align 89: movb (%esi),%al movb 4(%esi),%bl movb 1(%esi),%cl movb 5(%esi),%dl testb %al,%al jz 7f movb (%ebp,%eax),%al movb %al,(%edi)7: testb %bl,%bl jz 7f movb (%ebp,%ebx),%bl movb %bl,4(%edi)7: testb %cl,%cl jz 7f movb (%ebp,%ecx),%cl movb %cl,1(%edi)7: testb %dl,%dl jz 7f movb (%ebp,%edx),%dl movb %dl,5(%edi)7: movb 2(%esi),%al movb 6(%esi),%bl movb 3(%esi),%cl movb 7(%esi),%dl testb %al,%al jz 7f movb (%ebp,%eax),%al movb %al,2(%edi)7: testb %bl,%bl jz 7f movb (%ebp,%ebx),%bl movb %bl,6(%edi)7: testb %cl,%cl jz 7f movb (%ebp,%ecx),%cl movb %cl,3(%edi)7: testb %dl,%dl jz 7f movb (%ebp,%edx),%dl movb %dl,7(%edi)7: movb 8(%esi),%al movb 12(%esi),%bl movb 9(%esi),%cl movb 13(%esi),%dl testb %al,%al jz 7f movb (%ebp,%eax),%al movb %al,8(%edi)7: testb %bl,%bl jz 7f movb (%ebp,%ebx),%bl movb %bl,12(%edi)7: testb %cl,%cl jz 7f movb (%ebp,%ecx),%cl movb %cl,9(%edi)7: testb %dl,%dl jz 7f movb (%ebp,%edx),%dl movb %dl,13(%edi) movb 10(%esi),%al movb 14(%esi),%bl movb 11(%esi),%cl movb 15(%esi),%dl testb %al,%al jz 7f movb (%ebp,%eax),%al movb %al,10(%edi)7: testb %bl,%bl jz 7f movb (%ebp,%ebx),%bl movb %bl,14(%edi)7: testb %cl,%cl jz 7f movb (%ebp,%ecx),%cl movb %cl,11(%edi)7: testb %dl,%dl jz 7f movb (%ebp,%edx),%dl movb %dl,15(%edi)// Copy / paste always... How long... 7: movb 16(%esi),%al movb 16+4(%esi),%bl movb 16+1(%esi),%cl movb 16+5(%esi),%dl testb %al,%al jz 7f movb (%ebp,%eax),%al movb %al,16(%edi)7: testb %bl,%bl jz 7f movb (%ebp,%ebx),%bl movb %bl,16+4(%edi)7: testb %cl,%cl jz 7f movb (%ebp,%ecx),%cl movb %cl,16+1(%edi)7: testb %dl,%dl jz 7f movb (%ebp,%edx),%dl movb %dl,16+5(%edi)7: movb 16+2(%esi),%al movb 16+6(%esi),%bl movb 16+3(%esi),%cl movb 16+7(%esi),%dl testb %al,%al jz 7f movb (%ebp,%eax),%al movb %al,16+2(%edi)7: testb %bl,%bl jz 7f movb (%ebp,%ebx),%bl movb %bl,16+6(%edi)7: testb %cl,%cl jz 7f movb (%ebp,%ecx),%cl movb %cl,16+3(%edi)7: testb %dl,%dl jz 7f movb (%ebp,%edx),%dl movb %dl,16+7(%edi)7: movb 16+8(%esi),%al movb 16+12(%esi),%bl movb 16+9(%esi),%cl movb 16+13(%esi),%dl testb %al,%al jz 7f movb (%ebp,%eax),%al movb %al,16+8(%edi)7: testb %bl,%bl jz 7f movb (%ebp,%ebx),%bl movb %bl,16+12(%edi)7: testb %cl,%cl jz 7f movb (%ebp,%ecx),%cl movb %cl,16+9(%edi)7: testb %dl,%dl jz 7f movb (%ebp,%edx),%dl movb %dl,16+13(%edi)7: movb 16+10(%esi),%al movb 16+14(%esi),%bl movb 16+11(%esi),%cl movb 16+15(%esi),%dl testb %al,%al jz 7f movb (%ebp,%eax),%al movb %al,16+10(%edi)7: testb %bl,%bl jz 7f movb (%ebp,%ebx),%bl movb %bl,16+14(%edi)7: testb %cl,%cl jz 7f movb (%ebp,%ecx),%cl movb %cl,16+11(%edi)7: testb %dl,%dl jz 7f movb (%ebp,%edx),%dl movb %dl,16+15(%edi)7: addl $32,%esi // Next Tile Line addl $0xDEADBEEF,%edi // Next Screen Linebitw_04: cmp $0xDEADBEEF,%esiendc_04: jne 9b popl %ebx popl %esi popl %edi popl %ebp retFUNC(Draw32x32_Trans_Mapped_FlipY) pushl %ebp pushl %edi pushl %esi pushl %ebx movl 28(%esp),%eax // y xorl %edx,%edx sall $2,%eax movl 20(%esp),%esi // source movl 0xDEADBEEF(%eax),%ediblin_05: movl 32(%esp),%ecx // cmap movl $32,%ebp // Tile Height addl 24(%esp),%edi // x9: movl (%esi),%eax movl 4(%esi),%ebx testb %al,%al jz 7f movb %al,%dl movb (%ecx,%edx),%al movb %al,31(%edi)7: testb %bl,%bl jz 7f movb %bl,%dl movb (%ecx,%edx),%al movb %al,31-4(%edi)7: testb %ah,%ah jz 7f movb %ah,%dl movb (%ecx,%edx),%al movb %al,31-1(%edi)7: testb %bh,%bh jz 7f movb %bh,%dl movb (%ecx,%edx),%al movb %al,31-5(%edi)7: 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:// And again... 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 addl $0xDEADBEEF,%edi // Next Screen Linebitw_05: decl %ebp jne 9b popl %ebx popl %esi popl %edi popl %ebp retFUNC(Draw32x32_Trans_Mapped_FlipX) pushl %ebp pushl %edi pushl %esi pushl %ebx movl 28(%esp),%eax // y xorl %edx,%edx sall $2,%eax movl 20(%esp),%esi // source movl 0xDEADBEEF(%eax),%ediblin_06: movl 32(%esp),%ecx // cmap movl $32,%ebp // Tile Height addl 24(%esp),%edi // x9: movl (%esi),%eax movl 4(%esi),%ebx testb %al,%al jz 7f movb %al,%dl movb (%ecx,%edx),%al movb %al,(%edi)7: testb %bl,%bl jz 7f movb %bl,%dl movb (%ecx,%edx),%al movb %al,4(%edi)7: testb %ah,%ah jz 7f movb %ah,%dl movb (%ecx,%edx),%al movb %al,1(%edi)7: testb %bh,%bh jz 7f movb %bh,%dl movb (%ecx,%edx),%al movb %al,5(%edi)7: shr $16,%eax shr $16,%ebx testb %al,%al jz 7f movb %al,%dl movb (%ecx,%edx),%al movb %al,2(%edi)7: testb %bl,%bl jz 7f movb %bl,%dl movb (%ecx,%edx),%al movb %al,6(%edi)7: testb %ah,%ah jz 7f movb %ah,%dl movb (%ecx,%edx),%al movb %al,3(%edi)7: testb %bh,%bh jz 7f movb %bh,%dl movb (%ecx,%edx),%al movb %al,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,8(%edi)7: testb %bl,%bl jz 7f movb %bl,%dl movb (%ecx,%edx),%al movb %al,12(%edi)7: testb %ah,%ah jz 7f movb %ah,%dl movb (%ecx,%edx),%al movb %al,9(%edi)7: testb %bh,%bh jz 7f movb %bh,%dl movb (%ecx,%edx),%al movb %al,13(%edi)7: shr $16,%eax shr $16,%ebx testb %al,%al jz 7f movb %al,%dl movb (%ecx,%edx),%al movb %al,10(%edi)7: testb %bl,%bl jz 7f movb %bl,%dl movb (%ecx,%edx),%al movb %al,14(%edi)7: testb %ah,%ah jz 7f movb %ah,%dl movb (%ecx,%edx),%al movb %al,11(%edi)7: testb %bh,%bh jz 7f movb %bh,%dl movb (%ecx,%edx),%al movb %al,15(%edi)7:// Oh, yes ! Let s do it again... movl 16(%esi),%eax movl 16+4(%esi),%ebx testb %al,%al jz 7f movb %al,%dl movb (%ecx,%edx),%al movb %al,16(%edi)7: testb %bl,%bl jz 7f movb %bl,%dl movb (%ecx,%edx),%al movb %al,16+4(%edi)7: testb %ah,%ah jz 7f movb %ah,%dl movb (%ecx,%edx),%al movb %al,16+1(%edi)7: testb %bh,%bh jz 7f movb %bh,%dl movb (%ecx,%edx),%al movb %al,16+5(%edi)7: shr $16,%eax shr $16,%ebx testb %al,%al jz 7f movb %al,%dl movb (%ecx,%edx),%al movb %al,16+2(%edi)7: testb %bl,%bl jz 7f movb %bl,%dl movb (%ecx,%edx),%al movb %al,16+6(%edi)7: testb %ah,%ah jz 7f movb %ah,%dl movb (%ecx,%edx),%al movb %al,16+3(%edi)7: testb %bh,%bh jz 7f movb %bh,%dl movb (%ecx,%edx),%al movb %al,16+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,16+8(%edi)7: testb %bl,%bl jz 7f movb %bl,%dl movb (%ecx,%edx),%al movb %al,16+12(%edi)7: testb %ah,%ah jz 7f movb %ah,%dl movb (%ecx,%edx),%al movb %al,16+9(%edi)7: testb %bh,%bh jz 7f movb %bh,%dl movb (%ecx,%edx),%al movb %al,16+13(%edi)7: shr $16,%eax shr $16,%ebx testb %al,%al jz 7f movb %al,%dl movb (%ecx,%edx),%al movb %al,16+10(%edi)7: testb %bl,%bl jz 7f movb %bl,%dl movb (%ecx,%edx),%al movb %al,16+14(%edi)7: testb %ah,%ah jz 7f movb %ah,%dl movb (%ecx,%edx),%al movb %al,16+11(%edi)7: testb %bh,%bh jz 7f movb %bh,%dl movb (%ecx,%edx),%al movb %al,16+15(%edi) 7: addl $32,%esi // Next Tile Line subl $0xDEADBEEF,%edi // Next Screen Linebitw_06: decl %ebp jne 9b popl %ebx popl %esi popl %edi popl %ebp retFUNC(Draw32x32_Trans_Mapped_FlipXY) pushl %ebp pushl %edi pushl %esi pushl %ebx movl 28(%esp),%eax // y xorl %edx,%edx sall $2,%eax movl 20(%esp),%esi // source movl 0xDEADBEEF(%eax),%ediblin_07: movl 32(%esp),%ecx // cmap movl $32,%ebp // Tile Height addl 24(%esp),%edi // x9: movl (%esi),%eax movl 4(%esi),%ebx testb %al,%al jz 7f movb %al,%dl movb (%ecx,%edx),%al movb %al,31(%edi)7: testb %bl,%bl jz 7f movb %bl,%dl movb (%ecx,%edx),%al movb %al,31-4(%edi)7: testb %ah,%ah jz 7f movb %ah,%dl movb (%ecx,%edx),%al movb %al,31-1(%edi)7: testb %bh,%bh jz 7f movb %bh,%dl movb (%ecx,%edx),%al movb %al,31-5(%edi)7:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -