VMS Help
MACRO, VAX MACRO Assembler, Instructions, CALLS

 *Conan The Librarian (sorry for the slow response - running on an old VAX)

    Purpose:        Call with stack argument list - invoke a procedure
                    with actual arguments on the stack
    Format:         opcode numarg.rl,dst.ab
    Operation:      {push arg count}; {align stack}; {create stack
                    frame}; {set arithmetic trap enables}; {set new
                    values of AP, FP, PC}
    C. Codes:       N = 0, Z = 0, V = 0, C = 0
    Exceptions:     Reserved operand
    Opcode:         FB    CALLS    Call proc. with stack arglist
    Description:    numarg is pushed on the stack as a longword (byte 0
                    contains the number of arguments, the high-order 24
                    bits are used by Digital software), SP is saved in a
                    temporary (tmp) and then bits 1:0 of SP are cleared
                    so the stack is longword aligned. The procedure
                    entry mask (pointed to by dst) is scanned from bit
                    11 to bit 0 and the contents of the registers whose
                    numbers correspond to set bits in the mask are
                    pushed on the stack as longwords. AP, FP and the
                    current PC are pushed onto the stack as longwords.
                    The condition codes are cleared. A longword
                    containing the saved two low bits of SP in bits
                    31:30 (tmp), 1 in bit 29, a 0 in bit 28, the low 12
                    bits of the entry mask in bits 27:16 and the PSW in
                    bits 15:0 with T cleared is pushed on the stack. A
                    longword 0 is pushed on the stack (for the condition
                    handler address within the procedure). FP is
                    replaced by SP, AP is set to the saved SP (value of
                    SP after numarg was pushed. The trap enables in PSW
                    are set to a known state. Integer and decimal
                    overflow are set according to bits 14 and 15 of the
                    entry mask respectively. The floating underflow bit
                    is cleared and the T-bit is unaffected. PC is
                    replaced by dst + 2, skipping the entry mask and
                    transferring control to the byte beyond the mask.
  Close     HLB-list     TLB-list     Help  

[legal] [privacy] [GNU] [policy] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.