home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / emulate / systems / z80win / multiply.ass < prev    next >
Text File  |  1994-03-03  |  474b  |  23 lines

  1.             ORG &4000
  2.             STARTC &4000
  3.             ENDC &4100
  4. ;
  5. ; ROUTINE TO MULTIPLY THE HL AND DE REGISTERS
  6. ;
  7. ; RESULT IS RETURNED IN THE HL REGISTER
  8.  
  9. MULTHLDE:        LD A,16        ; A REGISTER IS A LOOP COUNTER
  10.             LD C,L
  11.             LD B,H        ; STORE OPERAND IN BC
  12.             LD HL,0        ; HL HOLDS TOTAL
  13. MULLOOP:        BIT 0,E        ; TEST IF ADD REQD
  14.             JR Z,NOADD
  15.             ADD HL,BC    ; ADD IN THE RESULT
  16. NOADD:            SLA C        ; BC=BC*2
  17.             RL B
  18.             RR D        ; DE=DE/2
  19.             RR E
  20.             DEC A
  21.             JR NZ,MULLOOP    ; LOOP 16 TIMES
  22.             RET
  23.