Buses and Operation: Max Mode. The Former Was Intended For Small Single Processor Systems While The Latter
The 8086 was a 16-bit microprocessor chip designed by Intel in the late 1970s. It had an internal 16-bit architecture but used an external 8-bit or 16-bit data bus, giving it an address space of up to 1 MB. The 8086 established the x86 architecture that became Intel's most successful line of processors. It had general purpose registers and instructions designed for efficiency. While more advanced than 8-bit processors, its architecture was still relatively simple compared to other 16-bit processors of the time.
Download as DOCX, PDF, TXT or read online on Scribd
Download as docx, pdf, or txt
0 ratings0% found this document useful (0 votes)
54 views2 pages
Buses and Operation: Max Mode. The Former Was Intended For Small Single Processor Systems While The Latter
The 8086 was a 16-bit microprocessor chip designed by Intel in the late 1970s. It had an internal 16-bit architecture but used an external 8-bit or 16-bit data bus, giving it an address space of up to 1 MB. The 8086 established the x86 architecture that became Intel's most successful line of processors. It had general purpose registers and instructions designed for efficiency. While more advanced than 8-bit processors, its architecture was still relatively simple compared to other 16-bit processors of the time.
Download as DOCX, PDF, TXT or read online on Scribd
Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1/ 2
The 8086
("eighty-eighty-six", also called iAPX 86) is a 16-bit microprocessor
chip designed by Intel between early 1976 and mid-1978, when it was released. The Intel 8088, released in 1979, was a slightly modified chip with an external 8-bit data bus (allowing the use of cheaper and fewer supporting ICs), and is notable as the processor used in the original IBM PC design, including the widespread version called IBM PC XT. The 8086 gave rise to the x86 architecture which eventually turned out as Intel's most successful line of processors. Buses and operation All internal registers, as well as internal and external data buses, were 16 bits wide, firmly establishing the "16-bit microprocessor" identity of the 8086. A 20-bit external address bus gave a 1 MB physical address space (2 20 = 1,048,576). This address space was addressed by means of internal 'segmentation'. The data bus was multiplexed with the address bus in order to fit a standard 40-pin dual in-line package. 16-bit I/O addresses meant 64 KB of separate I/O space (2 16 = 65,536). The maximum linear address space was limited to 64 KB, simply because internal registers were only 16 bits wide. Programming over 64 KB boundaries involved adjusting segment registers (see below) and remained so until the 80386 introduced wider (32 bits) main registers (the memory management hardware in the 286 did not help in this regard, as registers were still 16 bits). Some of the control pins, which carry essential signals for all external operations, had more than one function depending upon whether the device was operated in min or max mode. The former was intended for small single processor systems while the latter was for medium or large systems, using more than one processor. Registers and instructions The 8086 has eight more or less general 16-bit registers (including the stack pointer but excluding the instruction pointer, flag register and segment registers). Four of them, AX, BX, CX, DX, could also be accessed as twice as many 8-bit registers (see figure) while the other four, BP, SI, DI, SP, were 16-bit only. Due to a compact encoding inspired by 8-bit processors, most instructions were one-address or two-address operations which means that the result was stored in one of the operands. At most one of the operands could be in memory, but this memory operand could also be the destination, while the other operand, the source, could be either register or immediate. A single memory location could also often be used as both source and destination which, among other factors, further contributed to a code density comparable to (and often better than) most eight bit machines. Although the degrees of generality of most registers were much greater than in the 8080 or 8085, it was still fairly low compared to the typical contemporary minicomputer, and registers were also sometimes used implicitly by instructions. While perfectly sensible for the assembly programmer, this made register allocation for compilers more complicated compared to more regular 16- and 32-bit processors such as the PDP-11, VAX, 68000, etc. On the other hand, compared to semi-contemporary simple, popular and ubiquitous 8-bit microprocessors such as MOS Technology 6502, Motorola 6809, Intel 8085, Intel 8051, and similar, it was significantly easier to generate code for the 8086 design. The 8086 also featured 64 KB of 8-bit (or alternatively 32 K-word of 16-bit) I/O space. A 64 KB (one segment) stack growing towards lower addresses is supported in hardware; 2-byte words are pushed to the stack and the stack top 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. The processor had 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 ones were push mem-op, and ret size, supporting the "pascal calling convention" directly. (Several others, such as push immed and enter, would be added in the subsequent 80186, 80286, and 80386 designs.)