xor.s 382 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. .define .xor
  2. .sect .text
  3. .sect .rom
  4. .sect .data
  5. .sect .bss
  6. .sect .text
  7. ! auxiliary size 'xor'
  8. ! parameters:
  9. ! de: size
  10. ! stack: operands
  11. ! stack: result (out)
  12. .xor:
  13. pop ix
  14. ld h,d
  15. ld l,e
  16. add hl,sp
  17. ld b,h
  18. ld c,l
  19. ex de,hl
  20. add hl,de
  21. 1: dec hl
  22. dec de
  23. ld a,(de)
  24. xor (hl)
  25. ld (hl),a
  26. xor a
  27. sbc hl,bc
  28. jr z,2f
  29. add hl,bc
  30. jr 1b
  31. 2: ld h,b
  32. ld l,c
  33. ld sp,hl
  34. jp (ix)