In addition to what Daniel Lee said, memory access on ARM platforms should be aligned according to the words, i.e. memory samples should be a multiple of 32 bits. Removing a byte variable from memory involves obtaining the entire word containing the corresponding byte, and performing the necessary bitwise operations to match it in the least significant bits of the processor register.
These additional instructions are automatically generated by the compiler because it knows the actual alignment of your variables.
source share