you want to use A12 to select one of the two memories, when [A15 A14 A13] = [001], right?
If that is your plan, your circuit will work like that. But your address ranges are confusing me, it will be like that:
RAM1 start = 0010000000000000
RAM1 end = 0010111111111111
RAM2 start = 0011000000000000
RAM2 end = 0011111111111111
If your CPU reads from an invalid address, then the behavior depends on the CPU's bus interface. In most cases the data inputs are hi-z, and then the result is unpredictable. Can be all zeros, all ones, a mix, can also be the last value that was on the bus. If you need a certain value (like for example, some "BREAK" instruction, you can add some pullups or pulldowns that reflect that code.