Maximum displacement 12 bits can take is 4095 (FFF). So we need second register if you need to go further for which displacement will start from zero. You will get out of base message if u define a label which is having displacement more than 4095 from starting of program means from where u have given base.
Any variable used in assembler program should have addressability.
If you see the instruction format and it is a type of instruction which uses storage then that storage should have addressability.
MVC is a SS type instruction. For every S (storage) we should have 2 bytes.
BDDD where B = base register (1-F) so it requires 4 bits for B.
DDD = Displacement 4 + 4 + 4 = 12 bits.
So lets say you are using register 12 for your base address , then B= C (C is in hex so in decimal it is 12).
Now what maximum value can DDD = 12 bits address ? 2power 12 = 4096.
This is how we got this 4 K limit for a program.
Please note that you may use multiple base addressability to make a program which is bigger then 4K.
It will be better if you try to visualize yourself why only 4096 bytes can be addressed USING a single base register.
To start with, you can have a look at the explicit format of an SS1 type instruction and see what are all the different components assembled in that instruction's object code and what each of them is meant for.
This is one of the very basic questions(and has been asked before a few times). In future please use the "search" option of the forum before putting any new question on board.