You are on page 1of 57

Intel Processors

Information and images of the processors taken from http://www.intel.com/museum/online/hist_micro/hof/

1971: 4004 Microprocessor

1971: 4004 Microprocessor

http://www.computerhistory.org/exhibits/highlights/busicom.shtml

1971: 4004 Microprocessor

The 4004 was Intel's first microprocessor. This breakthrough invention powered the Busicom calculator and paved the way for embedding intelligence in inanimate objects as well as the personal computer.

1971: 4004 Microprocessor

Data Word: 4-bit Clock: 740KHz Address Space: 4 KB Instruction Set: 46 Registers: 16

1972: 8008 Microprocessor

1972: 8008 Microprocessor

www.ciphersbyritter.com/ MARK8/MAGCOV5.JPG

1972: 8008 Microprocessor

The 8008 was twice as powerful as the 4004. A 1974 article in Radio Electronics referred to a device called the Mark-8 which used the 8008. The Mark-8 is known as one of the first computers for the home --one that by today's standards was difficult to build, maintain and operate.

1972: 8008 Microprocessor

Data Word: 8-bit Clock: 800KHz Address Space: 16 KB Instructions: 48 Registers: 15 Addressing modes

Register Register direct Immediate

1974: 8080 Microprocessor

1974: 8080 Microprocessor

http://www.obsoletecomputermuseum.org/altair/altair3.jpg

1974: 8080 Microprocessor

The 8080 became the brains of the first personal computer--the Altair, allegedly named for a destination of the Starship Enterprise from the Star Trek television show. Computer hobbyists could purchase a kit for the Altair for $395. Within months, it sold tens of thousands, creating the first PC back orders in history.

1974: 8080 Microprocessor

Data Word: 8-bit Clock: ~2MHz Address Space: 64 KB Instructions: 48 Addressing modes

Register Register direct Immediate

1978: 8086-8088 Microprocessor

1978: 8086-8088 Microprocessor

http://accad.osu.edu/~waynec/history/images/small/ibm_pc_xt.jpg

1978: 8086-8088 Microprocessor

A pivotal sale to IBM's new personal computer division made the 8088 the brains of IBM's new hit product--the IBM PC. The 8088's success propelled Intel into the ranks of the Fortune 500, and Fortune magazine named the company one of the "Business Triumphs of the Seventies."

1982: 286 Microprocessor

1982: 286 Microprocessor

1982: 286 Microprocessor

The Intel 286, originally known as the 80286, was the first Intel processor that could run all the software written for its predecessor. This software compatibility remains a hallmark of Intel's family of microprocessors. Within 6 years of its release, an estimated 15 million 286-based personal computers were installed around the world.

1985: Intel386 Microprocessor

1985: Intel386 Microprocessor

http://skola.amoskadan.cz/images/pp/uvod/pc386.gif

1985: Intel386 Microprocessor

The Intel386 microprocessor featured 275,000 transistors--more than 100times as many as the original 4004. It was a 32-bit chip and was "multi tasking," meaning it could run multiple programs at the same time.

1989: Intel486 DX CPU Microprocessor

1989: Intel486 DX CPU Microprocessor

http://www.100megspopup.com/redawa/Graphics/Icon486.jpg

1989: Intel486 DX CPU Microprocessor

The Intel486 processor generation really meant you go from a command-level computer into point-andclick computing. "I could have a color computer for the first time and do desktop publishing at a significant speed," recalls technology historian David K. Allison of the Smithsonian's National Museum of American History. The Intel486 processor was the first to offer a built-in math coprocessor, which speeds up computing because it offloads complex math functions from the central processor.

1993: Intel Pentium Processor

1993: Intel Pentium Processor

The Intel Pentium processor allowed computers to more easily incorporate "real world" data such as speech, sound, handwriting and photographic images. The Intel Pentium brand, mentioned in the comics and on television talk shows, became a household word soon after introduction.

1995: Intel Pentium Pro Processor

1995: Intel Pentium Pro Processor

Released in the fall of 1995 the Intel Pentium Pro processor is designed to fuel 32-bit server and workstation applications, enabling fast computer-aided design, mechanical engineering and scientific computation. Each Intel Pentium Pro processor is packaged together with a second speed-enhancing cache memory chip. The powerful Pentium Pro processor boasts 5.5 million transistors.

1997: Intel Pentium II Processor

1997: Intel Pentium II Processor

The 7.5 million-transistor Intel Pentium II processor incorporates Intel MMX technology, which is designed specifically to process video, audio and graphics data efficiently. It was introduced in innovative Single Edge Contact (S.E.C) Cartridge that also incorporated a high-speed cache memory chip. With this chip, PC users can capture, edit and share digital photos with friends and family via the Internet; edit and add text, music or between-scene transitions to home movies; and, with a video phone, send video over standard phone lines and the Internet.

1998: Intel Pentium II Xeon Processor

1998: Intel Pentium II Xeon Processor

The Intel Pentium II Xeon processors are designed to meet the performance requirements of mid-range and higher servers and workstations. Consistent with Intel's strategy to deliver unique processor products targeted for specific markets segments, the Intel Pentium II Xeon processors feature technical innovations specifically designed for workstations and servers that utilize demanding business applications such as Internet services, corporate data warehousing, digital content creation, and electronic and mechanical design automation. Systems based on the processor can be configured to scale to four or eight processors and beyond.

1999: Intel Celeron Processor

1999: Intel Celeron Processor

Continuing Intel's strategy of developing processors for specific market segments, the Intel Celeron processor is designed for the value PC market segment. It provides consumers great performance at an exceptional price, and it delivers excellent performance for uses such as gaming and educational software.

1999: Intel Pentium III Processor

The Intel Pentium III processor features 70 new instructions--Internet Streaming SIMD extensions-that dramatically enhance the performance of advanced imaging, 3-D, streaming audio, video and speech recognition applications. It was designed to significantly enhance Internet experiences, allowing users to do such things as browse through realistic online museums and stores and download highquality video. The processor incorporates 9.5 million transistors, and was introduced using 0.25-micron technology.

1999: Intel Pentium III Xeon Processor

The Intel Pentium III Xeon processor extends Intel's offerings to the workstation and server market segments, providing additional performance for eCommerce applications and advanced business computing. The processors incorporate the Intel Pentium III processor's 70 SIMD instructions, which enhance multimedia and streaming video applications. The Intel Pentium III Xeon processor's advance cache technology speeds information from the system bus to the processor, significantly boosting performance. It is designed for systems with multiprocessor configurations.

2000: Intel Pentium 4 Processor

Users of Intel Pentium 4 processor-based PCs can create professional-quality movies; deliver TV-like video via the Internet; communicate with real-time video and voice; render 3D graphics in real time; quickly encode music for MP3 players; and simultaneously run several multimedia applications while connected to the Internet. The processor debuted with 42 million transistors and circuit lines of 0.18 microns. Intel's first microprocessor, the 4004, ran at 108 kilohertz (108,000 hertz), compared to the Intel Pentium 4 processor's initial speed of 1.5 gigahertz (1.5 billion hertz). If automobile speed had increased similarly over the same period, you could now drive from San Francisco to New York in about 13 seconds.

2001: Intel Xeon Processor

The Intel Xeon processor is targeted for high-performance and mid-range, dual-processor workstations, dual and multiprocessor server configurations coming in the future. The platform offers customers a choice of operating systems and applications, along with high performance at affordable prices. Intel Xeon processor-based workstations are expected to achieve performance increases between 30 and 90 percent over systems featuring Intel Pentium III Xeon processors depending on applications and configurations. The processor is based on the Intel NetBurst architecture, which is designed to deliver the processing power needed for video and audio applications, advanced Internet technologies, and complex 3-D graphics.

2001: Intel Itanium Processor

The Itanium processor is the first in a family of 64bit products from Intel. Designed for high-end, enterprise-class servers and workstations, the processor was built from the ground up with an entirely new architecture based on Intel's Explicitly Parallel Instruction Computing (EPIC) design technology. The processor delivers world-class performance for the most demanding enterprise and high-performance computing applications, including e-Commerce security transactions, large databases, mechanical computer-aided engineering, and sophisticated scientific and engineering computing.

2002: Intel Itanium 2 Processor

The Itanium 2 processor is the second member of the Itanium processor family, a line of enterprise-class processors. The family brings outstanding performance and the volume economics of the Intel Architecture to the most data-intensive, business-critical and technical computing applications. It provides leading performance for databases, computer-aided engineering, secure online transactions, and more.

2003: Intel Pentium M Processor

The Intel Pentium M processor, the Intel 855 chipset family, and the Intel PRO/Wireless 2100 network connection are the three components of Intel Centrino mobile technology. Intel Centrino mobile technology is designed specifically for portable computing, with built-in wireless LAN capability and breakthrough mobile performance. It enables extended battery life and thinner, lighter mobile computers.

Assembly Language for the Intel 8086


Information taken from http://www.emu8086.com/Help/asm_ tutorial_01.html

Registers

General purpose

Segment

GENERAL PURPOSE REGISTERS 8086 CPU has 8 general purpose registers, each register has its own name:

AX - the accumulator register (divided into AH / AL). BX - the base address register (divided into BH / BL). CX - the count register (divided into CH / CL). DX - the data register (divided into DH / DL). SI - source index register. DI - destination index register. BP - base pointer. SP - stack pointer.

SEGMENT REGISTERS CS - points at the segment containing the current program. DS - generally points at segment where variables are defined. ES - extra segment register, it's up to a coder to define its usage. SS - points at the segment containing the stack.

SPECIAL PURPOSE REGISTERS


IP - the instruction pointer. Flags Register - determines the current state of the processor. IP register always works together with CS segment register and it points to currently executing instruction. Flags Register is modified automatically by CPU after mathematical operations, this allows to determine the type of the result, and to determine conditions to transfer control to other parts of the program. Generally you cannot access these registers directly.

As you may see there are 16 bits in this register, each bit is called a flag and can take a value of 1 or 0. Carry Flag (CF) - this flag is set to 1 when there is an unsigned overflow. For example when you add bytes 255 + 1 (result is not in range 0...255). When there is no overflow this flag is set to 0. Zero Flag (ZF) - set to 1 when result is zero. For none zero result this flag is set to 0. Sign Flag (SF) - set to 1 when result is negative. When result is positive it is set to 0. Actually this flag take the value of the most significant bit. Overflow Flag (OF) - set to 1 when there is a signed overflow. For example, when you add bytes 100 + 50 (result is not in range -128...127). Parity Flag (PF) - this flag is set to 1 when there is even number of one bits in result, and to 0 when there is odd number of one bits. Even if result is a word only 8 low bits are analyzed! Auxiliary Flag (AF) - set to 1 when there is an unsigned overflow for low nibble (4 bits). Interrupt enable Flag (IF) - when this flag is set to 1 CPU reacts to interrupts from external devices. Direction Flag (DF) - this flag is used by some instructions to process data chains, when this flag is set to 0 - the processing is done forward, when this flag is set to 1 the processing is done backward.

There are 3 groups of instructions.

First group: ADD, SUB,CMP, AND, TEST, OR, XOR Second group: MUL, IMUL, DIV, IDIV Third group: INC, DEC, NOT, NEG

#MAKE_COM# ; instruct compiler to make COM file. ORG 100h ; The sub-function that we are using ; does not modify the AH register on ; return, so we may set it only once. MOV AH, 0Eh ; select sub-function. ; INT 10h / 0Eh sub-function ; receives an ASCII code of the ; character that will be printed ; in AL register. MOV AL, 'H ; ASCII code: 72 INT 10h ; print it! MOV AL, 'e' ; ASCII code: 101 INT 10h ; print it! MOV AL, 'l' ; ASCII code: 108 INT 10h ; print it! MOV AL, 'l' ; ASCII code: 108 INT 10h ; print it! MOV AL, 'o' ; ASCII code: 111 INT 10h ; print it! MOV AL, '!' ; ASCII code: 33 INT 10h ; print it! RET ; returns to operating system.

ORG 100h MOV AX, 5 MOV BX, 2 JMP calc back: JMP stop calc: ADD AX, BX JMP back stop: RET END

; set AX to 5. ; set BX to 2. ; go to 'calc'. ; go to 'stop'.


; add BX to AX. ; go 'back'.

; return to operating system. ; directive to stop the compiler.

include emu8086.inc ORG 100h MOV AL, 25 MOV BL, 10 CMP AL, BL JE equal PUTC 'N' JMP stop equal: PUTC 'Y' stop: RET END

; set AL to 25. ; set BL to 10. ; compare AL - BL. ; jump if AL = BL (ZF = 1). ; if it gets here, then AL <> BL, ; so print 'N', and jump to stop. ; if gets here, ; then AL = BL, so print 'Y'. ; gets here no matter what.

include emu8086.inc ORG 100h MOV AL, 25 MOV BL, 10 CMP AL, BL JNE not_equal JMP equal not_equal:

; set AL to 25. ; set BL to 10. ; compare AL - BL. ; jump if AL <> BL (ZF = 0).

; let's assume that here we ; have a code that is assembled ; to more than 127 bytes... PUTC 'N' JMP stop ; if it gets here, then AL <> BL, ; so print 'N', and jump to stop. ; if gets here, ; then AL = BL, so print 'Y'. ; gets here no matter what. END

equal: PUTC 'Y' stop: RET

ORG 100h CALL m1 MOV AX, 2 RET m1 PROC MOV BX, 5 RET m1 ENDP END

; return to operating system.

; return to caller.

ORG 100h MOV AL, 1 MOV BL, 2 CALL m2 CALL m2 CALL m2 CALL m2 RET ; return to operating system. m2 PROC MUL BL ; AX = AL * BL. RET ; return to caller. m2 ENDP END

ORG 100h LEA SI, msg ; load address of msg to SI. CALL print_me RET ; return to operating system. ; ===================================================== ; this procedure prints a string, the string should be null ; terminated (have zero in the end), ; the string address should be in SI register: print_me PROC next_char: CMP b.[SI], 0 ; check for zero to stop JE stop ;
MOV AL, [SI] MOV AH, 0Eh INT 10h ADD SI, 1 JMP next_char ; next get ASCII char. ; teletype function number. ; using interrupt to print a char in AL. ; advance index of string array. ; go back, and type another char.

stop: RET ; return to caller. print_me ENDP ; ========================================================== msg DB 'Hello World!', 0 ; null terminated string. END