ack/mach/i80/libem/cmps_mag.s
2019-02-14 23:57:55 +01:00

19 lines
383 B
ArmAsm

.sect .text
.sect .rom
.sect .data
.sect .bss
.sect .text
! Does a tristate signed comparison of hl <> de.
! Returns m flag if hl < de.
! Returns p flag if hl >= de.
! This doesn't set z coherently.
.define .cmps_mag
.cmps_mag:
mov a, d
xra h
jp .cmpu_mag ! signs are the same, so an unsigned comparison will do
xra h ! set A=H and set the sign flag
ret