dspproc.asm

来自「linux下的任天堂模拟器代码。供大家参考。」· 汇编 代码 · 共 1,951 行 · 第 1/5 页

ASM
1,951
字号
      mov dword[dspWptr+039Ch],WDSPRegE7      mov dword[dspWptr+03A0h],WDSPRegE8      mov dword[dspWptr+03A4h],WDSPRegE9      mov dword[dspWptr+03A8h],WDSPRegEA      mov dword[dspWptr+03ACh],WDSPRegEB      mov dword[dspWptr+03B0h],WDSPRegEC      mov dword[dspWptr+03B4h],WDSPRegED      mov dword[dspWptr+03B8h],WDSPRegEE      mov dword[dspWptr+03BCh],WDSPRegEF      mov dword[dspWptr+03C0h],WDSPRegF0      mov dword[dspWptr+03C4h],WDSPRegF1      mov dword[dspWptr+03C8h],WDSPRegF2      mov dword[dspWptr+03CCh],WDSPRegF3      mov dword[dspWptr+03D0h],WDSPRegF4      mov dword[dspWptr+03D4h],WDSPRegF5      mov dword[dspWptr+03D8h],WDSPRegF6      mov dword[dspWptr+03DCh],WDSPRegF7      mov dword[dspWptr+03E0h],WDSPRegF8      mov dword[dspWptr+03E4h],WDSPRegF9      mov dword[dspWptr+03E8h],WDSPRegFA      mov dword[dspWptr+03ECh],WDSPRegFB      mov dword[dspWptr+03F0h],WDSPRegFC      mov dword[dspWptr+03F4h],WDSPRegFD      mov dword[dspWptr+03F8h],WDSPRegFE      mov dword[dspWptr+03FCh],WDSPRegFF   ; first fill all pointer to an invalid access function      mov ecx,256      mov eax,Invalidopcode      mov ebp,0.loop%ifdef __MSDOS__      mov [ds:opcjmptab+ebp],eax%else      mov [opcjmptab+ebp],eax%endif      add ebp,4      dec ecx      jnz .loop   ; now fill the table      mov dword[opcjmptab+00h],Op00      mov dword[opcjmptab+04h],Op01      mov dword[opcjmptab+08h],Op02      mov dword[opcjmptab+0Ch],Op03      mov dword[opcjmptab+010h],Op04      mov dword[opcjmptab+014h],Op05      mov dword[opcjmptab+018h],Op06      mov dword[opcjmptab+01Ch],Op07      mov dword[opcjmptab+020h],Op08      mov dword[opcjmptab+024h],Op09      mov dword[opcjmptab+028h],Op0A      mov dword[opcjmptab+02Ch],Op0B      mov dword[opcjmptab+030h],Op0C      mov dword[opcjmptab+034h],Op0D      mov dword[opcjmptab+038h],Op0E      mov dword[opcjmptab+03Ch],Op0F      mov dword[opcjmptab+040h],Op10      mov dword[opcjmptab+044h],Op11      mov dword[opcjmptab+048h],Op12      mov dword[opcjmptab+04Ch],Op13      mov dword[opcjmptab+050h],Op14      mov dword[opcjmptab+054h],Op15      mov dword[opcjmptab+058h],Op16      mov dword[opcjmptab+05Ch],Op17      mov dword[opcjmptab+060h],Op18      mov dword[opcjmptab+064h],Op19      mov dword[opcjmptab+068h],Op1A      mov dword[opcjmptab+06Ch],Op1B      mov dword[opcjmptab+070h],Op1C      mov dword[opcjmptab+074h],Op1D      mov dword[opcjmptab+078h],Op1E      mov dword[opcjmptab+07Ch],Op1F      mov dword[opcjmptab+080h],Op20      mov dword[opcjmptab+084h],Op21      mov dword[opcjmptab+088h],Op22      mov dword[opcjmptab+08Ch],Op23      mov dword[opcjmptab+090h],Op24      mov dword[opcjmptab+094h],Op25      mov dword[opcjmptab+098h],Op26      mov dword[opcjmptab+09Ch],Op27      mov dword[opcjmptab+0A0h],Op28      mov dword[opcjmptab+0A4h],Op29      mov dword[opcjmptab+0A8h],Op2A      mov dword[opcjmptab+0ACh],Op2B      mov dword[opcjmptab+0B0h],Op2C      mov dword[opcjmptab+0B4h],Op2D      mov dword[opcjmptab+0B8h],Op2E      mov dword[opcjmptab+0BCh],Op2F      mov dword[opcjmptab+0C0h],Op30      mov dword[opcjmptab+0C4h],Op31      mov dword[opcjmptab+0C8h],Op32      mov dword[opcjmptab+0CCh],Op33      mov dword[opcjmptab+0D0h],Op34      mov dword[opcjmptab+0D4h],Op35      mov dword[opcjmptab+0D8h],Op36      mov dword[opcjmptab+0DCh],Op37      mov dword[opcjmptab+0E0h],Op38      mov dword[opcjmptab+0E4h],Op39      mov dword[opcjmptab+0E8h],Op3A      mov dword[opcjmptab+0ECh],Op3B      mov dword[opcjmptab+0F0h],Op3C      mov dword[opcjmptab+0F4h],Op3D      mov dword[opcjmptab+0F8h],Op3E      mov dword[opcjmptab+0FCh],Op3F      mov dword[opcjmptab+0100h],Op40      mov dword[opcjmptab+0104h],Op41      mov dword[opcjmptab+0108h],Op42      mov dword[opcjmptab+010Ch],Op43      mov dword[opcjmptab+0110h],Op44      mov dword[opcjmptab+0114h],Op45      mov dword[opcjmptab+0118h],Op46      mov dword[opcjmptab+011Ch],Op47      mov dword[opcjmptab+0120h],Op48      mov dword[opcjmptab+0124h],Op49      mov dword[opcjmptab+0128h],Op4A      mov dword[opcjmptab+012Ch],Op4B      mov dword[opcjmptab+0130h],Op4C      mov dword[opcjmptab+0134h],Op4D      mov dword[opcjmptab+0138h],Op4E      mov dword[opcjmptab+013Ch],Op4F      mov dword[opcjmptab+0140h],Op50      mov dword[opcjmptab+0144h],Op51      mov dword[opcjmptab+0148h],Op52      mov dword[opcjmptab+014Ch],Op53      mov dword[opcjmptab+0150h],Op54      mov dword[opcjmptab+0154h],Op55      mov dword[opcjmptab+0158h],Op56      mov dword[opcjmptab+015Ch],Op57      mov dword[opcjmptab+0160h],Op58      mov dword[opcjmptab+0164h],Op59      mov dword[opcjmptab+0168h],Op5A      mov dword[opcjmptab+016Ch],Op5B      mov dword[opcjmptab+0170h],Op5C      mov dword[opcjmptab+0174h],Op5D      mov dword[opcjmptab+0178h],Op5E      mov dword[opcjmptab+017Ch],Op5F      mov dword[opcjmptab+0180h],Op60      mov dword[opcjmptab+0184h],Op61      mov dword[opcjmptab+0188h],Op62      mov dword[opcjmptab+018Ch],Op63      mov dword[opcjmptab+0190h],Op64      mov dword[opcjmptab+0194h],Op65      mov dword[opcjmptab+0198h],Op66      mov dword[opcjmptab+019Ch],Op67      mov dword[opcjmptab+01A0h],Op68      mov dword[opcjmptab+01A4h],Op69      mov dword[opcjmptab+01A8h],Op6A      mov dword[opcjmptab+01ACh],Op6B      mov dword[opcjmptab+01B0h],Op6C      mov dword[opcjmptab+01B4h],Op6D      mov dword[opcjmptab+01B8h],Op6E      mov dword[opcjmptab+01BCh],Op6F      mov dword[opcjmptab+01C0h],Op70      mov dword[opcjmptab+01C4h],Op71      mov dword[opcjmptab+01C8h],Op72      mov dword[opcjmptab+01CCh],Op73      mov dword[opcjmptab+01D0h],Op74      mov dword[opcjmptab+01D4h],Op75      mov dword[opcjmptab+01D8h],Op76      mov dword[opcjmptab+01DCh],Op77      mov dword[opcjmptab+01E0h],Op78      mov dword[opcjmptab+01E4h],Op79      mov dword[opcjmptab+01E8h],Op7A      mov dword[opcjmptab+01ECh],Op7B      mov dword[opcjmptab+01F0h],Op7C      mov dword[opcjmptab+01F4h],Op7D      mov dword[opcjmptab+01F8h],Op7E      mov dword[opcjmptab+01FCh],Op7F      mov dword[opcjmptab+0200h],Op80      mov dword[opcjmptab+0204h],Op81      mov dword[opcjmptab+0208h],Op82      mov dword[opcjmptab+020Ch],Op83      mov dword[opcjmptab+0210h],Op84      mov dword[opcjmptab+0214h],Op85      mov dword[opcjmptab+0218h],Op86      mov dword[opcjmptab+021Ch],Op87      mov dword[opcjmptab+0220h],Op88      mov dword[opcjmptab+0224h],Op89      mov dword[opcjmptab+0228h],Op8A      mov dword[opcjmptab+022Ch],Op8B      mov dword[opcjmptab+0230h],Op8C      mov dword[opcjmptab+0234h],Op8D      mov dword[opcjmptab+0238h],Op8E      mov dword[opcjmptab+023Ch],Op8F      mov dword[opcjmptab+0240h],Op90      mov dword[opcjmptab+0244h],Op91      mov dword[opcjmptab+0248h],Op92      mov dword[opcjmptab+024Ch],Op93      mov dword[opcjmptab+0250h],Op94      mov dword[opcjmptab+0254h],Op95      mov dword[opcjmptab+0258h],Op96      mov dword[opcjmptab+025Ch],Op97      mov dword[opcjmptab+0260h],Op98      mov dword[opcjmptab+0264h],Op99      mov dword[opcjmptab+0268h],Op9A      mov dword[opcjmptab+026Ch],Op9B      mov dword[opcjmptab+0270h],Op9C      mov dword[opcjmptab+0274h],Op9D      mov dword[opcjmptab+0278h],Op9E      mov dword[opcjmptab+027Ch],Op9F      mov dword[opcjmptab+0280h],OpA0      mov dword[opcjmptab+0284h],OpA1      mov dword[opcjmptab+0288h],OpA2      mov dword[opcjmptab+028Ch],OpA3      mov dword[opcjmptab+0290h],OpA4      mov dword[opcjmptab+0294h],OpA5      mov dword[opcjmptab+0298h],OpA6      mov dword[opcjmptab+029Ch],OpA7      mov dword[opcjmptab+02A0h],OpA8      mov dword[opcjmptab+02A4h],OpA9      mov dword[opcjmptab+02A8h],OpAA      mov dword[opcjmptab+02ACh],OpAB      mov dword[opcjmptab+02B0h],OpAC      mov dword[opcjmptab+02B4h],OpAD      mov dword[opcjmptab+02B8h],OpAE      mov dword[opcjmptab+02BCh],OpAF      mov dword[opcjmptab+02C0h],OpB0      mov dword[opcjmptab+02C4h],OpB1      mov dword[opcjmptab+02C8h],OpB2      mov dword[opcjmptab+02CCh],OpB3      mov dword[opcjmptab+02D0h],OpB4      mov dword[opcjmptab+02D4h],OpB5      mov dword[opcjmptab+02D8h],OpB6      mov dword[opcjmptab+02DCh],OpB7      mov dword[opcjmptab+02E0h],OpB8      mov dword[opcjmptab+02E4h],OpB9      mov dword[opcjmptab+02E8h],OpBA      mov dword[opcjmptab+02ECh],OpBB      mov dword[opcjmptab+02F0h],OpBC      mov dword[opcjmptab+02F4h],OpBD      mov dword[opcjmptab+02F8h],OpBE      mov dword[opcjmptab+02FCh],OpBF      mov dword[opcjmptab+0300h],OpC0      mov dword[opcjmptab+0304h],OpC1      mov dword[opcjmptab+0308h],OpC2      mov dword[opcjmptab+030Ch],OpC3      mov dword[opcjmptab+0310h],OpC4      mov dword[opcjmptab+0314h],OpC5      mov dword[opcjmptab+0318h],OpC6      mov dword[opcjmptab+031Ch],OpC7      mov dword[opcjmptab+0320h],OpC8      mov dword[opcjmptab+0324h],OpC9      mov dword[opcjmptab+0328h],OpCA      mov dword[opcjmptab+032Ch],OpCB      mov dword[opcjmptab+0330h],OpCC      mov dword[opcjmptab+0334h],OpCD      mov dword[opcjmptab+0338h],OpCE      mov dword[opcjmptab+033Ch],OpCF      mov dword[opcjmptab+0340h],OpD0      mov dword[opcjmptab+0344h],OpD1      mov dword[opcjmptab+0348h],OpD2      mov dword[opcjmptab+034Ch],OpD3      mov dword[opcjmptab+0350h],OpD4      mov dword[opcjmptab+0354h],OpD5      mov dword[opcjmptab+0358h],OpD6      mov dword[opcjmptab+035Ch],OpD7      mov dword[opcjmptab+0360h],OpD8      mov dword[opcjmptab+0364h],OpD9      mov dword[opcjmptab+0368h],OpDA      mov dword[opcjmptab+036Ch],OpDB      mov dword[opcjmptab+0370h],OpDC      mov dword[opcjmptab+0374h],OpDD      mov dword[opcjmptab+0378h],OpDE      mov dword[opcjmptab+037Ch],OpDF      mov dword[opcjmptab+0380h],OpE0      mov dword[opcjmptab+0384h],OpE1      mov dword[opcjmptab+0388h],OpE2      mov dword[opcjmptab+038Ch],OpE3      mov dword[opcjmptab+0390h],OpE4      mov dword[opcjmptab+0394h],OpE5      mov dword[opcjmptab+0398h],OpE6      mov dword[opcjmptab+039Ch],OpE7      mov dword[opcjmptab+03A0h],OpE8      mov dword[opcjmptab+03A4h],OpE9      mov dword[opcjmptab+03A8h],OpEA      mov dword[opcjmptab+03ACh],OpEB      mov dword[opcjmptab+03B0h],OpEC      mov dword[opcjmptab+03B4h],OpED      mov dword[opcjmptab+03B8h],OpEE      mov dword[opcjmptab+03BCh],OpEF      mov dword[opcjmptab+03C0h],OpF0      mov dword[opcjmptab+03C4h],OpF1      mov dword[opcjmptab+03C8h],OpF2      mov dword[opcjmptab+03CCh],OpF3      mov dword[opcjmptab+03D0h],OpF4      mov dword[opcjmptab+03D4h],OpF5      mov dword[opcjmptab+03D8h],OpF6      mov dword[opcjmptab+03DCh],OpF7      mov dword[opcjmptab+03E0h],OpF8      mov dword[opcjmptab+03E4h],OpF9      mov dword[opcjmptab+03E8h],OpFA      mov dword[opcjmptab+03ECh],OpFB      mov dword[opcjmptab+03F0h],OpFC      mov dword[opcjmptab+03F4h],OpFD      mov dword[opcjmptab+03F8h],OpFE      mov dword[opcjmptab+03FCh],OpFF%ifdef __MSDOS__     call SB_alloc_dma%endif.nosound    pop edx    pop ecx    pop ebx    pop eax    retSECTION .bssPSampleBuf resd 24*8NEWSYM LPFsample1, resd 1NEWSYM LPFsample2, resd 1NEWSYM BRRreadahead, resw 4NEWSYM DLPFsamples, resd 8*24section .text%macro ProcessA 0    shr al,4%endmacro%macro ProcessB 0    and al,0Fh%endmacro%macro ProcessSample 1    mov cl,[bshift]    movzx eax,byte[esi]    %1    ;sign extend    xor eax,8    sub eax,8    cmp cl,12    ja %%invalid_range    shl eax,cl    sar eax,1    jmp %%got_delta%%invalid_range    and eax,~0x7FF%%got_delta    mov edx,eax    cmp dword[filter0],240    jne %%notfilter1    mov eax,[prev0]    sar eax,1    add edx,eax    mov eax,[prev0]    neg eax    sar eax,5    add edx,eax%%notfilter1    cmp dword[filter0],488    jne %%notfilter2    mov eax,[prev0]    add edx,eax    mov eax,[prev0]    sar eax,1    add eax,[prev0]    neg eax    sar eax,5    add edx,eax    mov eax,[prev1]    sar eax,1    sub edx,eax    mov eax,[prev1]    sar eax,5    add edx,eax%%notfilter2    cmp dword[filter0],460    jne %%notfilter3    mov eax,[prev0]    add edx,eax    mov eax,[prev0]    shl eax,1    add eax,[prev0]    shl eax,2    add eax,[prev0]    neg eax    sar eax,7    add edx,eax    mov eax,[prev1]    sar eax,1    sub edx,eax    mov eax,[prev1]    sar eax,1    add eax,[prev1]    sar eax,4    add edx,eax

⌨️ 快捷键说明

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