Most variables in a PowerBASIC module are visible to Inline Assembler 
 code created with the ASM statement.  
 You can reference LOCAL, STATIC, 
 and GLOBAL variables by name by simply 
 using the name as an operand of the assembler opcode. That isn't possible 
 with INSTANCE and THREADED 
 variables, as their access requires multiple operations best handled by 
 higher level PowerBASIC code.  You can also reference procedure parameters 
 by name, though you must differentiate between parameters passed by reference 
 (
SUB DoStuff (BYVAL c&)
LOCAL a%, b$
a% = 7 ' Local variable a%
! PUSH EBX
! MOV AX, a% ; Move value to AX
! ADD a%, AX ; Add value back to a%
b$ = "LINDA" ' Local variable b$
! MOV EBX, b$ ' Address of b$
! MOV [EBX], "l" ' Put lowercase "l" in first position
! MOV EAX, c& ' Put c& into EAX
! INC EAX ' Increment its value
! MOV c&, EAX ' Put it back
! POP EBX
END SUB
See Also