Having local labels within a procedure is nice. If the case statement labels are local to the procedure, they will not be visible outside the procedure and you cannot use them in the case statement jump table. There are two ways you can turn off the scoping of labels in MASM 6.x. You can turn scoping back on with a statement of the form option scoped By placing these statements around your procedure you can selectively control scoping. This informs the assembler that this particular name should be global to the enclosing procedure.
Local symbols are visible only within the procedure they are defined.
Global symbols are accessible throughout a source file, but are not visible in other program modules. Public symbols are visible throughout a program, across modules. By default, all procedure names are public. By default, most other symbols are global. Note that these rules apply to MASM 6.x only.