{[ promptMessage ]}

Bookmark it

{[ promptMessage ]}

The_Intel_8088_Architecture_and_Instruction_Set

The_Intel_8088_Architecture_and_Instruction_Set - E L E C 4...

Info icon This preview shows pages 1–2. Sign up to view the full content.

View Full Document Right Arrow Icon
ELEC 464 : M ICROCOMPUTER S YSTEM D ESIGN 1996/97 W INTER S ESSION T ERM 1 The Intel 8088 Architecture and Instruction Set This lecture describes a subset of the 8088 architecture and instruction set. While it’s not possible to cover all the details of the 8088 in one lecture you should learn enough about the 8088 to be able to: write simple program in 8088 assembly language including: (1) transfer of 8 and 16-bit data between registers and memory using register, immediate, direct, and register indirect addressing, (2) some essential arithmetic and logic instructions on byte and 16-bit values, (3) stack push/pop, (4) input/output, (5) [un]conditional branches, (6) call/return, (7) interrupt/return, (8) essential pseudo-ops (org, db, dw). compute a physical address from segment and offset values, describe response of 8088 to NMI, software (INT) and external (IRQ) interrupts and return from interrupts. History The original Intel 16-bit CPU was the 8086. It was designed to be backwards-compatible at the assem- bler level with Intel’s 8-bit CPU, the 8080. The 8088 is a version of the 8086 with an 8-bit data bus. The 8088 was used in the original IBM PC and its many clones. Later versions of the 8086 include the i386 which extends the data and address registers to 32 bits and includes support for memory protection and virtual memory. Registers The 8088 includes has four 16-bit data registers (AX, BX, CX and DX). BX can also be used as an address register for indirect addressing. The most/least sig- nificant byte of each register can also be addressed directly (e.g. AL is the LS byte of AX, CH is MS byte of CX). Three bits in a 16-bit program status word (PSW) are used to indicate whether the result of the previ- ous arithmetic/logical instruction was zero, negative, or generated a carry. An interrupt enable bit controls whether interrupt requests on the IRQ pin are recog- nized. The address of the next instruction to be executed is held in a 16-bit instruction pointer (IP) register (the “program counter”). Exercise: How many bytes can be addressed by a 16- bit value? A 16-bit stack pointer (SP) is used to imple- ment a stack to support subroutine calls and inter- rupts/exceptions. There are also three segment registers (CS, DS, SS) which are used to allow the code, data and stack to be located in any three 64 kByte “segments” within a 1 megabyte (20-bit) address space as de- scribed below.
Image of page 1

Info icon This preview has intentionally blurred sections. Sign up to view the full version.

View Full Document Right Arrow Icon
Image of page 2
This is the end of the preview. Sign up to access the rest of the document.

{[ snackBarMessage ]}

What students are saying

  • Left Quote Icon

    As a current student on this bumpy collegiate pathway, I stumbled upon Course Hero, where I can find study resources for nearly all my courses, get online help from tutors 24/7, and even share my old projects, papers, and lecture notes with other students.

    Student Picture

    Kiran Temple University Fox School of Business ‘17, Course Hero Intern

  • Left Quote Icon

    I cannot even describe how much Course Hero helped me this summer. It’s truly become something I can always rely on and help me. In the end, I was not only able to survive summer classes, but I was able to thrive thanks to Course Hero.

    Student Picture

    Dana University of Pennsylvania ‘17, Course Hero Intern

  • Left Quote Icon

    The ability to access any university’s resources through Course Hero proved invaluable in my case. I was behind on Tulane coursework and actually used UCLA’s materials to help me move forward and get everything together on time.

    Student Picture

    Jill Tulane University ‘16, Course Hero Intern