1. name PROC
;;;
RET
name ENDP
PROC and ENDP are compiler directives, so they are not assembled into any real machine code. Compiler just remembers the addr of procedure.
2. Several ways to pass parameters to procedure. The easiest is by using registers.
3.
CMP b.[SI],0 ;check for zero to stop
JE stop
In the above code, "b." means that we need to compare bytes, not words, otherwise we use "w."instead.
When one of the compared operands is a register, the prefix is not required because the compiler knows the size of each register.