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

📄 fxemu2.asm

📁 SFC游戏模拟器 snes9x 1.43 的原代码
💻 ASM
📖 第 1 页 / 共 5 页
字号:
NEWSYM FxOp64A3    ; CMPRN  compare, register, register   CMPRN 4NEWSYM FxOp65A3    ; CMPRN  compare, register, register   CMPRN 5NEWSYM FxOp66A3    ; CMPRN  compare, register, register   CMPRN 6NEWSYM FxOp67A3    ; CMPRN  compare, register, register   CMPRN 7NEWSYM FxOp68A3    ; CMPRN  compare, register, register   CMPRN 8NEWSYM FxOp69A3    ; CMPRN  compare, register, register   CMPRN 9NEWSYM FxOp6AA3    ; CMPRN  compare, register, register   CMPRN 10NEWSYM FxOp6BA3    ; CMPRN  compare, register, register   CMPRN 11NEWSYM FxOp6CA3    ; CMPRN  compare, register, register   CMPRN 12NEWSYM FxOp6DA3    ; CMPRN  compare, register, register   CMPRN 13NEWSYM FxOp6EA3    ; CMPRN  compare, register, register   CMPRN 14NEWSYM FxOp6FA3    ; CMPRN  compare, register, register   FETCHPIPE   mov eax,[esi]    ; Read Source   mov ebx,ebp   sub ebx,[SfxCPB]   sub ax,bx   seto byte[SfxOverflow]   setc byte[SfxCarry]   xor byte[SfxCarry],1   mov [SfxSignZero],eax   CLRFLAGS   inc ebp                ; Increase program counter   retNEWSYM FxOp70      ; MERGE  R7 as upper byte, R8 as lower byte (used for texture-mapping) */            ; V   xor eax,eax   FETCHPIPE   mov ah,byte [SfxR7+1]   mov al,byte [SfxR8+1]   inc ebp   mov [edi],eax            ; Write Destination   mov dword[SfxSignZero],0001h   test eax,0F0F0h   jz .nozero   mov dword[SfxSignZero],0000h.nozero   test eax,08080h   jz .nosign   or dword [SfxSignZero],80000h.nosign   mov dword [SfxOverflow],1   test ax,0c0c0h   jnz .Overflow   mov dword [SfxOverflow],0.Overflow   mov dword [SfxCarry],1   test ax,0e0e0h   jnz .Carry   mov dword [SfxCarry],0.Carry   CLRFLAGS   retNEWSYM FxOp71      ; AND RN register & register   ANDRN 1NEWSYM FxOp72      ; AND RN register & register   ANDRN 2NEWSYM FxOp73      ; AND RN register & register   ANDRN 3NEWSYM FxOp74      ; AND RN register & register   ANDRN 4NEWSYM FxOp75      ; AND RN register & register   ANDRN 5NEWSYM FxOp76      ; AND RN register & register   ANDRN 6NEWSYM FxOp77      ; AND RN register & register   ANDRN 7NEWSYM FxOp78      ; AND RN register & register   ANDRN 8NEWSYM FxOp79      ; AND RN register & register   ANDRN 9NEWSYM FxOp7A      ; AND RN register & register   ANDRN 10NEWSYM FxOp7B      ; AND RN register & register   ANDRN 11NEWSYM FxOp7C      ; AND RN register & register   ANDRN 12NEWSYM FxOp7D      ; AND RN register & register   ANDRN 13NEWSYM FxOp7E      ; AND RN register & register   ANDRN 14NEWSYM FxOp7F      ; AND RN register & register   FETCHPIPE   mov eax,[esi]            ; Read Source   mov ebx,ebp   sub ebx,[SfxCPB]   and eax,ebx   inc ebp   mov dword [SfxSignZero],eax   mov [edi],eax            ; Write Destination   CLRFLAGS   retNEWSYM FxOp71A1    ; BIC RN register & ~register   BICRN 1NEWSYM FxOp72A1    ; BIC RN register & ~register   BICRN 2NEWSYM FxOp73A1    ; BIC RN register & ~register   BICRN 3NEWSYM FxOp74A1    ; BIC RN register & ~register   BICRN 4NEWSYM FxOp75A1    ; BIC RN register & ~register   BICRN 5NEWSYM FxOp76A1    ; BIC RN register & ~register   BICRN 6NEWSYM FxOp77A1    ; BIC RN register & ~register   BICRN 7NEWSYM FxOp78A1    ; BIC RN register & ~register   BICRN 8NEWSYM FxOp79A1    ; BIC RN register & ~register   BICRN 9NEWSYM FxOp7AA1    ; BIC RN register & ~register   BICRN 10NEWSYM FxOp7BA1    ; BIC RN register & ~register   BICRN 11NEWSYM FxOp7CA1    ; BIC RN register & ~register   BICRN 12NEWSYM FxOp7DA1    ; BIC RN register & ~register   BICRN 13NEWSYM FxOp7EA1    ; BIC RN register & ~register   BICRN 14NEWSYM FxOp7FA1    ; BIC RN register & ~register   FETCHPIPE   mov ebx,ebp   sub ebx,[SfxCPB]   mov eax,[esi]            ; Read Source   xor ebx,0FFFFh   and eax,ebx   inc ebp   mov dword [SfxSignZero],eax   mov [edi],eax            ; Write Destination   CLRFLAGS   retNEWSYM FxOp71A2    ; ANDIRN and #n - register & immediate   ANDIRN 1NEWSYM FxOp72A2    ; ANDIRN and #n - register & immediate   ANDIRN 2NEWSYM FxOp73A2    ; ANDIRN and #n - register & immediate   ANDIRN 3NEWSYM FxOp74A2    ; ANDIRN and #n - register & immediate   ANDIRN 4NEWSYM FxOp75A2    ; ANDIRN and #n - register & immediate   ANDIRN 5NEWSYM FxOp76A2    ; ANDIRN and #n - register & immediate   ANDIRN 6NEWSYM FxOp77A2    ; ANDIRN and #n - register & immediate   ANDIRN 7NEWSYM FxOp78A2    ; ANDIRN and #n - register & immediate   ANDIRN 8NEWSYM FxOp79A2    ; ANDIRN and #n - register & immediate   ANDIRN 9NEWSYM FxOp7AA2    ; ANDIRN and #n - register & immediate   ANDIRN 10NEWSYM FxOp7BA2    ; ANDIRN and #n - register & immediate   ANDIRN 11NEWSYM FxOp7CA2    ; ANDIRN and #n - register & immediate   ANDIRN 12NEWSYM FxOp7DA2    ; ANDIRN and #n - register & immediate   ANDIRN 13NEWSYM FxOp7EA2    ; ANDIRN and #n - register & immediate   ANDIRN 14NEWSYM FxOp7FA2    ; ANDIRN and #n - register & immediate   ANDIRN 15NEWSYM FxOp71A3    ; BICIRN register & ~immediate   BICIRN 1 ^ 0FFFFhNEWSYM FxOp72A3    ; BICIRN register & ~immediate   BICIRN 2 ^ 0FFFFhNEWSYM FxOp73A3    ; BICIRN register & ~immediate   BICIRN 3 ^ 0FFFFhNEWSYM FxOp74A3    ; BICIRN register & ~immediate   BICIRN 4 ^ 0FFFFhNEWSYM FxOp75A3    ; BICIRN register & ~immediate   BICIRN 5 ^ 0FFFFhNEWSYM FxOp76A3    ; BICIRN register & ~immediate   BICIRN 6 ^ 0FFFFhNEWSYM FxOp77A3    ; BICIRN register & ~immediate   BICIRN 7 ^ 0FFFFhNEWSYM FxOp78A3    ; BICIRN register & ~immediate   BICIRN 8 ^ 0FFFFhNEWSYM FxOp79A3    ; BICIRN register & ~immediate   BICIRN 9 ^ 0FFFFhNEWSYM FxOp7AA3    ; BICIRN register & ~immediate   BICIRN 10 ^ 0FFFFhNEWSYM FxOp7BA3    ; BICIRN register & ~immediate   BICIRN 11 ^ 0FFFFhNEWSYM FxOp7CA3    ; BICIRN register & ~immediate   BICIRN 12 ^ 0FFFFhNEWSYM FxOp7DA3    ; BICIRN register & ~immediate   BICIRN 13 ^ 0FFFFhNEWSYM FxOp7EA3    ; BICIRN register & ~immediate   BICIRN 14 ^ 0FFFFhNEWSYM FxOp7FA3    ; BICIRN register & ~immediate   BICIRN 15 ^ 0FFFFhNEWSYM FxOp80      ; MULTRN 8 bit to 16 bit signed multiply, register * register   MULTRN 0 NEWSYM FxOp81      ; MULTRN 8 bit to 16 bit signed multiply, register * register   MULTRN 1 NEWSYM FxOp82      ; MULTRN 8 bit to 16 bit signed multiply, register * register   MULTRN 2 NEWSYM FxOp83      ; MULTRN 8 bit to 16 bit signed multiply, register * register   MULTRN 3 NEWSYM FxOp84      ; MULTRN 8 bit to 16 bit signed multiply, register * register   MULTRN 4 NEWSYM FxOp85      ; MULTRN 8 bit to 16 bit signed multiply, register * register   MULTRN 5 NEWSYM FxOp86      ; MULTRN 8 bit to 16 bit signed multiply, register * register   MULTRN 6 NEWSYM FxOp87      ; MULTRN 8 bit to 16 bit signed multiply, register * register   MULTRN 7 NEWSYM FxOp88      ; MULTRN 8 bit to 16 bit signed multiply, register * register   MULTRN 8 NEWSYM FxOp89      ; MULTRN 8 bit to 16 bit signed multiply, register * register   MULTRN 9 NEWSYM FxOp8A      ; MULTRN 8 bit to 16 bit signed multiply, register * register   MULTRN 10 NEWSYM FxOp8B      ; MULTRN 8 bit to 16 bit signed multiply, register * register   MULTRN 11 NEWSYM FxOp8C      ; MULTRN 8 bit to 16 bit signed multiply, register * register   MULTRN 12 NEWSYM FxOp8D      ; MULTRN 8 bit to 16 bit signed multiply, register * register   MULTRN 13 NEWSYM FxOp8E      ; MULTRN 8 bit to 16 bit signed multiply, register * register   MULTRN 14 NEWSYM FxOp8F      ; MULTRN 8 bit to 16 bit signed multiply, register * register   FETCHPIPE   mov ebx,ebp   mov al,byte [esi]     ; Read Source   sub ebx,[SfxCPB]   imul bl   inc ebp   and eax,0FFFFh   mov [SfxSignZero],eax   mov [edi],eax            ; Write Destination   CLRFLAGS   retNEWSYM FxOp80A1    ; UMULRN 8 bit to 16 bit unsigned multiply, register * register   UMULTRN 0NEWSYM FxOp81A1    ; UMULRN 8 bit to 16 bit unsigned multiply, register * register   UMULTRN 1NEWSYM FxOp82A1    ; UMULRN 8 bit to 16 bit unsigned multiply, register * register   UMULTRN 2NEWSYM FxOp83A1    ; UMULRN 8 bit to 16 bit unsigned multiply, register * register   UMULTRN 3NEWSYM FxOp84A1    ; UMULRN 8 bit to 16 bit unsigned multiply, register * register   UMULTRN 4NEWSYM FxOp85A1    ; UMULRN 8 bit to 16 bit unsigned multiply, register * register   UMULTRN 5NEWSYM FxOp86A1    ; UMULRN 8 bit to 16 bit unsigned multiply, register * register   UMULTRN 6NEWSYM FxOp87A1    ; UMULRN 8 bit to 16 bit unsigned multiply, register * register   UMULTRN 7NEWSYM FxOp88A1    ; UMULRN 8 bit to 16 bit unsigned multiply, register * register   UMULTRN 8NEWSYM FxOp89A1    ; UMULRN 8 bit to 16 bit unsigned multiply, register * register   UMULTRN 9NEWSYM FxOp8AA1    ; UMULRN 8 bit to 16 bit unsigned multiply, register * register   UMULTRN 10NEWSYM FxOp8BA1    ; UMULRN 8 bit to 16 bit unsigned multiply, register * register   UMULTRN 11NEWSYM FxOp8CA1    ; UMULRN 8 bit to 16 bit unsigned multiply, register * register   UMULTRN 12NEWSYM FxOp8DA1    ; UMULRN 8 bit to 16 bit unsigned multiply, register * register   UMULTRN 13NEWSYM FxOp8EA1    ; UMULRN 8 bit to 16 bit unsigned multiply, register * register   UMULTRN 14NEWSYM FxOp8FA1    ; UMULRN 8 bit to 16 bit unsigned multiply, register * register   FETCHPIPE   mov ebx,ebp   mov al,byte [esi]     ; Read Source   sub ebx,[SfxCPB]   mul bl   inc ebp   and eax,0FFFFh   mov [SfxSignZero],eax   mov [edi],eax            ; Write Destination   CLRFLAGS   retNEWSYM FxOp80A2    ; MULIRN 8 bit to 16 bit signed multiply, register * immediate   MULTIRN 0NEWSYM FxOp81A2    ; MULIRN 8 bit to 16 bit signed multiply, register * immediate   MULTIRN 1NEWSYM FxOp82A2    ; MULIRN 8 bit to 16 bit signed multiply, register * immediate   MULTIRN 2NEWSYM FxOp83A2    ; MULIRN 8 bit to 16 bit signed multiply, register * immediate   MULTIRN 3NEWSYM FxOp84A2    ; MULIRN 8 bit to 16 bit signed multiply, register * immediate   MULTIRN 4NEWSYM FxOp85A2    ; MULIRN 8 bit to 16 bit signed multiply, register * immediate   MULTIRN 5NEWSYM FxOp86A2    ; MULIRN 8 bit to 16 bit signed multiply, register * immediate   MULTIRN 6NEWSYM FxOp87A2    ; MULIRN 8 bit to 16 bit signed multiply, register * immediate   MULTIRN 7NEWSYM FxOp88A2    ; MULIRN 8 bit to 16 bit signed multiply, register * immediate   MULTIRN 8NEWSYM FxOp89A2    ; MULIRN 8 bit to 16 bit signed multiply, register * immediate   MULTIRN 9NEWSYM FxOp8AA2    ; MULIRN 8 bit to 16 bit signed multiply, register * immediate   MULTIRN 10NEWSYM FxOp8BA2    ; MULIRN 8 bit to 16 bit signed multiply, register * immediate   MULTIRN 11NEWSYM FxOp8CA2    ; MULIRN 8 bit to 16 bit signed multiply, register * immediate   MULTIRN 12NEWSYM FxOp8DA2    ; MULIRN 8 bit to 16 bit signed multiply, register * immediate   MULTIRN 13NEWSYM FxOp8EA2    ; MULIRN 8 bit to 16 bit signed multiply, register * immediate   MULTIRN 14NEWSYM FxOp8FA2    ; MULIRN 8 bit to 16 bit signed multiply, register * immediate   MULTIRN 15NEWSYM FxOp80A3    ;UMULIRN 8 bit to 16 bit unsigned multiply, register * immediate   UMULTIRN 0NEWSYM FxOp81A3    ;UMULIRN 8 bit to 16 bit unsigned multiply, register * immediate   UMULTIRN 1NEWSYM FxOp82A3    ;UMULIRN 8 bit to 16 bit unsigned multiply, register * immediate   UMULTIRN 2NEWSYM FxOp83A3    ;UMULIRN 8 bit to 16 bit unsigned multiply, register * immediate   UMULTIRN 3NEWSYM FxOp84A3    ;UMULIRN 8 bit to 16 bit unsigned multiply, register * immediate   UMULTIRN 4NEWSYM FxOp85A3    ;UMULIRN 8 bit to 16 bit unsigned multiply, register * immediate   UMULTIRN 5NEWSYM FxOp86A3    ;UMULIRN 8 bit to 16 bit unsigned multiply, register * immediate   UMULTIRN 6NEWSYM FxOp87A3    ;UMULIRN 8 bit to 16 bit unsigned multiply, register * immediate   UMULTIRN 7NEWSYM FxOp88A3    ;UMULIRN 8 bit to 16 bit unsigned multiply, register * immediate   UMULTIRN 8NEWSYM FxOp89A3    ;UMULIRN 8 bit to 16 bit unsigned multiply, register * immediate   UMULTIRN 9NEWSYM FxOp8AA3    ;UMULIRN 8 bit to 16 bit unsigned multiply, register * immediate   UMULTIRN 10NEWSYM FxOp8BA3    ;UMULIRN 8 bit to 16 bit unsigned multiply, register * immediate   UMULTIRN 11NEWSYM FxOp8CA3    ;UMULIRN 8 bit to 16 bit unsigned multiply, register * immediate   UMULTIRN 12NEWSYM FxOp8DA3    ;UMULIRN 8 bit to 16 bit unsigned multiply, register * immediate   UMULTIRN 13NEWSYM FxOp8EA3    ;UMULIRN 8 bit to 16 bit unsigned multiply, register * immediate   UMULTIRN 14NEWSYM FxOp8FA3    ;UMULIRN 8 bit to 16 bit unsigned multiply, register * immediate   UMULTIRN 15NEWSYM FxOp90      ; SBK    store word to last accessed RAM address    ; V   mov ebx,[SfxLastRamAdr]   ; Load last ram address   mov eax,[esi]            ; Read Source   FETCHPIPE   mov [ebx],al         ; Store Word   sub ebx,[SfxRAMMem]   xor ebx,1   add ebx,[SfxRAMMem]   inc ebp                ; Increase program counter   mov [ebx],ah         ; Store Word   CLRFLAGS   retNEWSYM FxOp91      ; LINK#n R11 = R15 + immediate   LINK 1NEWSYM FxOp92      ; LINK#n R11 = R15 + immediate   LINK 2NEWSYM FxOp93      ; LINK#n R11 = R15 + immediate   LINK 3NEWSYM FxOp94      ; LINK#n R11 = R15 + immediate   LINK 4NEWSYM FxOp95      ; SEX    sign extend 8 bit to 16 bit        ; V   movsx eax, byte [esi]     ; Read Source   FETCHPIPE   and eax,0FFFFh   inc ebp   mov [edi],eax            ; Write Destination   mov [SfxSignZero],eax   CLRFLAGS   retNEWSYM FxOp96      ; ASR    aritmethic shift right by one      ; V   mov eax,[esi]            ; Read Source   FETCHPIPE   mov [SfxCarry],al   and byte[SfxCarry],1   sar ax,1                      ; logic shift right   inc ebp                ; Increase program counter   mov [edi],eax            ; Write Destination   mov dword [SfxSignZero],eax   CLRFLAGS   retNEWSYM FxOp96A1    ; DIV2   aritmethic shift right by one      ; V   mov eax,[esi]            ; Read Source   FETCHPIPE   cmp ax,-1   je .minusone   mov [SfxCarry],al   and byte[SfxCarry],1   sar ax,1                      ; logic shift right   inc ebp                ; Increase program counter   mov [edi],eax            ; Write Destination   mov dword [SfxSignZero],eax   CLRFLAGS   ret.minusone   mov byte[SfxCarry],1   xor eax,eax   inc ebp                ; Increase program counter   mov [edi],eax            ; Write Destination   mov dword [SfxSignZero],eax   CLRFLAGS   retNEWSYM FxOp97      ; ROR    rotate right by one        ; V   FETCHPIPE   mov eax,[esi]            ; Read Source   shr byte[SfxCarry],1   rcr ax,1   setc byte[SfxCarry]   inc ebp                ; Increase program counter   mov [edi],eax            ; Write Destination   mov [SfxSignZero],eax   CLRFLAGS   retNEWSYM FxOp98      ; JMPRN  jump to address of register   JMPRN 8NEWSYM FxOp99      ; JMPRN  jump to address of register   JMPRN 9NEWSYM FxOp9A      ; JMPRN  jump to address of register   JMPRN 10NEWSYM FxOp9B      ; JMPRN  jump to address of register   JMPRN 11NEWSYM FxOp9C      ; JMPRN  jump to address of register   JMPRN 12NEWSYM FxOp9D      ; JMPRN  jump to address of register   JMPRN 13NEWSYM FxOp98A1    ; LJMPRN set program bank to source register and jump to address of register   LJMPRN 8NEWSYM FxOp99A1    ; LJMPRN set program bank to source register and jump to address of register   LJMPRN 9NEWSYM FxOp9AA1    ; LJMPRN set program bank to source register and jump to address of register   LJMPRN 10NEWSYM FxOp9BA1    ; LJMPRN set program bank to source register and jump to address of register   LJMPRN 11NEWSYM FxOp9CA1    ; LJMPRN set program bank to source register and jump to address of register   LJMPRN 12NEWSYM FxOp9DA1    ; LJMPRN set program bank to source register and jump to address of register   LJMPRN 13NEWSYM FxOp9E      ; LOB    set upper byte to zero (keep low byte) ; V   mov eax,[esi]            ; Read Source   FETCHPIPE   and eax,0FFh   inc ebp   mov [edi],eax            ; Write Destination   shl eax,8   mov dword [SfxSignZero],eax   CLRFLAGS   retNEWSYM FxOp9F      ; FMULT  16 bit to 32 bit signed multiplication, upper 16 bits only            ; V   mov eax,[esi]             ; Read Source   mov ebx,[SfxR6]

⌨️ 快捷键说明

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