12345678910111213141516171819202122232425262728293031323334353637383940 |
- .define .cms
- .sect .text
- .sect .rom
- .sect .data
- .sect .bss
- .sect .text
- ! Any size compare
- ! Expects: size in de-registers
- ! operands on stack
- ! Yields in de-registers: 0 if operands are equal
- ! 1 if operands are not equal
- .cms:
- pop h
- shld .retadr
- mov l,e
- mov h,d
- mov a,l
- rar
- cc eoddz !trap is size is odd
- dad sp !now hl points to second operand
- !and sp points to the first.
- 1: dcx sp
- pop psw !get next byte in accumulator
- cmp m
- inx h
- dcx d
- jnz 2f !jump if bytes are not equal
- mov a,d
- ora e
- jnz 1b
- jmp 3f
- 2: dad d
- lxi d,1
- 3: sphl
- lhld .retadr
- pchl
|