What are buffer and latches in microprocessor?
A buffer allows a signal to drive more inputs than it would by itself, or provides input protection / amplification. For the 8086, it's used in the output sense, allowing internal signals to be made robust to drive external devices.
A latch is a circuit to accept and store one or more bits, with a 1-to-1 input / output ratio. That is, it's not RAM. It differs from a register in that the storage takes place while a control input is at a particular level (0 or 1), while a register stores the input data upon receipt of an edge (rising or falling). 


Latches are used with 8086s to store addresses and data, and are used instead of registers because they maximize setup times. That is, if data or addresses change internally while the latch enable is active, the data passes through immediately, while with a register it would not be available until after the appropriate clock transition had occurred. The early microprocessors used every trick they could to increase their usable speed, and this is one of them.