Quick follow-up (this time from my netbook) -- the 8086 and 8088 have a 20b address bus, so the address range is 0x00000 to 0xFFFFF. Execution starts at location 0xFFFF0, according to the datasheet for the 8086 that I have on file. That *almost* makes sense if you only have 64k of memory in your system -- but a 20b address bus can support a full megabyte of memory -- and the 8086/8088 addresses memory and I/O separately, unlike eg the 6502 (a historical CPU, used in most Commodore and pre-Mac Apple computers -- in derivative forms, sometimes) where IO is mapped to specific memory addresses as a matter of course -- I'll let you decide which scheme is more efficient; personally I like the 6502's memory-mapped I/O, but that is indeed only one man's opinion...
BTW -- the reason that I said "almost" above, is because the 8086/8088 chips execute 'up' from the start of ROM -- from 0xFFFF0 through to 0xFFFFF is the reserved area for the boot code, as opposed to (again) the 6502, which executes 'down' from 0xFFFF to... basically wherever it's told that ROM stops and I/O begins (it's RAM at the bottom, ROM at the top, and I/O in between, for that processor family).
Conceivably, you could have a single jump instruction and address at the top of 64k of memory with the 8086/8088 CPUs, and put the boot code for your computer at the other end of that jump, but that's the only way to make that work with that amount of memory...
...but this is all low-level crap that you don't need to worry about unless you're actually building a computer from scratch (schematic diagram level) with an x86 CPU at the heart of it... in other words, for our purposes I've just spun another ball of fluff text. So I'll shut up. (Again.)