It inserts zeros:
Yes, they all should pad with zeros.
Strange, now that I tested it again it fails with all assemblers, with an exception.
As it should if you fall trough the ORG offset as you do. You have to pad with nop's in that case.
What do you see in the debugger with this code?
I didn't test real code, only viewed the list output. Keep in mind that the $ offset is zero based so you cant use this approach in a library or object module.