By default, the e-run simulator uses a memory map different than that of the actual ZedBoard. When using external memory, I'd expect receiving error messages when addressing the Zed's external mem range in a simulated session. This is basically what you do when compiling with legacy.ldf and using the heap.
However, on your printouts, I see no such error messages. This suggests that the linker places the code internally (could you please check that with e-objdump?) and that the simple printf() does not require the heap (which makes sense). OTOH, more complex format strings do require dynamic memory allocation so heap is used. Then, I'd expect to see some errors.
When using e-run for ZedBoard built programs, please add the option: "--memory-region 0x8e000000,0x02000000" to the command line.