83 lines
1.1 KiB
ArmAsm
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
|