MASM Version 5.00 Mixed-Language Example with BASIC ID Number: Q40528
5.00 MS-DOS
Summary:
Below are the demonstration files BA.ASM and BAMAIN.BAS from the MASM Version 5.00 Disk 1 mixed directory.
More Information:
The following is BA.ASM:
.MODEL medium .CODE
- BASIC function for QuickBASIC, Version 4 and future versions ; of Microsoft and IBM BASIC Compilers
PUBLIC Power2
Power2 PROC push bp ; Entry sequence - save old BP mov bp,sp ; Set stack framepointer
mov bx,[bp+8] ; Load Arg1 into mov ax,[bx] ; AX mov 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
- BASIC subprogram for QuickBASIC, Versions 1, 2, and 3; ; for the Microsoft BASIC Compiler through Version 5.36 ; for the IBM BASIC Compiler through Version 2.02
PUBLIC Power2S
Power2S PROC push bp ; Entry sequence - save old BP mov bp,sp ; Set stack framepointer
mov bx,[bp+10] ; Load Arg1 into mov ax,[bx] ; AX mov bx,[bp+8] ; Load Arg2 into mov cx,[bx] ; CX shl ax,cl ; AX = AX * (2 to power of CX) mov bx,[bp+6] ; Store result in mov [bx],ax ; Arg3 pop bp ; Restore old framepointer ret 4 ; Exit, and restore 4 bytes of args
Power2S ENDP END
The following is BAMAIN.BAS:
DEFINT A-Z
’ Function call for QuickBASIC, Version 4, ’ and for future versions of Microsoft and IBM BASIC Compilers ’ Comment out for older versions
DECLARE FUNCTION Power2(A AS INTEGER, B AS INTEGER) PRINT “3 times 2 to the power of 5 is”; PRINT Power2(3,5)
’ Subprogram equivalent to function for QuickBASIC, Versions 1, 2, and 3; ’ for the Microsoft BASIC Compiler through Version 5.36 ’ for the IBM BASIC Compiler through Version 2.02
CALL Power2S(3, 5, C) PRINT “3 times 2 to the power of 5 is”; C
END