<P> The degree of generality of most registers are much greater than in the 8080 or 8085 . However, 8086 registers were more specialized than in most contemporary minicomputers and are also used implicitly by some instructions . While perfectly sensible for the assembly programmer, this makes register allocation for compilers more complicated compared to more orthogonal 16 - bit and 32 - bit processors of the time such as the PDP - 11, VAX, 68000, 32016 etc . On the other hand, being more regular than the rather minimalistic but ubiquitous 8 - bit microprocessors such as the 6502, 6800, 6809, 8085, MCS - 48, 8051, and other contemporary accumulator based machines, it is significantly easier to construct an efficient code generator for the 8086 architecture . </P> <P> Another factor for this is that the 8086 also introduced some new instructions (not present in the 8080 and 8085) to better support stack - based high - level programming languages such as Pascal and PL / M; some of the more useful instructions are push mem - op, and ret size, supporting the "Pascal calling convention" directly . (Several others, such as push immed and enter, were added in the subsequent 80186, 80286, and 80386 processors .) </P> <P> A 64 KB (one segment) stack growing towards lower addresses is supported in hardware; 16 - bit words are pushed onto the stack, and the top of the stack is pointed to by SS: SP . There are 256 interrupts, which can be invoked by both hardware and software . The interrupts can cascade, using the stack to store the return addresses . </P> <P> The 8086 has 64 K of 8 - bit (or alternatively 32 K of 16 - bit word) I / O port space . </P>

Explain the functional diagram of 16- bit micro processor (8086)