a couple of points.
0. This operation is to move one byte from dmem at the value in addr to store in the variable value.
1. This is rsp code, the rsp has no tlb, it can only access DMEM which is 1k. eg from 0 to 0xFFF, this is where the "& 0xFFF " comes from.
2. This is from an emulator run on a PC, the PC has a different memory layout, so to make it faster each DWORD on a 32 byte boundry is swaped
1 2 3 4 becomes 4 3 2 1
so if I want to get one byte I actually want another one
byte - Real byte
0 xor 3 = 3
1 xor 3 = 2
2 xor 3 = 1
3 xor 3 = 0
so the "^3" just translates to the byte location
Does this answer what you want to know?