This is a NASM/DOS newbie question about PROCEDURES (NOT
macros). It seems to me that the problem with creating
utility procedures to be placed in libraries and utilized
in various mainline programs, is that it would appear to be
impossible to have any transparancy. Every time you utilize
a label (offset) in a proc, it would appear that you have to
define it exactly the same in the main program. So every time you write a
proc (with a bunch of EXTERN label difinitions)and put it in an assebled library you seem to create
the necessity of defining a bunch of GLOBAL labels in the
main program (indeed, for all the labels, even in procedures
in the library you don't use). And, every time you define
such a label in a library proc, you remove that label from
the universe of possible label names available to the main
program. Now, through the use of COMMON and EQUIVLENCE, this "problem" does not exist in higher level languages -
which means it must have a solution in assembler. What am
I missing? How do I "pass" a label transparently to a proc?
macros). It seems to me that the problem with creating
utility procedures to be placed in libraries and utilized
in various mainline programs, is that it would appear to be
impossible to have any transparancy. Every time you utilize
a label (offset) in a proc, it would appear that you have to
define it exactly the same in the main program. So every time you write a
proc (with a bunch of EXTERN label difinitions)and put it in an assebled library you seem to create
the necessity of defining a bunch of GLOBAL labels in the
main program (indeed, for all the labels, even in procedures
in the library you don't use). And, every time you define
such a label in a library proc, you remove that label from
the universe of possible label names available to the main
program. Now, through the use of COMMON and EQUIVLENCE, this "problem" does not exist in higher level languages -
which means it must have a solution in assembler. What am
I missing? How do I "pass" a label transparently to a proc?