123456789101112131415161718192021222324252627282930313233343536373839404142 |
- .define .and
- .sect .text
- .sect .rom
- .sect .data
- .sect .bss
- .sect .text
- ! Any size logical-'and'.
- ! Expects: size in de-registers
- ! operands on stack
- ! Yields: result on stack
- .and: pop h
- shld .retadr
- mov h,b
- mov l,c
- shld .bcreg
- lxi h,0
- dad sp
- mov c,l
- mov b,h !now bc points to top of first operand
- dad d !and hl points to top of second perand
- push h !this will be the new stackpointer
- 1: ldax b
- ana m
- mov m,a
- inx h
- inx b
- dcx d
- mov a,e
- ora d
- jnz 1b
- pop h
- sphl
- lhld .bcreg
- mov b,h
- mov c,l
- lhld .retadr
- pchl
|