1. I don't think in 8086 it is FFFF:FFF0 because FFFF:FFF0 is 10FFE0 in physical address. It is out of the 1MB limit and will be wrapped to FFE0. This is not the top of memory. It is F000:FFF0 (FFFF0 in physical address).
See also:
cs.usfca.edu/~cruse/cs630s04/lesson02.ppt
http://www.intel.com/content/www/us/en/processors/architectures-software-developer-manuals.htmlVolume 3, Chapter 9, Section 9.1
And sometimes in memory FFFF0 it is just a jump instruction.
2. For getting into protected mode, the actually mode-changing instruction is setting bit 0 of cr0 (bit PE). However, getting ready to the mode-changing is quite a lot of things. First, you should prepare a GDT and use lgdt to load it. Next, you must either prepare an IDT and use lidt to load it or use cli to close interrupts, which will MAKE THE SYSTEM REBOOT if it's not processed correctly. (Note that in real mode system uses IVT and in protected mode it uses IDT) Then, you must turn on the A20 bus by either accessing 8042 (keyboard controller) or turning on the fast-a20-gate which is more fast but NOT ALWAYS COMPATIBLE. After that, set bit 0 of cr0 (bit PE). Finally, use a far-jump instruction to make CS and EIP correct. Attention that this far-jump instruction is a mix-16-bit-and-32-bit-instruction.
See also:
http://www.intel.com/content/www/us/en/processors/architectures-software-developer-manuals.htmlVolume 3, Chapter 9, Section 9.9