Microsoft KB Archive/40531

From BetaArchive Wiki

MASM Version 5.00 Mixed-Language Example with FORTRAN ID Number: Q40531

5.00 MS-DOS

Summary:

Below are the demonstration files FA.ASM and FAMAIN.FOR from the MASM Version 5.00 Disk 1 mixed directory.

More Information:

The following is FA.ASM:

.MODEL large .CODE PUBLIC Power2 Power2 PROC push bp ; Entry sequence - save old BP mov bp,sp ; Set stack framepointer

    les     bx,[bp+10]      ; Load Arg1 into
    mov     ax,[bx]         ;   AX
    les     bx,[bp+6]       ; Load Arg2 into
    mov     cx,[bx]         ;   CX
    shl     ax,cl           ; AX = AX * (2 to power of CX)
                            ; Leave return value in AX

    pop     bp              ; Restore old framepointer
    ret     4               ; Exit, and restore 4 bytes of args

Power2 ENDP END

The following is FAMAIN.FOR:

    INTERFACE TO INTEGER*2 FUNCTION POWER2(A,B)
    INTEGER*2 A,B
    END

C INTEGER2 POWER2 INTEGER2 A,B A = 3 B = 5 WRITE (,) ‘3 times 2 to the power of 5 is’,POWER2(A,B) END