This is really a much more complex question than you probably realized. On the 8086, it's pretty simple -- it starts up at FFFF:0000 (16-bytes before the end of memory).
The tricky part is on the 286 or above (i.e., anything remotely modern). In these cases, it still starts up 16 bytes before the end of memory, but of course with 24-bit addressing (286) or 32-bit addressing (386+) the physical address is different. That many not seem complex, but it really is. The complexity arises from the fact that the processor starts out executing in real mode, but that address (and all those nearby) aren't visible to the processor in real mode. Therefore, it initially executes in a rather strange mode where it's in real mode from most perspectives, but some of the high bits of the address you appear to execute are ignored and instead basically hard-wired to 1's, so the top of the physical address space is visible to the processor. Then, when you execute a far jump, the processor silently switches to "normal" real mode.
The BIOS starts off in real mode, but usually executes that way for only a short time before setting up a (minimal) protected mode environment, and switching to protected mode. From there, the BIOS executes the normal power-on self test, decompresses the BIOS and copies it into the RAM that's actually located at FFFF:0000, switches back to real mode and executes code in add-on peripheral ROMs if they're marked to execute automatically (typically switching back to protected mode in the process, but back to real mode when finished). One of those will normally be the hard-disk controller that will have code to automatically read in a boot block from a disk, and execute it to start loading the OS and such.