peg, Thank you very much!
With your clear correction and eckhard's sample program, together with the reference I have, my new understanding is as follows:
An assembly program first begins runing with the contents at the address of $FFFE and $FFFF, called Reset Vector. In eckhard's sample program, the contents of Reset Vector is ROM, so the program is redirected to run at the address of ROM, which is also defined as the starting address of the main routine. Till now, the related instructions have done nothing but change the content of the program counter.
is my new understanding conrrect?