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

📄 fxemu2.asm

📁 SFC游戏模拟器 snes9x 1.43 的原代码
💻 ASM
📖 第 1 页 / 共 5 页
字号:
   FETCHPIPE   imul bx   inc ebp   and edx,0FFFFh   mov [SfxSignZero],edx   mov [edi],edx        ; Write Destination   shr ax,15   mov [SfxCarry],al   CLRFLAGS   retNEWSYM FxOp9FA1    ; LMULT  16 bit to 32 bit signed multiplication     ; V   mov eax,[esi]             ; Read Source   mov ebx,[SfxR6]   FETCHPIPE   imul bx   and edx,0FFFFh   inc ebp   mov [edi],edx        ; Write Destination   mov [SfxR4],ax   mov [SfxSignZero],edx   shr ax,15   mov [SfxCarry],al   CLRFLAGS   retNEWSYM FxOpA0      ; IBTRN,#PP immediate byte transfer   IBTRN 0NEWSYM FxOpA1      ; IBTRN,#PP immediate byte transfer   IBTRN 1NEWSYM FxOpA2      ; IBTRN,#PP immediate byte transfer   IBTRN 2NEWSYM FxOpA3      ; IBTRN,#PP immediate byte transfer   IBTRN 3NEWSYM FxOpA4      ; IBTRN,#PP immediate byte transfer   IBTRN 4NEWSYM FxOpA5      ; IBTRN,#PP immediate byte transfer   IBTRN 5NEWSYM FxOpA6      ; IBTRN,#PP immediate byte transfer   IBTRN 6NEWSYM FxOpA7      ; IBTRN,#PP immediate byte transfer   IBTRN 7NEWSYM FxOpA8      ; IBTRN,#PP immediate byte transfer   IBTRN 8NEWSYM FxOpA9      ; IBTRN,#PP immediate byte transfer   IBTRN 9NEWSYM FxOpAA      ; IBTRN,#PP immediate byte transfer   IBTRN 10NEWSYM FxOpAB      ; IBTRN,#PP immediate byte transfer   IBTRN 11NEWSYM FxOpAC      ; IBTRN,#PP immediate byte transfer   IBTRN 12NEWSYM FxOpAD      ; IBTRN,#PP immediate byte transfer   IBTRN 13NEWSYM FxOpAE      ; IBTRN,#PP immediate byte transfer   movsx eax,byte[ebp]   mov cl,[ebp+1]   add ebp,2   mov [SfxR0+14*4],ax   UpdateR14   CLRFLAGS   retNEWSYM FxOpAF      ; IBTRN,#PP immediate byte transfer   movsx eax,byte[ebp]   mov cl,[ebp+1]   and eax,0FFFFh   mov ebp,[SfxCPB]   add ebp,eax   CLRFLAGS   retNEWSYM FxOpA0A1    ; LMS rn,(yy)  load word from RAM (short address)   LMSRN 0NEWSYM FxOpA1A1    ; LMS rn,(yy)  load word from RAM (short address)   LMSRN 1NEWSYM FxOpA2A1    ; LMS rn,(yy)  load word from RAM (short address)   LMSRN 2NEWSYM FxOpA3A1    ; LMS rn,(yy)  load word from RAM (short address)   LMSRN 3NEWSYM FxOpA4A1    ; LMS rn,(yy)  load word from RAM (short address)   LMSRN 4NEWSYM FxOpA5A1    ; LMS rn,(yy)  load word from RAM (short address)   LMSRN 5NEWSYM FxOpA6A1    ; LMS rn,(yy)  load word from RAM (short address)   LMSRN 6NEWSYM FxOpA7A1    ; LMS rn,(yy)  load word from RAM (short address)   LMSRN 7NEWSYM FxOpA8A1    ; LMS rn,(yy)  load word from RAM (short address)   LMSRN 8NEWSYM FxOpA9A1    ; LMS rn,(yy)  load word from RAM (short address)   LMSRN 9NEWSYM FxOpAAA1    ; LMS rn,(yy)  load word from RAM (short address)   LMSRN 10NEWSYM FxOpABA1    ; LMS rn,(yy)  load word from RAM (short address)   LMSRN 11NEWSYM FxOpACA1    ; LMS rn,(yy)  load word from RAM (short address)   LMSRN 12NEWSYM FxOpADA1    ; LMS rn,(yy)  load word from RAM (short address)   LMSRN 13NEWSYM FxOpAEA1    ; LMS rn,(yy)  load word from RAM (short address)   xor eax,eax   mov al,[ebp]   add eax,eax   inc ebp   add eax,[SfxRAMMem]   mov cl,[ebp]   mov dword [SfxLastRamAdr],eax   mov ebx,[eax]              ; Read word from ram   inc ebp   mov [SfxR0+14*4],bx              ; Write data   UpdateR14   CLRFLAGS   retNEWSYM FxOpAFA1    ; LMS rn,(yy)  load word from RAM (short address)   xor eax,eax   mov al,[ebp]   add eax,eax   inc ebp   add eax,[SfxRAMMem]   mov cl,[ebp]   mov dword [SfxLastRamAdr],eax   mov ebx,[eax]              ; Read word from ram   and ebx,0FFFFh   mov ebp,[SfxCPB]   add ebp,ebx   CLRFLAGS   retNEWSYM FxOpA0A2    ; SMS (yy),rn  store word in RAM (short address)   SMSRN 0NEWSYM FxOpA1A2    ; SMS (yy),rn  store word in RAM (short address)   SMSRN 1NEWSYM FxOpA2A2    ; SMS (yy),rn  store word in RAM (short address)   SMSRN 2NEWSYM FxOpA3A2    ; SMS (yy),rn  store word in RAM (short address)   SMSRN 3NEWSYM FxOpA4A2    ; SMS (yy),rn  store word in RAM (short address)   SMSRN 4NEWSYM FxOpA5A2    ; SMS (yy),rn  store word in RAM (short address)   SMSRN 5NEWSYM FxOpA6A2    ; SMS (yy),rn  store word in RAM (short address)   SMSRN 6NEWSYM FxOpA7A2    ; SMS (yy),rn  store word in RAM (short address)   SMSRN 7NEWSYM FxOpA8A2    ; SMS (yy),rn  store word in RAM (short address)   SMSRN 8NEWSYM FxOpA9A2    ; SMS (yy),rn  store word in RAM (short address)   SMSRN 9NEWSYM FxOpAAA2    ; SMS (yy),rn  store word in RAM (short address)   SMSRN 10NEWSYM FxOpABA2    ; SMS (yy),rn  store word in RAM (short address)   SMSRN 11NEWSYM FxOpACA2    ; SMS (yy),rn  store word in RAM (short address)   SMSRN 12NEWSYM FxOpADA2    ; SMS (yy),rn  store word in RAM (short address)   SMSRN 13NEWSYM FxOpAEA2    ; SMS (yy),rn  store word in RAM (short address)   SMSRN 14NEWSYM FxOpAFA2    ; SMS (yy),rn  store word in RAM (short address)   xor eax,eax   mov ebx,ebp   sub ebx,[SfxCPB]   mov al,[ebp]   inc ebp   add eax,eax   FETCHPIPE   add eax,[SfxRAMMem]   mov dword [SfxLastRamAdr],eax   inc ebp   mov [eax],bx              ; Write word to ram   CLRFLAGS   retNEWSYM FxOpB0      ; FROM rn   set source register   FROMRN 0NEWSYM FxOpB1      ; FROM rn   set source register   FROMRN 1NEWSYM FxOpB2      ; FROM rn   set source register   FROMRN 2NEWSYM FxOpB3      ; FROM rn   set source register   FROMRN 3NEWSYM FxOpB4      ; FROM rn   set source register   FROMRN 4NEWSYM FxOpB5      ; FROM rn   set source register   FROMRN 5NEWSYM FxOpB6      ; FROM rn   set source register   FROMRN 6NEWSYM FxOpB7      ; FROM rn   set source register   FROMRN 7NEWSYM FxOpB8      ; FROM rn   set source register   FROMRN 8NEWSYM FxOpB9      ; FROM rn   set source register   FROMRN 9NEWSYM FxOpBA      ; FROM rn   set source register   FROMRN 10NEWSYM FxOpBB      ; FROM rn   set source register   FROMRN 11NEWSYM FxOpBC      ; FROM rn   set source register   FROMRN 12NEWSYM FxOpBD      ; FROM rn   set source register   FROMRN 13NEWSYM FxOpBE      ; FROM rn   set source register   FROMRN 14NEWSYM FxOpBF      ; FROM rn   set source register   FETCHPIPE   mov esi,SfxR0+15*4   inc ebp                ; Increase program counter   mov eax,ebp   sub eax,[SfxCPB]   mov [SfxR15],eax   call [FxTableb+ecx*4]   mov esi,SfxR0   retNEWSYM FxOpC0      ; HIB       move high-byte to low-byte      ; V   mov eax,[esi]            ; Read Source   FETCHPIPE   and eax,0FF00h   mov dword [SfxSignZero],eax   shr eax,8   inc ebp   mov [edi],eax   CLRFLAGS   retNEWSYM FxOpC1      ; OR rn     or rn   ORRN 1NEWSYM FxOpC2      ; OR rn     or rn   ORRN 2NEWSYM FxOpC3      ; OR rn     or rn   ORRN 3NEWSYM FxOpC4      ; OR rn     or rn   ORRN 4NEWSYM FxOpC5      ; OR rn     or rn   ORRN 5NEWSYM FxOpC6      ; OR rn     or rn   ORRN 6NEWSYM FxOpC7      ; OR rn     or rn   ORRN 7NEWSYM FxOpC8      ; OR rn     or rn   ORRN 8NEWSYM FxOpC9      ; OR rn     or rn   ORRN 9NEWSYM FxOpCA      ; OR rn     or rn   ORRN 10NEWSYM FxOpCB      ; OR rn     or rn   ORRN 11NEWSYM FxOpCC      ; OR rn     or rn   ORRN 12NEWSYM FxOpCD      ; OR rn     or rn   ORRN 13NEWSYM FxOpCE      ; OR rn     or rn   ORRN 14NEWSYM FxOpCF      ; OR rn     or rn   mov eax,[esi]            ; Read Source   mov ebx,ebp   FETCHPIPE   sub ebx,[SfxCPB]   or eax,ebx   inc ebp   mov [edi],eax            ; Write DREG   mov [SfxSignZero],eax   CLRFLAGS   retNEWSYM FxOpC1A1    ; XOR rn    xor rn   XORRN 1NEWSYM FxOpC2A1    ; XOR rn    xor rn   XORRN 2NEWSYM FxOpC3A1    ; XOR rn    xor rn   XORRN 3NEWSYM FxOpC4A1    ; XOR rn    xor rn   XORRN 4NEWSYM FxOpC5A1    ; XOR rn    xor rn   XORRN 5NEWSYM FxOpC6A1    ; XOR rn    xor rn   XORRN 6NEWSYM FxOpC7A1    ; XOR rn    xor rn   XORRN 7NEWSYM FxOpC8A1    ; XOR rn    xor rn   XORRN 8NEWSYM FxOpC9A1    ; XOR rn    xor rn   XORRN 9NEWSYM FxOpCAA1    ; XOR rn    xor rn   XORRN 10NEWSYM FxOpCBA1    ; XOR rn    xor rn   XORRN 11NEWSYM FxOpCCA1    ; XOR rn    xor rn   XORRN 12NEWSYM FxOpCDA1    ; XOR rn    xor rn   XORRN 13NEWSYM FxOpCEA1    ; XOR rn    xor rn   XORRN 14NEWSYM FxOpCFA1    ; XOR rn    xor rn   FETCHPIPE   mov eax,[esi]            ; Read Source   mov ebx,ebp   sub ebx,[SfxCPB]   xor eax,ebx   inc ebp   mov [edi],eax            ; Write DREG   mov [SfxSignZero],eax   CLRFLAGS   retNEWSYM FxOpC1A2    ; OR #n     OR #n   ORI 1NEWSYM FxOpC2A2    ; OR #n     OR #n   ORI 2NEWSYM FxOpC3A2    ; OR #n     OR #n   ORI 3NEWSYM FxOpC4A2    ; OR #n     OR #n   ORI 4NEWSYM FxOpC5A2    ; OR #n     OR #n   ORI 5NEWSYM FxOpC6A2    ; OR #n     OR #n   ORI 6NEWSYM FxOpC7A2    ; OR #n     OR #n   ORI 7NEWSYM FxOpC8A2    ; OR #n     OR #n   ORI 8NEWSYM FxOpC9A2    ; OR #n     OR #n   ORI 9NEWSYM FxOpCAA2    ; OR #n     OR #n   ORI 10NEWSYM FxOpCBA2    ; OR #n     OR #n   ORI 11NEWSYM FxOpCCA2    ; OR #n     OR #n   ORI 12NEWSYM FxOpCDA2    ; OR #n     OR #n   ORI 13NEWSYM FxOpCEA2    ; OR #n     OR #n   ORI 14NEWSYM FxOpCFA2    ; OR #n     OR #n   ORI 15NEWSYM FxOpC1A3    ; XOR #n    xor #n   XORI 1NEWSYM FxOpC2A3    ; XOR #n    xor #n   XORI 2NEWSYM FxOpC3A3    ; XOR #n    xor #n   XORI 3NEWSYM FxOpC4A3    ; XOR #n    xor #n   XORI 4NEWSYM FxOpC5A3    ; XOR #n    xor #n   XORI 5NEWSYM FxOpC6A3    ; XOR #n    xor #n   XORI 6NEWSYM FxOpC7A3    ; XOR #n    xor #n   XORI 7NEWSYM FxOpC8A3    ; XOR #n    xor #n   XORI 8NEWSYM FxOpC9A3    ; XOR #n    xor #n   XORI 9NEWSYM FxOpCAA3    ; XOR #n    xor #n   XORI 10NEWSYM FxOpCBA3    ; XOR #n    xor #n   XORI 11NEWSYM FxOpCCA3    ; XOR #n    xor #n   XORI 12NEWSYM FxOpCDA3    ; XOR #n    xor #n   XORI 13NEWSYM FxOpCEA3    ; XOR #n    xor #n   XORI 14NEWSYM FxOpCFA3    ; XOR #n    xor #n   XORI 15NEWSYM FxOpD0      ; INC rn    increase by one   INCRN 0NEWSYM FxOpD1      ; INC rn    increase by one   INCRN 1NEWSYM FxOpD2      ; INC rn    increase by one   INCRN 2NEWSYM FxOpD3      ; INC rn    increase by one   INCRN 3NEWSYM FxOpD4      ; INC rn    increase by one   INCRN 4NEWSYM FxOpD5      ; INC rn    increase by one   INCRN 5NEWSYM FxOpD6      ; INC rn    increase by one   INCRN 6NEWSYM FxOpD7      ; INC rn    increase by one   INCRN 7NEWSYM FxOpD8      ; INC rn    increase by one   INCRN 8NEWSYM FxOpD9      ; INC rn    increase by one   INCRN 9NEWSYM FxOpDA      ; INC rn    increase by one   INCRN 10NEWSYM FxOpDB      ; INC rn    increase by one   INCRN 11NEWSYM FxOpDC      ; INC rn    increase by one   INCRN 12NEWSYM FxOpDD      ; INC rn    increase by one   INCRN 13NEWSYM FxOpDE      ; INC rn    increase by one   FETCHPIPE   mov eax,[SfxR0+14*4]            ; Read Source   inc ax   mov [SfxR0+14*4],eax   mov [SfxSignZero],eax   CLRFLAGS   inc ebp   UpdateR14   retNEWSYM FxOpDF      ; GETC      transfer ROM buffer to color register   mov eax,[SfxRomBuffer]   FETCHPIPE   mov eax,[eax]   test byte[SfxPOR],04h   jz .nohighnibble   mov bl,al   shr bl,4   and al,0F0h   or al,bl.nohighnibble   test byte[SfxPOR],08h   jnz .preserveupper   cmp [SfxCOLR],al   je .nocolchange   mov [SfxCOLR],al   and eax,0FFh   mov ebx,[fxbit01+eax*4]   mov [fxbit01pcal],ebx   mov ebx,[fxbit23+eax*4]   mov [fxbit23pcal],ebx   mov ebx,[fxbit45+eax*4]   mov [fxbit45pcal],ebx   mov ebx,[fxbit67+eax*4]   mov [fxbit67pcal],ebx.nocolchange   CLRFLAGS   inc ebp                ; Increase program counter   ret.preserveupper   mov bl,[SfxCOLR]   and al,0Fh   and bl,0F0h   or al,bl   cmp [SfxCOLR],al   je .nocolchange   mov [SfxCOLR],al   and eax,0FFh   mov ebx,[fxbit01+eax*4]   mov [fxbit01pcal],ebx   mov ebx,[fxbit23+eax*4]   mov [fxbit23pcal],ebx   mov ebx,[fxbit45+eax*4]   mov [fxbit45pcal],ebx   mov ebx,[fxbit67+eax*4]   mov [fxbit67pcal],ebx   CLRFLAGS   inc ebp                ; Increase program counter   retNEWSYM FxOpDFA2    ; RAMB      set current RAM bank    ; Verified   mov eax,[esi]            ; Read Source   mov ebx,[SfxnRamBanks]   FETCHPIPE   dec ebx   and eax,ebx   mov dword [SfxRAMBR],eax   shl eax,16   add eax,[sfxramdata]   mov dword [SfxRAMMem],eax   CLRFLAGS   inc ebp   retNEWSYM FxOpDFA3    ; ROMB      set current ROM bank    ; Verified   mov eax,[esi]            ; Read Source   and eax,07Fh   FETCHPIPE   mov dword [SfxROMBR],eax   mov eax,[SfxMemTable+eax*4]   mov [SfxCROM],eax   CL

⌨️ 快捷键说明

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