Access violation is caused when a program attempts to
access memory reserved for the operating system.
I thought this could only happen in a windows program?
I assume your using MASM:
mov ax, seg message ; initialize the DS register so
mov ds, ax ; you can access variable 'message'
lea dx, message
Program flow stops before line 23, because you terminated
with 21/4C.