This is a very incomplete example but it gets my main point across. For some reason every time I do this my OS resets itself (I am trying to write a small 16-bit ASM OS as a second option to my main kernel.) Is there something that is wrong with calling the contents of a memory address like this? I am assembling with nasm and I have checked my stack and have all the segment registers set up appropriately.

I changed my origin and segment registers to match the code segment and now it works. I guess if I am going to be jumping to a memory address loaded based off of other segments I should make those segments point to the right places...