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

📄 table.asm

📁 十七种模拟器源代码 非常有用的作课程设计不可缺少的
💻 ASM
📖 第 1 页 / 共 3 页
字号:
    rep stosd

    ; set 16-bit read memory tables
    mov edi,memtabler16
    ; banks 0-3Fh
    mov eax,regaccessbankr16
    mov ecx,$40
    rep stosd
    ; banks 40-6Fh
    mov eax,memaccessbankr16
    mov ecx,$30
    rep stosd
    ; bank 70-77h
    mov eax,sramaccessbankr16
    mov ecx,8
    rep stosd
    ; bank 78-7D
    mov eax,memaccessbankr16
    mov ecx,6
    rep stosd
    ; bank 7E
    mov eax,wramaccessbankr16
    stosd
    ; bank 7F
    mov eax,eramaccessbankr16
    stosd
    ; banks 80-BF
    mov eax,regaccessbankr16
    mov ecx,$40
    rep stosd
    ; banks C0-FFh
    mov eax,memaccessbankr16
    mov ecx,$40
    rep stosd

    ; set 16-bit write memory tables
    mov edi,memtablew16
    ; banks 0-3Fh
    mov eax,regaccessbankw16
    mov ecx,$40
    rep stosd
    ; banks 40-6Fh
    mov eax,memaccessbankw16
    mov ecx,$30
    rep stosd
    ; bank 70-77h
    mov eax,sramaccessbankw16
    mov ecx,8
    rep stosd
    ; bank 78-7D
    mov eax,memaccessbankw16
    mov ecx,6
    rep stosd
    ; bank 7E
    mov eax,wramaccessbankw16
    stosd
    ; bank 7F
    mov eax,eramaccessbankw16
    stosd
    ; banks 80-BF
    mov eax,regaccessbankw16
    mov ecx,$40
    rep stosd
    ; banks C0-FFh
    mov eax,memaccessbankw16
    mov ecx,$40
    rep stosd
    ret

NEWSYM SetAddressingModesSA1
    ; set 8-bit read memory tables
    mov edi,memtabler8
    ; banks 0-3Fh
    mov eax,regaccessbankr8SA1
    mov ecx,$40
    rep stosd
    ; banks 40-6Fh
    mov eax,SA1RAMaccessbankr8
    mov ecx,$20
    rep stosd
    mov eax,SA1RAMaccessbankr8b
    mov ecx,$10
    rep stosd
    ; bank 70-77h
    mov eax,sramaccessbankr8
    mov ecx,8
    rep stosd
    ; bank 78-7D
    mov eax,memaccessbankr8
    mov ecx,6
    rep stosd
    ; bank 7E
    mov eax,wramaccessbankr8
    stosd
    ; bank 7F
    mov eax,eramaccessbankr8
    stosd
    ; banks 80-BF
    mov eax,regaccessbankr8SA1
    mov ecx,$40
    rep stosd
    ; banks C0-FFh
    mov eax,memaccessbankr8
    mov ecx,$40
    rep stosd

    ; set 8-bit write memory tables
    mov edi,memtablew8
    ; banks 0-3Fh
    mov eax,regaccessbankw8SA1
    mov ecx,$40
    rep stosd
    ; banks 40-6Fh
    mov eax,SA1RAMaccessbankw8
    mov ecx,$20
    rep stosd
    mov eax,SA1RAMaccessbankw8b
    mov ecx,$10
    rep stosd
    ; bank 70-77h
    mov eax,sramaccessbankw8
    mov ecx,8
    rep stosd
    ; bank 78-7D
    mov eax,memaccessbankw8
    mov ecx,6
    rep stosd
    ; bank 7E
    mov eax,wramaccessbankw8
    stosd
    ; bank 7F
    mov eax,eramaccessbankw8
    stosd
    ; banks 80-BF
    mov eax,regaccessbankw8SA1
    mov ecx,$40
    rep stosd
    ; banks C0-FFh
    mov eax,memaccessbankw8
    mov ecx,$40
    rep stosd

    ; set 16-bit read memory tables
    mov edi,memtabler16
    ; banks 0-3Fh
    mov eax,regaccessbankr16SA1
    mov ecx,$40
    rep stosd
    ; banks 40-6Fh
    mov eax,SA1RAMaccessbankr16
    mov ecx,$20
    rep stosd
    mov eax,SA1RAMaccessbankr16b
    mov ecx,$10
    rep stosd
    ; bank 70-77h
    mov eax,sramaccessbankr16
    mov ecx,8
    rep stosd
    ; bank 78-7D
    mov eax,memaccessbankr16
    mov ecx,6
    rep stosd
    ; bank 7E
    mov eax,wramaccessbankr16
    stosd
    ; bank 7F
    mov eax,eramaccessbankr16
    stosd
    ; banks 80-BF
    mov eax,regaccessbankr16SA1
    mov ecx,$40
    rep stosd
    ; banks C0-FFh
    mov eax,memaccessbankr16
    mov ecx,$40
    rep stosd

    ; set 16-bit write memory tables
    mov edi,memtablew16
    ; banks 0-3Fh
    mov eax,regaccessbankw16SA1
    mov ecx,$40
    rep stosd
    ; banks 40-6Fh
    mov eax,SA1RAMaccessbankw16
    mov ecx,$20
    rep stosd
    mov eax,SA1RAMaccessbankw16b
    mov ecx,$10
    rep stosd
    ; bank 70-77h
    mov eax,sramaccessbankw16
    mov ecx,8
    rep stosd
    ; bank 78-7D
    mov eax,memaccessbankw16
    mov ecx,6
    rep stosd
    ; bank 7E
    mov eax,wramaccessbankw16
    stosd
    ; bank 7F
    mov eax,eramaccessbankw16
    stosd
    ; banks 80-BF
    mov eax,regaccessbankw16SA1
    mov ecx,$40
    rep stosd
    ; banks C0-FFh
    mov eax,memaccessbankw16
    mov ecx,$40
    rep stosd
    ret

eopINVALID
    ret

;*******************************************************
; Cpu Cycles                    Sets the CPU cycle table
;*******************************************************
NEWSYM cpucycle
         db 8, 6, 8, 4, 5, 3, 5, 6, 3, 2, 2, 4, 6, 4, 6, 5
         db 2, 5, 5, 7, 5, 4, 6, 6, 2, 4, 2, 2, 6, 4, 7, 5
         db 6, 6, 8, 4, 3, 3, 5, 6, 4, 2, 2, 5, 4, 4, 6, 5
         db 2, 5, 5, 7, 4, 4, 6, 6, 2, 4, 2, 2, 4, 4, 7, 5
         db 7, 6, 2, 4, 7, 3, 5, 6, 3, 2, 2, 3, 3, 4, 6, 5
         db 2, 5, 5, 7, 7, 4, 6, 6, 2, 4, 3, 2, 4, 4, 7, 5
         db 6, 6, 6, 4, 3, 3, 5, 6, 4, 2, 2, 6, 5, 4, 6, 5
         db 2, 5, 5, 7, 4, 4, 6, 6, 2, 4, 4, 2, 6, 4, 7, 5
         db 2, 6, 3, 4, 3, 3, 3, 6, 2, 2, 2, 3, 4, 4, 4, 5
         db 2, 6, 5, 7, 4, 4, 4, 6, 2, 5, 2, 2, 4, 5, 5, 5
         db 2, 6, 2, 4, 3, 3, 3, 6, 2, 2, 2, 4, 4, 4, 4, 5
         db 2, 5, 5, 7, 4, 4, 4, 6, 2, 4, 2, 2, 4, 4, 4, 5
         db 2, 6, 3, 4, 3, 3, 5, 6, 2, 2, 2, 3, 4, 4, 4, 5
         db 2, 5, 5, 7, 6, 4, 6, 6, 2, 4, 3, 3, 6, 4, 7, 5
         db 2, 6, 3, 4, 3, 3, 5, 6, 2, 2, 2, 3, 4, 4, 6, 5
         db 2, 5, 5, 7, 5, 4, 6, 6, 2, 4, 4, 2, 6, 4, 7, 5
;  |  2 8  |  2 6   |  2 8   |   2 4    |  2 5   |  2 3   |  2 5   |   2 6   |  1 3  |  2 2   |  1 2  |  1 4  |  3 6   |  3 4   |  3 6   |   4 5   |
;  |  2 2  |  2 5   |  2 5   |   2 7    |  2 5   |  2 4   |  2 6   |   2 6   |  1 2  |  3 4   |  1 2  |  1 2  |  3 6   |  3 4   |  3 7   |   4 5   |
;  |  3 6  |  2 6   |  4 8   |   2 4    |  2 3   |  2 3   |  2 5   |  2 6    |  1 4  |  2 2   |  1 2  |  1 5  |  3 4   |  3 4   |  3 6   |   4 5   |
;  |  2 2  |  2 5   |  2 5   |   2 7    |  2 4   |  2 4   |  2 6   |  2 6    |  1 2  |  3 4   |  1 2  |  1 2  |  3 4   |  3 4   |  3 7   |   4 5   |
;  |  1 7  |  2 6   |  2 2   |   2 4    |  3 7   |  2 3   |  2 5   |  2 6    |  1 3  |  2 2   |  1 2  |  1 3  |  3 3   |  3 4   |  3 6   |   4 5   |
;  |  2 2  |  2 5   |  2 5   |   2 7    |  3 7   |  2 4   |  2 6   |  2 6    |  1 2  |  3 4   |  1 3  |  1 2  |  4 4   |  3 4   |  3 7   |   4 5   |
;  |  1 6  |  2 6   |  3 6   |   2 4    |  2 3   |  2 3   |  2 5   |  2 6    |  1 4  |  2 2   |  1 2  |  1 6  |  3 5   |  3 4   |  3 6   |   4 5   |
;  |  2 2  |  2 5   |  2 5   |   2 7    |  2 4   |  2 4   |  2 6   |  2 6    |  1 2  |  3 4   |  1 4  |  1 2  |  3 6   |  3 4   |  3 7   |   4 5   |
;  |  2 2  |  2 6   |  3 3   |   2 4    |  2 3   |  2 3   |  2 3   |  2 6    |  1 2  |  2 2   |  1 2  |  1 3  |  3 4   |  3 4   |  3 4   |   4 5   |
;  |  2 2  |  2 6   |  2 5   |   2 7    |  2 4   |  2 4   |  2 4   |  2 6    |  1 2  |  3 5   |  1 2  |  1 2  |  3 4   |  3 5   |  3 5   |   4 5   |
;  |  2 2  |  2 6   |  2 2   |   2 4    |  2 3   |  2 3   |  2 3   |  2 6    |  1 2  |  2 2   |  1 2  |  1 4  |  3 4   |  3 4   |  3 4   |   4 5   |
;  |  2 2  |  2 5   |  2 5   |   2 7    |  2 4   |  2 4   |  2 4   |  2 6    |  1 2  |  3 4   |  1 2  |  1 2  |  3 4   |  3 4   |  3 4   |   4 5   |
;  |  2 2  |  2 6   |  2 3   |   2 4    |  2 3   |  2 3   |  2 5   |  2 6    | 1 2   |  2 2   |  1 2  |  1 3  |  3 4   |  3 4   |  3 4   |   4 5   |
;  |  2 2  |  2 5   |  2 5   |   2 7    |  2 6   |  2 4   |  2 6   |  2 6    |  1 2  |  3 4   |  1 3  |  1 3  |  3 6   |  3 4   |  3 7   |   4 5   |
;  |  2 2  |  2 6   |  2 3   |   2 4    |  2 3   |  2 3   |  2 5   |  2 6    |  1 2  |  2 2   |  1 2  |  1 3  |  3 4   |  3 4   |  3 6   |   4 5   |
;  |  2 2  |  2 5   |  2 5   |   2 7    |  3 5   |  2 4   |  2 6   |   2 6   |  1 2  |  3 4   |  1 4  |  1 2  |  3 6   |  3 4   |  3 7   |   4 5   |

;*******************************************************
; Set Tables     Sets the opcode tables according to EDI
;*******************************************************
; This function sets all the non-multiple entries

NEWSYM settables
    ;row 0
    mov dword[edi+00h*4],COp00
    mov dword[edi+01h*4],COp01m8
    mov dword[edi+02h*4],COp02
    mov dword[edi+03h*4],COp03m8
    mov dword[edi+04h*4],COp04m8
    mov dword[edi+05h*4],COp05m8
    mov dword[edi+06h*4],COp06m8
    mov dword[edi+07h*4],COp07m8
    mov dword[edi+08h*4],COp08
    mov dword[edi+09h*4],COp09m8
    mov dword[edi+0Ah*4],COp0Am8
    mov dword[edi+0Bh*4],COp0B
    mov dword[edi+0Ch*4],COp0Cm8
    mov dword[edi+0Dh*4],COp0Dm8
    mov dword[edi+0Eh*4],COp0Em8
    mov dword[edi+0Fh*4],COp0Fm8
    mov dword[edi+10h*4],COp10
    mov dword[edi+11h*4],COp11m8
    mov dword[edi+12h*4],COp12m8
    mov dword[edi+13h*4],COp13m8
    mov dword[edi+14h*4],COp14m8
    mov dword[edi+15h*4],COp15m8
    mov dword[edi+16h*4],COp16m8
    mov dword[edi+17h*4],COp17m8
    mov dword[edi+18h*4],COp18
    mov dword[edi+19h*4],COp19m8
    mov dword[edi+1Ah*4],COp1Am8
    mov dword[edi+1Bh*4],COp1B
    mov dword[edi+1Ch*4],COp1Cm8
    mov dword[edi+1Dh*4],COp1Dm8
    mov dword[edi+1Eh*4],COp1Em8
    mov dword[edi+1Fh*4],COp1Fm8
    mov dword[edi+20h*4],COp20
    mov dword[edi+21h*4],COp21m8
    mov dword[edi+22h*4],COp22
    mov dword[edi+23h*4],COp23m8
    mov dword[edi+24h*4],COp24m8
    mov dword[edi+25h*4],COp25m8
    mov dword[edi+26h*4],COp26m8
    mov dword[edi+27h*4],COp27m8
    mov dword[edi+28h*4],COp28
    mov dword[edi+29h*4],COp29m8
    mov dword[edi+2Ah*4],COp2Am8
    mov dword[edi+2Bh*4],COp2B
    mov dword[edi+2Ch*4],COp2Cm8
    mov dword[edi+2Dh*4],COp2Dm8
    mov dword[edi+2Eh*4],COp2Em8
    mov dword[edi+2Fh*4],COp2Fm8
    mov dword[edi+30h*4],COp30
    mov dword[edi+31h*4],COp31m8
    mov dword[edi+32h*4],COp32m8
    mov dword[edi+33h*4],COp33m8
    mov dword[edi+34h*4],COp34m8
    mov dword[edi+35h*4],COp35m8
    mov dword[edi+36h*4],COp36m8
    mov dword[edi+37h*4],COp37m8
    mov dword[edi+38h*4],COp38
    mov dword[edi+39h*4],COp39m8
    mov dword[edi+3Ah*4],COp3Am8
    mov dword[edi+3Bh*4],COp3B
    mov dword[edi+3Ch*4],COp3Cm8
    mov dword[edi+3Dh*4],COp3Dm8
    mov dword[edi+3Eh*4],COp3Em8
    mov dword[edi+3Fh*4],COp3Fm8
    mov dword[edi+40h*4],COp40
    mov dword[edi+41h*4],COp41m8
    mov dword[edi+42h*4],COp42
    mov dword[edi+43h*4],COp43m8
    mov dword[edi+44h*4],COp44
    mov dword[edi+45h*4],COp45m8
    mov dword[edi+46h*4],COp46m8
    mov dword[edi+47h*4],COp47m8
    mov dword[edi+48h*4],COp48m8
    mov dword[edi+49h*4],COp49m8
    mov dword[edi+4Ah*4],COp4Am8
    mov dword[edi+4Bh*4],COp4B
    mov dword[edi+4Ch*4],COp4C
    mov dword[edi+4Dh*4],COp4Dm8
    mov dword[edi+4Eh*4],COp4Em8
    mov dword[edi+4Fh*4],COp4Fm8
    mov dword[edi+50h*4],COp50
    mov dword[edi+51h*4],COp51m8
    mov dword[edi+52h*4],COp52m8
    mov dword[edi+53h*4],COp53m8
    mov dword[edi+54h*4],COp54
    mov dword[edi+55h*4],COp55m8
    mov dword[edi+56h*4],COp56m8
    mov dword[edi+57h*4],COp57m8
    mov dword[edi+58h*4],COp58
    mov dword[edi+59h*4],COp59m8
    mov dword[edi+5Ah*4],COp5Ax8
    mov dword[edi+5Bh*4],COp5B
    mov dword[edi+5Ch*4],COp5C
    mov dword[edi+5Dh*4],COp5Dm8
    mov dword[edi+5Eh*4],COp5Em8
    mov dword[edi+5Fh*4],COp5Fm8
    mov dword[edi+60h*4],COp60
    mov dword[edi+61h*4],COp61m8nd
    mov dword[edi+62h*4],COp62
    mov dword[edi+63h*4],COp63m8nd
    mov dword[edi+64h*4],COp64m8
    mov dword[edi+65h*4],COp65m8nd
    mov dword[edi+66h*4],COp66m8
    mov dword[edi+67h*4],COp67m8nd
    mov dword[edi+68h*4],COp68m8
    mov dword[edi+69h*4],COp69m8nd
    mov dword[edi+6Ah*4],COp6Am8
    mov dword[edi+6Bh*4],COp6B
    mov dword[edi+6Ch*4],COp6C
    mov dword[edi+6Dh*4],COp6Dm8nd
    mov dword[edi+6Eh*4],COp6Em8
    mov dword[edi+6Fh*4],COp6Fm8nd
    mov dword[edi+70h*4],COp70
    mov dword[edi+71h*4],COp71m8nd
    mov dword[edi+72h*4],COp72m8nd
    mov dword[edi+73h*4],COp73m8nd
    mov dword[edi+74h*4],COp74m8
    mov dword[edi+75h*4],COp75m8nd
    mov dword[edi+76h*4],COp76m8
    mov dword[edi+77h*4],COp77m8nd
    mov dword[edi+78h*4],COp78
    mov dword[edi+79h*4],COp79m8nd
    mov dword[edi+7Ah*4],COp7Ax8
    mov dword[edi+7Bh*4],COp7B
    mov dword[edi+7Ch*4],COp7C
    mov dword[edi+7Dh*4],COp7Dm8nd
    mov dword[edi+7Eh*4],COp7Em8
    mov dword[edi+7Fh*4],COp7Fm8nd
    mov dword[edi+80h*4],COp80
    mov dword[edi+81h*4],COp81m8
    mov dword[edi+82h*4],COp82
    mov dword[edi+83h*4],COp83m8
    mov dword[edi+84h*4],COp84x8
    mov dword[edi+85h*4],COp85m8
    mov dword[edi+86h*4],COp86x8
    mov dword[edi+87h*4],COp87m8

⌨️ 快捷键说明

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