ack/mach/z80/libem/and.s
1985-03-29 21:44:50 +00:00

36 lines
436 B
ArmAsm

.define .and
! auxiliary size 'and'
! parameters:
! de: size
! stack: operands
! stack: result (out)
.and:
pop ix ! save return address
ld h,d
ld l,e
add hl,sp
ex de,hl
add hl,de ! now hl is the base of second
ld b,d ! operand. bc and de are base
ld c,e ! of the first operand
1:
dec hl
dec de
ld a,(de)
and (hl)
ld (hl),a
xor a
sbc hl,bc
jr z,2f
add hl,bc
jr 1b
2:
ld h,b
ld l,c
ld sp,hl
jp (ix)