ARM assembly. Storing and loading data from stack with negative offset
<p>Can we store and load data from the stack with negative address offset like in the following code snippet? Is it safe to write and read data from the memory address that is actually outside (<code>[sp, #-16]</code> or <code>[sp, #-20]</code>) of the stack boundaries?
Thanks!</p>

<pre><code>stmdb sp, { r4 - r6 }

mov r4, #255
str r4, [sp, #-16]

mov r3, #127
str r3, [sp, #-20]

ldr r4, [sp, #-20]

sub sp, #12
ldmia sp, { r4 - r6 }
</code></pre>