📄 fxemu2c.asm
字号:
NEWSYM FxOpd7E ; AND RN register & register ANDRNc 14NEWSYM FxOpd7F ; AND RN register & register FETCHPIPE mov eax,[esi] ; Read Source mov ebx,ebp sub ebx,[SfxCPB] and eax,ebx inc ebp mov [SfxSignZero],eax mov [edi],eax ; Write Destination CLRFLAGS FXReturnNEWSYM FxOpd71A1 ; BIC RN register & ~register BICRNc 1NEWSYM FxOpd72A1 ; BIC RN register & ~register BICRNc 2NEWSYM FxOpd73A1 ; BIC RN register & ~register BICRNc 3NEWSYM FxOpd74A1 ; BIC RN register & ~register BICRNc 4NEWSYM FxOpd75A1 ; BIC RN register & ~register BICRNc 5NEWSYM FxOpd76A1 ; BIC RN register & ~register BICRNc 6NEWSYM FxOpd77A1 ; BIC RN register & ~register BICRNc 7NEWSYM FxOpd78A1 ; BIC RN register & ~register BICRNc 8NEWSYM FxOpd79A1 ; BIC RN register & ~register BICRNc 9NEWSYM FxOpd7AA1 ; BIC RN register & ~register BICRNc 10NEWSYM FxOpd7BA1 ; BIC RN register & ~register BICRNc 11NEWSYM FxOpd7CA1 ; BIC RN register & ~register BICRNc 12NEWSYM FxOpd7DA1 ; BIC RN register & ~register BICRNc 13NEWSYM FxOpd7EA1 ; BIC RN register & ~register BICRNc 14NEWSYM FxOpd7FA1 ; 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 [SfxSignZero],eax mov [edi],eax ; Write Destination CLRFLAGS FXReturnNEWSYM FxOpd71A2 ; ANDIRNc and #n - register & immediate ANDIRNc 1NEWSYM FxOpd72A2 ; ANDIRNc and #n - register & immediate ANDIRNc 2NEWSYM FxOpd73A2 ; ANDIRNc and #n - register & immediate ANDIRNc 3NEWSYM FxOpd74A2 ; ANDIRNc and #n - register & immediate ANDIRNc 4NEWSYM FxOpd75A2 ; ANDIRNc and #n - register & immediate ANDIRNc 5NEWSYM FxOpd76A2 ; ANDIRNc and #n - register & immediate ANDIRNc 6NEWSYM FxOpd77A2 ; ANDIRNc and #n - register & immediate ANDIRNc 7NEWSYM FxOpd78A2 ; ANDIRNc and #n - register & immediate ANDIRNc 8NEWSYM FxOpd79A2 ; ANDIRNc and #n - register & immediate ANDIRNc 9NEWSYM FxOpd7AA2 ; ANDIRNc and #n - register & immediate ANDIRNc 10NEWSYM FxOpd7BA2 ; ANDIRNc and #n - register & immediate ANDIRNc 11NEWSYM FxOpd7CA2 ; ANDIRNc and #n - register & immediate ANDIRNc 12NEWSYM FxOpd7DA2 ; ANDIRNc and #n - register & immediate ANDIRNc 13NEWSYM FxOpd7EA2 ; ANDIRNc and #n - register & immediate ANDIRNc 14NEWSYM FxOpd7FA2 ; ANDIRNc and #n - register & immediate ANDIRNc 15NEWSYM FxOpd71A3 ; BICIRNc register & ~immediate BICIRNc 1 ^ 0FFFFhNEWSYM FxOpd72A3 ; BICIRNc register & ~immediate BICIRNc 2 ^ 0FFFFhNEWSYM FxOpd73A3 ; BICIRNc register & ~immediate BICIRNc 3 ^ 0FFFFhNEWSYM FxOpd74A3 ; BICIRNc register & ~immediate BICIRNc 4 ^ 0FFFFhNEWSYM FxOpd75A3 ; BICIRNc register & ~immediate BICIRNc 5 ^ 0FFFFhNEWSYM FxOpd76A3 ; BICIRNc register & ~immediate BICIRNc 6 ^ 0FFFFhNEWSYM FxOpd77A3 ; BICIRNc register & ~immediate BICIRNc 7 ^ 0FFFFhNEWSYM FxOpd78A3 ; BICIRNc register & ~immediate BICIRNc 8 ^ 0FFFFhNEWSYM FxOpd79A3 ; BICIRNc register & ~immediate BICIRNc 9 ^ 0FFFFhNEWSYM FxOpd7AA3 ; BICIRNc register & ~immediate BICIRNc 10 ^ 0FFFFhNEWSYM FxOpd7BA3 ; BICIRNc register & ~immediate BICIRNc 11 ^ 0FFFFhNEWSYM FxOpd7CA3 ; BICIRNc register & ~immediate BICIRNc 12 ^ 0FFFFhNEWSYM FxOpd7DA3 ; BICIRNc register & ~immediate BICIRNc 13 ^ 0FFFFhNEWSYM FxOpd7EA3 ; BICIRNc register & ~immediate BICIRNc 14 ^ 0FFFFhNEWSYM FxOpd7FA3 ; BICIRNc register & ~immediate BICIRNc 15 ^ 0FFFFhNEWSYM FxOpd80 ; MULTRNc 8 bit to 16 bit signed multiply, register * register MULTRNc 0NEWSYM FxOpd81 ; MULTRNc 8 bit to 16 bit signed multiply, register * register MULTRNc 1NEWSYM FxOpd82 ; MULTRNc 8 bit to 16 bit signed multiply, register * register MULTRNc 2NEWSYM FxOpd83 ; MULTRNc 8 bit to 16 bit signed multiply, register * register MULTRNc 3NEWSYM FxOpd84 ; MULTRNc 8 bit to 16 bit signed multiply, register * register MULTRNc 4NEWSYM FxOpd85 ; MULTRNc 8 bit to 16 bit signed multiply, register * register MULTRNc 5NEWSYM FxOpd86 ; MULTRNc 8 bit to 16 bit signed multiply, register * register MULTRNc 6NEWSYM FxOpd87 ; MULTRNc 8 bit to 16 bit signed multiply, register * register MULTRNc 7NEWSYM FxOpd88 ; MULTRNc 8 bit to 16 bit signed multiply, register * register MULTRNc 8NEWSYM FxOpd89 ; MULTRNc 8 bit to 16 bit signed multiply, register * register MULTRNc 9NEWSYM FxOpd8A ; MULTRNc 8 bit to 16 bit signed multiply, register * register MULTRNc 10NEWSYM FxOpd8B ; MULTRNc 8 bit to 16 bit signed multiply, register * register MULTRNc 11NEWSYM FxOpd8C ; MULTRNc 8 bit to 16 bit signed multiply, register * register MULTRNc 12NEWSYM FxOpd8D ; MULTRNc 8 bit to 16 bit signed multiply, register * register MULTRNc 13NEWSYM FxOpd8E ; MULTRNc 8 bit to 16 bit signed multiply, register * register MULTRNc 14NEWSYM FxOpd8F ; MULTRNc 8 bit to 16 bit signed multiply, register * register FETCHPIPE mov ebx,ebp mov al,[esi] ; Read Source sub ebx,[SfxCPB] imul bl inc ebp and eax,0FFFFh mov [SfxSignZero],eax mov [edi],eax ; Write Destination CLRFLAGS FXReturnNEWSYM FxOpd80A1 ; UMULRN 8 bit to 16 bit unsigned multiply, register * register UMULTRNc 0NEWSYM FxOpd81A1 ; UMULRN 8 bit to 16 bit unsigned multiply, register * register UMULTRNc 1NEWSYM FxOpd82A1 ; UMULRN 8 bit to 16 bit unsigned multiply, register * register UMULTRNc 2NEWSYM FxOpd83A1 ; UMULRN 8 bit to 16 bit unsigned multiply, register * register UMULTRNc 3NEWSYM FxOpd84A1 ; UMULRN 8 bit to 16 bit unsigned multiply, register * register UMULTRNc 4NEWSYM FxOpd85A1 ; UMULRN 8 bit to 16 bit unsigned multiply, register * register UMULTRNc 5NEWSYM FxOpd86A1 ; UMULRN 8 bit to 16 bit unsigned multiply, register * register UMULTRNc 6NEWSYM FxOpd87A1 ; UMULRN 8 bit to 16 bit unsigned multiply, register * register UMULTRNc 7NEWSYM FxOpd88A1 ; UMULRN 8 bit to 16 bit unsigned multiply, register * register UMULTRNc 8NEWSYM FxOpd89A1 ; UMULRN 8 bit to 16 bit unsigned multiply, register * register UMULTRNc 9NEWSYM FxOpd8AA1 ; UMULRN 8 bit to 16 bit unsigned multiply, register * register UMULTRNc 10NEWSYM FxOpd8BA1 ; UMULRN 8 bit to 16 bit unsigned multiply, register * register UMULTRNc 11NEWSYM FxOpd8CA1 ; UMULRN 8 bit to 16 bit unsigned multiply, register * register UMULTRNc 12NEWSYM FxOpd8DA1 ; UMULRN 8 bit to 16 bit unsigned multiply, register * register UMULTRNc 13NEWSYM FxOpd8EA1 ; UMULRN 8 bit to 16 bit unsigned multiply, register * register UMULTRNc 14NEWSYM FxOpd8FA1 ; UMULRN 8 bit to 16 bit unsigned multiply, register * register FETCHPIPE mov ebx,ebp mov al,[esi] ; Read Source sub ebx,[SfxCPB] mul bl inc ebp and eax,0FFFFh mov [SfxSignZero],eax mov [edi],eax ; Write Destination CLRFLAGS FXReturnNEWSYM FxOpd80A2 ; MULIRN 8 bit to 16 bit signed multiply, register * immediate MULTIRNc 0NEWSYM FxOpd81A2 ; MULIRN 8 bit to 16 bit signed multiply, register * immediate MULTIRNc 1NEWSYM FxOpd82A2 ; MULIRN 8 bit to 16 bit signed multiply, register * immediate MULTIRNc 2NEWSYM FxOpd83A2 ; MULIRN 8 bit to 16 bit signed multiply, register * immediate MULTIRNc 3NEWSYM FxOpd84A2 ; MULIRN 8 bit to 16 bit signed multiply, register * immediate MULTIRNc 4NEWSYM FxOpd85A2 ; MULIRN 8 bit to 16 bit signed multiply, register * immediate MULTIRNc 5NEWSYM FxOpd86A2 ; MULIRN 8 bit to 16 bit signed multiply, register * immediate MULTIRNc 6NEWSYM FxOpd87A2 ; MULIRN 8 bit to 16 bit signed multiply, register * immediate MULTIRNc 7NEWSYM FxOpd88A2 ; MULIRN 8 bit to 16 bit signed multiply, register * immediate MULTIRNc 8NEWSYM FxOpd89A2 ; MULIRN 8 bit to 16 bit signed multiply, register * immediate MULTIRNc 9NEWSYM FxOpd8AA2 ; MULIRN 8 bit to 16 bit signed multiply, register * immediate MULTIRNc 10NEWSYM FxOpd8BA2 ; MULIRN 8 bit to 16 bit signed multiply, register * immediate MULTIRNc 11NEWSYM FxOpd8CA2 ; MULIRN 8 bit to 16 bit signed multiply, register * immediate MULTIRNc 12NEWSYM FxOpd8DA2 ; MULIRN 8 bit to 16 bit signed multiply, register * immediate MULTIRNc 13NEWSYM FxOpd8EA2 ; MULIRN 8 bit to 16 bit signed multiply, register * immediate MULTIRNc 14NEWSYM FxOpd8FA2 ; MULIRN 8 bit to 16 bit signed multiply, register * immediate MULTIRNc 15NEWSYM FxOpd80A3 ;UMULIRN 8 bit to 16 bit unsigned multiply, register * immediate UMULTIRNc 0NEWSYM FxOpd81A3 ;UMULIRN 8 bit to 16 bit unsigned multiply, register * immediate UMULTIRNc 1NEWSYM FxOpd82A3 ;UMULIRN 8 bit to 16 bit unsigned multiply, register * immediate UMULTIRNc 2NEWSYM FxOpd83A3 ;UMULIRN 8 bit to 16 bit unsigned multiply, register * immediate UMULTIRNc 3NEWSYM FxOpd84A3 ;UMULIRN 8 bit to 16 bit unsigned multiply, register * immediate UMULTIRNc 4NEWSYM FxOpd85A3 ;UMULIRN 8 bit to 16 bit unsigned multiply, register * immediate UMULTIRNc 5NEWSYM FxOpd86A3 ;UMULIRN 8 bit to 16 bit unsigned multiply, register * immediate UMULTIRNc 6NEWSYM FxOpd87A3 ;UMULIRN 8 bit to 16 bit unsigned multiply, register * immediate UMULTIRNc 7NEWSYM FxOpd88A3 ;UMULIRN 8 bit to 16 bit unsigned multiply, register * immediate UMULTIRNc 8NEWSYM FxOpd89A3 ;UMULIRN 8 bit to 16 bit unsigned multiply, register * immediate UMULTIRNc 9NEWSYM FxOpd8AA3 ;UMULIRN 8 bit to 16 bit unsigned multiply, register * immediate UMULTIRNc 10NEWSYM FxOpd8BA3 ;UMULIRN 8 bit to 16 bit unsigned multiply, register * immediate UMULTIRNc 11NEWSYM FxOpd8CA3 ;UMULIRN 8 bit to 16 bit unsigned multiply, register * immediate UMULTIRNc 12NEWSYM FxOpd8DA3 ;UMULIRN 8 bit to 16 bit unsigned multiply, register * immediate UMULTIRNc 13NEWSYM FxOpd8EA3 ;UMULIRN 8 bit to 16 bit unsigned multiply, register * immediate UMULTIRNc 14NEWSYM FxOpd8FA3 ;UMULIRN 8 bit to 16 bit unsigned multiply, register * immediate UMULTIRNc 15NEWSYM FxOpd90 ; 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 FXReturnNEWSYM FxOpd91 ; LINKc#n R11 = R15 + immediate LINKc 1NEWSYM FxOpd92 ; LINKc#n R11 = R15 + immediate LINKc 2NEWSYM FxOpd93 ; LINKc#n R11 = R15 + immediate LINKc 3NEWSYM FxOpd94 ; LINKc#n R11 = R15 + immediate LINKc 4NEWSYM FxOpd95 ; 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 FXReturnNEWSYM FxOpd96 ; 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 [SfxSignZero],eax CLRFLAGS FXReturnNEWSYM FxOpd96A1 ; 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 [SfxSignZero],eax CLRFLAGS FXReturn.minusone mov byte[SfxCarry],1 xor eax,eax inc ebp ; Increase program counter mov [edi],eax ; Write Destination mov [SfxSignZero],eax CLRFLAGS FXReturnNEWSYM FxOpd97 ; 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 FXReturnNEWSYM FxOpd98 ; JMPRNc jump to address of register JMPRNc 8NEWSYM FxOpd99 ; JMPRNc jump to address of register JMPRNc 9NEWSYM FxOpd9A ; JMPRNc jump to address of register JMPRNc 10NEWSYM FxOpd9B ; JMPRNc jump to address of register JMPRNc 11NEWSYM FxOpd9C ; JMPRNc jump to address of register JMPRNc 12NEWSYM FxOpd9D ; JMPRNc jump to address of register JMPRNc 13NEWSYM FxOpd98A1 ; LJMPRNc set program bank to source register and jump to address of register LJMPRNc 8NEWSYM FxOpd99A1 ; LJMPRNc set program bank to source register and jump to address of register LJMPRNc 9NEWSYM FxOpd9AA1 ; LJMPRNc set program bank to source register and jump to address of register LJMPRNc 10NEWSYM FxOpd9BA1 ; LJMPRNc set program bank to source register and jump to address of register LJMPRNc 11NEWSYM FxOpd9CA1 ; LJMPRNc set program bank to source register and jump to address of register LJMPRNc 12NEWSYM FxOpd9DA1 ; LJMPRNc set program bank to source register and jump to address of register LJMPRNc 13NEWSYM FxOpd9E ; 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 [SfxSignZero],eax CLRFLAGS FXReturnNEWSYM FxOpd9F ; FMULT 16 bit to 32 bit signed multiplication, upper 16 bits only ; V mov eax,[esi] ; Read Source mov ebx,[SfxR6] FETCHPIPE imul bx inc ebp and edx,0FFFFh mov [SfxSignZero],edx mov [edi],edx ; Write Destination shr ax,15 mov [SfxCarry],al CLRFLAGS FXReturnNEWSYM FxOpd9FA1 ; 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 FXReturnNEWSYM FxOpdA0 ; IBTRNc,#PP immediate byte transfer IBTRNc 0NEWSYM FxOpdA1 ; IBTRNc,#PP immediate byte transfer IBTRNc 1NEWSYM FxOpdA2 ; IBTRNc,#PP immediate byte transfer IBTRNc 2NEWSYM FxOpdA3 ; IBTRNc,#PP immediate byte transfer IBTRNc 3NEWSYM FxOpdA4 ; IBTRNc,#PP immediate byte transfer IBTRNc 4NEWSYM FxOpdA5 ; IBTRNc,#PP immediate byte transfer IBTRNc 5NEWSYM FxOpdA6 ; IBTRNc,#PP immediate byte transfer IBTRNc 6NEWSYM FxOpdA7 ; IBTRNc,#PP immediate byte transfer IBTRNc 7NEWSYM FxOpdA8 ; IBTRNc,#PP immediate byte transfer IBTRNc 8NEWSYM FxOpdA9 ; IBTRNc,#PP immediate byte transfer IBTRNc 9NEWSYM FxOpdAA ; IBTRNc,#PP immediate byte transfer IBTRNc 10NEWSYM FxOpdAB ; IBTRNc,#PP immediate byte transfer IBTRNc 11NEWSYM FxOpdAC ; IBTRNc,#PP immediate byte transfer IBTRNc 12NEWSYM FxOpdAD ; IBTRNc,#PP immediate byte transfer IBTRNc 13NEWSYM FxOpdAE ; IBTRNc,#PP immediate byte transfer movsx eax,byte[ebp] mov cl,[ebp+1] add ebp,2 mov [SfxR0+14*4],ax UpdateR14 CLRFLAGS FXReturnNEWSYM FxOpdAF ; IBTRNc,#PP immediate byte transfer movsx eax,byte[ebp] mov cl,[ebp+1] and eax,0FFFFh mov ebp,[SfxCPB] add ebp,eax CLRFLAGS FXReturnNEWSYM FxOpdA0A1 ; LMS rn,(yy) load word from RAM (short address) LMSRNc 0NEWSYM FxOpdA1A1 ; LMS rn,(yy) load word from RAM (short address) LMSRNc 1NEWSYM FxOpdA2A1 ; LMS rn,(yy) load word from RAM (short address) LMSRNc 2NEWSYM FxOpdA3A1 ; LMS rn,(yy) load word from RAM (short address) LMSRNc 3NEWSYM FxOpdA4A1 ; LMS rn,(yy) load word from RAM (short address) LMSRNc 4NEWSYM FxOpdA5A1 ; LMS rn,(yy) load word from RAM (short address) LMSRNc 5NEWSYM FxOpdA6A1 ; LMS rn,(yy) load word from RAM (short address) LMSRNc 6NEWSYM FxOpdA7A1 ; LMS rn,(yy) load word from RAM (short address) LMSRNc 7NEWSYM FxOpdA8A1 ; LMS rn,(yy) load word from RAM (short address) LMSRNc 8
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -