У проца 8086 - с одной стороны ОЗУ, с другой ПЗУ. Поэтому начинается выполнение с FFFF0 (или FFFF:0000) -- это конец адресного пространства минус 16 байт. Места там мало, поэтому там обычно только JMP на реальный код для инициализации компа. Почему в конце адрес для старта? Потому что в начале памяти -- таблица прерываний. Такая таблица была и у 8080 в начале памяти, но выполнение начиналось с адреса 0 (инструкция RST 0). А у x86 в самом начале памяти адрес обработчика INT 0 (деление на ноль). Почему в x86 не могли сделать так же, как и в 8080 (INT 0 приводил бы к сборсу), я не знаю.