This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

What happens when offset value becomes 30 in case of load/store operation

Hello to all,

I was looking at different offset values for both load and store operations. Since due to little endian arrangement, the memory looks something like this to processor:

Byte[0x23],Byte[0x22],Byte[0x21],Byte[0x20]

Byte[0x1F],Byte[0x1E],Byte[0x1D],Byte[0x1C]

   .         .         .         .

   .         .          .         .

Byte[0x7],Byte[0x6],Byte[0x5],Byte[0x4]

Byte[0x3],Byte[0x2],Byte[0x1],Byte[0x0]

Since the different value consumes different cycles: 

Offset(0xn) (n ∈ 0,4,8,...) = 1 cycles

Offset(0xn) (n ∈ 1,5,9,...) = 3 cycles

Offset(0xn) (n ∈ 2,6,A,...) = 2 cycles

Offset(0xn) (n ∈ 3,7,B,...) = 3 cycles

Therefore for offset 30 => 0x1E should consumed 2 cycles since it belongs to the category of 2 offset. Rather, it has consumed 1 cycles and thereafter on all the next coming offset value, offset 30 becomes reference. I mean, for offset 32 => 0x20 (ideally it should consumes only 1 clock-cycles, but in reality it is consuming 2 clock cycles) and so on.

Does anybody know the reason behind this??

Kindly help me out with that.

Thanking you,

Regards,

Himanshu