I just cant figure out how to add an offset to my destination when moving a value, specifically in Intel syntax I have:
MOV [gdtr + 2], EAX
a
Simply write
movl %eax, gdtr+2
Base-offset addressing only works when the offset is a register. There's no point in having an addressing mode to add two constants together; the way this works (regardless of syntax) is that the assembler / linker resolve symbol+constant into a a single number for the displacement field of the instruction encoding.