General question regarding Load-instruction

Hey,

i´m studying electrical engineering and this semester we started learning the basics of programming Assembler with the Infineon XMX4000.
Our fist lecture was about some basic instructions like the Load/Move/Store instruction.
But know I encountered a problem in the Load instrucion which I just don´t understand.
The general syntax for the load instrucion is shown below.

 
 LDR Rd, [Rn, #<imm>]  


In our lecture we also had an example in order to make clear how the Load instrucion works.

 
 LDR R4, [PC, #<imm8>]  


But now there appears my problem.
I´m aware that R4 is the destination register. PC is the Program Counter which points to the instruction which is currently executed. And as far as I got this right <imm8> is the offset of the Program counter.
According to the manuel of the XMC the value <imm> has to be a multiple of 4 and can store a value in the range 0-124. But now I don´t get how it´s possible to store a value that isn´t a multiple of 4 in the adress of Rd respectively R4.
Is there a simple answer for this probelm?

I don't see what this has to do with C++.
Topic archived. No new replies allowed.