Files
open-roms/src/zvm_m65/z80_instr_exchange.s
T
2020-12-29 23:02:12 +01:00

83 lines
1.1 KiB
ArmAsm

;
; Z80 data exchange instructions
;
Z80_instr_EB: ; EX DE,HL
ldx REG_D
ldy REG_H
sty REG_D
stx REG_H
ldx REG_E
ldy REG_L
sty REG_E
stx REG_L
jmp ZVM_next
Z80_instr_08: ; EX AF,AF''
ldx REG_A
ldy REG_A_SH
sty REG_A
stx REG_A_SH
ldx REG_F
ldy REG_F_SH
sty REG_F
stx REG_F_SH
jmp ZVM_next
Z80_instr_D9: ; EXX
ldx REG_B
ldy REG_B_SH
sty REG_B
stx REG_B_SH
ldx REG_C
ldy REG_C_SH
sty REG_C
stx REG_C_SH
ldx REG_D
ldy REG_D_SH
sty REG_D
stx REG_D_SH
ldx REG_E
ldy REG_E_SH
sty REG_E
stx REG_E_SH
ldx REG_H
ldy REG_H_SH
sty REG_H
stx REG_H_SH
ldx REG_L
ldy REG_L_SH
sty REG_L
stx REG_L_SH
jmp ZVM_next
!macro Z80_EX_VIA_SP_REGnn .REGnn {
lda .REGnn+0
jsr (VEC_xchng_stack_lo)
sta .REGnn+0
lda .REGnn+1
jsr (VEC_xchng_stack_hi)
sta .REGnn+1
jmp ZVM_next
}
Z80_instr_E3: +Z80_EX_VIA_SP_REGnn REG_HL ; EX (SP),HL
Z80_instr_DD_E3: +Z80_EX_VIA_SP_REGnn REG_IX ; EX (SP),IX
Z80_instr_FD_E3: +Z80_EX_VIA_SP_REGnn REG_IY ; EX (SP),IY