home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / simtel / sigm / vols000 / vol049 / addadr.asm < prev    next >
Assembly Source File  |  1984-04-29  |  946b  |  55 lines

  1.     TITLE    'ADDADR - ADD ADDRESS WITH DISPLACEMENT'
  2.     NAME    'ADDADR'
  3. ;FILE        ADDADR.ASM
  4. ;        * * * *  PL/1 ADDRESS ADDITION  * * * * 
  5. ;PURPOSE    THIS ROUTINE PROVIDES THE ABILITY TO ADD
  6. ;        AN ADDRESS WITH A DISPLACEMENT USING ALL
  7. ;        16 BITS.
  8. ;PROGRAMMER    ROBERT M. WHITE
  9. ;DATE CODED    01 DEC 1980
  10. ;INPUT
  11. ;        PARM1 =  ADDRESS OR DISPLACEMENT
  12. ;        PARM2 =  ADDRESS OR DISPLACEMENT
  13. ;OUTPUT
  14. ;        SUM IS RETURNED AS FUNCTION.
  15. ;REMARKS
  16. ;EQUATES
  17. ;        * * *  MISCELLANEOUS  * * *
  18. BC    EQU    B        ;MULTIPLE REGISTERS
  19. DE    EQU    D
  20. HL    EQU    H
  21.  
  22. ;        DO INITIALIZATION.
  23. ADDADR:    CSEG
  24.     PUBLIC    ADDADR
  25.  
  26. ;        GET FIRST PARM.
  27.     MOV    E,M        ;GET PTR IN DE.
  28.     INX    H
  29.     MOV    D,M
  30.     INX    H
  31.     PUSH    H
  32.     XCHG
  33.     MOV    C,M        ;PUT IT IN BC.
  34.     INX    H
  35.     MOV    B,M
  36.  
  37. ;        GET THE SECOND PARM.
  38.     POP    H        ;RESTORE INPUT PTR.
  39.     MOV    E,M        ;GET PTR IN DE.
  40.     INX    H
  41.     MOV    D,M
  42.     INX    H
  43.     XCHG
  44.     MOV    E,M        ;PUT IT IN DE.
  45.     INX    H
  46.     MOV    D,M
  47.  
  48. ;        ADD THE TWO AND RETURN.
  49.     XCHG
  50.     DAD    B
  51.     RET
  52.  
  53. ;END        ADDADR.ASM
  54.     END
  55.