Passing by Reference and Passing by Value BASIC uses two different ways of passing arguments to a procedure. The phrase "passing by reference," used with SUB and FUNCTION procedures, means the address of each argument is passed to the procedure by placing the address on the stack. The phrase "passing by value," used in DEF FN functions, indicates that the value of the argument is placed on the stack, rather than the address. Because the procedure does not have access to the variable when an argument is passed by value, the procedure cannot change the variable's value.