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

📄 addrni.inc

📁 linux下的任天堂模拟器代码。供大家参考。
💻 INC
字号:
;Copyright (C) 1997-2007 ZSNES Team ( zsKnight, _Demo_, pagefault, Nach );;http://www.zsnes.com;http://sourceforge.net/projects/zsnes;https://zsnes.bountysource.com;;This program is free software; you can redistribute it and/or;modify it under the terms of the GNU General Public License;version 2 as published by the Free Software Foundation.;;This program is distributed in the hope that it will be useful,;but WITHOUT ANY WARRANTY; without even the implied warranty of;MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the;GNU General Public License for more details.;;You should have received a copy of the GNU General Public License;along with this program; if not, write to the Free Software;Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.;*******************************************************; Address Modes;*******************************************************; 1. Immediate Addressing -- #    - DONE IN PROGRAM%macro addr_I_8brni 0    mov al,[esi]%endmacro%macro addr_I_16brni 0    mov ax,[esi]%endmacro; 2. Absolute -- a (TESTED)%macro addr_a_8brni 0    mov cx,[esi]    mov bl,[xdb]    call dword near [memtabler8+ebx*4]%endmacro%macro addr_a_16brni 0    mov cx,[esi]    mov bl,[xdb]    call dword near [memtabler16+ebx*4]%endmacro; 3. Absolute Long -- al%macro addr_al_8brni 0    mov cx,[esi]    mov bl,[esi+2]    call dword near [memtabler8+ebx*4]%endmacro%macro addr_al_16brni 0    mov cx,[esi]    mov bl,[esi+2]    call dword near [memtabler16+ebx*4]%endmacro; 4. Direct -- d (TESTED)%macro addr_d_8brni 0    mov bl,[esi]    mov ecx,[xd]    call dword near [DPageR8]%endmacro%macro addr_d_16brni 0    mov bl,[esi]    mov ecx,[xd]    call dword near [DPageR16]%endmacro; 5. Accumulator -- A%macro addr_A_8brni 0    mov al,[xa]%endmacro%macro addr_A_16brni 0    mov ax,[xa]%endmacro; 7. Direct Indirect Indexed -- (d),y%macro addr_BdBCy_8brni 0    mov bl,[esi]    mov ecx,[xd]    call dword near [DPageR16]    mov cx,ax    mov bl,[xdb]    add cx,[xy]    jnc .npb    inc bl.npb    call dword near [memtabler8+ebx*4]%endmacro%macro addr_BdBCy_16brni 0    mov bl,[esi]    mov ecx,[xd]    call dword near [DPageR16]    mov cx,ax    mov bl,[xdb]    add cx,[xy]    jnc .npb    inc bl.npb    call dword near [memtabler16+ebx*4]%endmacro; 8. Direct Indirect Indexed Long -- [d],y%macro addr_LdLCy_8brni 0    mov ecx,[xd]    mov bl,[esi]    add cx,bx    push cx    call membank0r16    pop cx    add cx,2    push ax    call membank0r8    mov bl,al    pop ax    mov cx,ax    add cx,[xy]    jnc .npb    inc bl.npb    call dword near [memtabler8+ebx*4]%endmacro%macro addr_LdLCy_16brni 0    mov ecx,[xd]    mov bl,[esi]    add cx,bx    push cx    call membank0r16    pop cx    add cx,2    push ax    call membank0r8    mov bl,al    pop ax    mov cx,ax    add cx,[xy]    jnc .npb    inc bl.npb    call dword near [memtabler16+ebx*4]%endmacro; 9. Direct Indexed Indirect -- (d,x)%macro addr_BdCxB_8brni 0    mov ecx,[xd]    mov bl,[esi]    add cx,bx    add cx,[xx]    call membank0r16    mov cx,ax    mov bl,[xdb]    call dword near [memtabler8+ebx*4]%endmacro%macro addr_BdCxB_16brni 0    mov ecx,[xd]    mov bl,[esi]    add cx,bx    add cx,[xx]    call membank0r16    mov cx,ax    mov bl,[xdb]    call dword near [memtabler16+ebx*4]%endmacro; 10. Direct Indexed With X -- d,x%macro addr_dCx_8brni 0    mov ecx,[xd]    mov bl,[esi]    add cx,bx    add cx,[xx]    call membank0r8%endmacro%macro addr_dCx_16brni 0    mov ecx,[xd]    mov bl,[esi]    add cx,bx    add cx,[xx]    call membank0r16%endmacro; 11. Direct Indexed With Y -- d,y%macro addr_dCy_8brni 0    mov ecx,[xd]    mov bl,[esi]    add cx,bx    add cx,[xy]    call membank0r8%endmacro%macro addr_dCy_16brni 0    mov ecx,[xd]    mov bl,[esi]    add cx,bx    add cx,[xy]    call membank0r16%endmacro; 12. Absolute Indexed With X -- a,x%macro addr_aCx_8brni 0    mov cx,[esi]    mov bl,[xdb]    add cx,[xx]    jnc .npb    inc bl.npb    call dword near [memtabler8+ebx*4]%endmacro%macro addr_aCx_16brni 0    mov cx,[esi]    mov bl,[xdb]    add cx,[xx]    jnc .npb    inc bl.npb    call dword near [memtabler16+ebx*4]%endmacro; 13. Absolute Indexed With Y -- a,y%macro addr_aCy_8brni 0    mov cx,[esi]    mov bl,[xdb]    add cx,[xy]    jnc .npb    inc bl.npb    call dword near [memtabler8+ebx*4]%endmacro%macro addr_aCy_16brni 0    mov cx,[esi]    mov bl,[xdb]    add cx,[xy]    jnc .npb    inc bl.npb    call dword near [memtabler16+ebx*4]%endmacro; 14. Absolute Long Indexed With X -- al,x%macro addr_alCx_8brni 0    mov cx,[esi]    mov bl,[esi+2]    add cx,[xx]    jnc .npb    inc bl.npb    call dword near [memtabler8+ebx*4]%endmacro%macro addr_alCx_16brni 0    mov cx,[esi]    mov bl,[esi+2]    add cx,[xx]    jnc .npb    inc bl.npb    call dword near [memtabler16+ebx*4]%endmacro; 18. Direct Indirect -- (d);                 ___________________;    Instruction: | opcode | offset |;                 ~~~~~~~~~~~~~~~~~~~;                          | Direct Register   |;                         +         |  offset  |;                          ---------------------;                 |  00    |  direct address   |;    then:;                 |  00    | (direct address)  |;               + |  DB    |;                -------------------------------;    Address:     |     effective address      |%macro addr_BdB_8brni 0    mov bl,[esi]    mov ecx,[xd]    call dword near [DPageR16]    mov cx,ax    mov bl,[xdb]    call dword near [memtabler8+ebx*4]%endmacro%macro addr_BdB_16brni 0    mov bl,[esi]    mov ecx,[xd]    call dword near [DPageR16]    mov cx,ax    mov bl,[xdb]    call dword near [memtabler16+ebx*4]%endmacro; 19. Direct Indirect Long -- [d];                 ___________________;    Instruction: | opcode | offset |;                 ~~~~~~~~~~~~~~~~~~~;                          | Direct Register   |;                         +         |  offset  |;                          ---------------------;                 |  00    |  direct address   |;    then:;                -------------------------------;    Address:     |       (direct address)     |%macro addr_LdL_8brni 0    mov bl,[esi]    mov ecx,[xd]    add cx,bx    push cx    call membank0r16    pop cx    add cx,2    push ax    call membank0r8    mov bl,al    pop ax    mov cx,ax    call dword near [memtabler8+ebx*4]%endmacro%macro addr_LdL_16brni 0    mov bl,[esi]    mov ecx,[xd]    add cx,bx    push cx    call membank0r16    pop cx    add cx,2    push ax    call membank0r8    mov bl,al    pop ax    mov cx,ax    call dword near [memtabler16+ebx*4]%endmacro; 22. Stack Relative -- d,s%macro addr_dCs_8brni 0    mov bl,[esi]    mov cx,[xs]    add cx,bx    call membank0r8%endmacro%macro addr_dCs_16brni 0    mov bl,[esi]    mov cx,[xs]    add cx,bx    call membank0r16%endmacro; 23. Stack Relative Indirect Indexed -- (d,s),y (TESTED)%macro addr_BdCsBCy_8brni 0    mov bl,[esi]    mov cx,[xs]    add cx,bx    call membank0r16    mov cx,ax    mov bl,[xdb]    add cx,[xy]    jnc .npb    inc bl.npb    call dword near [memtabler8+ebx*4]%endmacro%macro addr_BdCsBCy_16brni 0    mov bl,[esi]    mov cx,[xs]    add cx,bx    call membank0r16    mov cx,ax    mov bl,[xdb]    add cx,[xy]    jnc .npb    inc bl.npb    call dword near [memtabler16+ebx*4]%endmacro

⌨️ 快捷键说明

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