System Data Bus (8-bit) Data Buffer. Internal Data Bus (8-bit) 8-bit register (R) 3-bit address 16-bit register pair (P) 2-bit address

Similar documents
MM-8000K 8085 MICROPROCESSOR - BASIC SYSTEMS COURSE COMPUTER THEORY - CONSTRUCTION AND PROGRAMMING

LABORATORY MANUAL MICROPROCESSOR AND MICROCONTROLLER

Basic Computer Organization and Design Part 3/3

CMP 334: Seventh Class

EEE Lecture 1 -1-

Verilog HDL:Digital Design and Modeling. Chapter 11. Additional Design Examples. Additional Figures

Models of Computation, Recall Register Machines. A register machine (sometimes abbreviated to RM) is specified by:

Practice Homework Solution for Module 4

CprE 281: Digital Logic

ww.padasalai.net

ADD B,W,L s = Dn d = x x x x x x x x (Add) d = Dn s = x x x x x x x x x x x x

Logic and Computer Design Fundamentals. Chapter 5 Arithmetic Functions and Circuits

LABORATORY MANUAL MICROPROCESSORS AND MICROCONTROLLERS. S.E (I.T) ( S e m. IV)

Enrico Nardelli Logic Circuits and Computer Architecture

Project Two RISC Processor Implementation ECE 485

Lecture 3, Performance

Design of Sequential Circuits

Lecture 3, Performance

ECE260: Fundamentals of Computer Engineering

NCU EE -- DSP VLSI Design. Tsung-Han Tsai 1

2

[2] Predicting the direction of a branch is not enough. What else is necessary?

GATE SOLVED PAPER - EC

[2] Predicting the direction of a branch is not enough. What else is necessary?

Logic Design. CS 270: Mathematical Foundations of Computer Science Jeremy Johnson

A crash course in Digital Logic

CSCI-564 Advanced Computer Architecture

ALU (3) - Division Algorithms

Computer Engineering Department. CC 311- Computer Architecture. Chapter 4. The Processor: Datapath and Control. Single Cycle

Lecture 5: Arithmetic

EE260: Digital Design, Spring n Digital Computers. n Number Systems. n Representations. n Conversions. n Arithmetic Operations.

CMP 338: Third Class

Logic Theory in Designing of Digital Circuit & Microprocessor

hexadecimal-to-decimal conversion

PART-A. 2. Expand ASCII and BCD ASCII American Standard Code for Information Interchange BCD Binary Coded Decimal

ECE290 Fall 2012 Lecture 22. Dr. Zbigniew Kalbarczyk

Administrivia. Course Objectives. Overview. Lecture Notes Week markem/cs333/ 2. Staff. 3. Prerequisites. 4. Grading. 1. Theory and application

ELEN Electronique numérique

On my honor, as an Aggie, I have neither given nor received unauthorized aid on this academic work

Implementing Absolute Addressing in a Motorola Processor (DRAFT)

Chapter 1. Binary Systems 1-1. Outline. ! Introductions. ! Number Base Conversions. ! Binary Arithmetic. ! Binary Codes. ! Binary Elements 1-2

Complement Arithmetic

Number Systems 1(Solutions for Vol 1_Classroom Practice Questions)

Numbering Systems. Contents: Binary & Decimal. Converting From: B D, D B. Arithmetic operation on Binary.

DIGITAL TECHNICS. Dr. Bálint Pődör. Óbuda University, Microelectronics and Technology Institute

Computer Architecture

CSE Computer Architecture I

Digital Techniques. Figure 1: Block diagram of digital computer. Processor or Arithmetic logic unit ALU. Control Unit. Storage or memory unit

Building a Computer. Quiz #2 on 10/31, open book and notes. (This is the last lecture covered) I wonder where this goes? L16- Building a Computer 1

3. (2) What is the difference between fixed and hybrid instructions?

Department of Electrical and Computer Engineering The University of Texas at Austin

ARITHMETIC COMBINATIONAL MODULES AND NETWORKS

CENTURIA ACADEMY 100,M.K.N Road, Alandur, Chennai Mob: ,

FPGA Resource Utilization Estimates for NI crio LabVIEW FPGA Version: 8.6 NI-RIO Version: 3.0 Date: 8/5/2008

ALUs and Data Paths. Subtitle: How to design the data path of a processor. 1/8/ L3 Data Path Design Copyright Joanne DeGroat, ECE, OSU 1

Design at the Register Transfer Level

Systems I: Computer Organization and Architecture

ICS 233 Computer Architecture & Assembly Language

Arithme(c logic units and memory

ECEN 651: Microprogrammed Control of Digital Systems Department of Electrical and Computer Engineering Texas A&M University

ECE/CS 250 Computer Architecture

FPGA Resource Utilization Estimates for NI PXI-7854R. LabVIEW FPGA Version: 8.6 NI-RIO Version: 3.0 Date: 8/5/2008

Combinational Logic. Mantıksal Tasarım BBM231. section instructor: Ufuk Çelikcan

EECS150. Arithmetic Circuits

A Simple Architectural Enhancement for Fast and Flexible Elliptic Curve Cryptography over Binary Finite Fields GF(2 m )

ECE 250 / CPS 250 Computer Architecture. Basics of Logic Design Boolean Algebra, Logic Gates

Automata Theory CS S-12 Turing Machine Modifications

convert a two s complement number back into a recognizable magnitude.

Logic and Boolean algebra

Logic and Computer Design Fundamentals. Chapter 8 Sequencing and Control

Hardware Design I Chap. 4 Representative combinational logic

CSE140: Components and Design Techniques for Digital Systems. Decoders, adders, comparators, multipliers and other ALU elements. Tajana Simunic Rosing

Ex code

Number representation

Hakim Weatherspoon CS 3410 Computer Science Cornell University

Numbers and Arithmetic

Unit 6: Branch Prediction

4. (3) What do we mean when we say something is an N-operand machine?

Computer Science. Questions for discussion Part II. Computer Science COMPUTER SCIENCE. Section 4.2.

Processor Design & ALU Design

Chapter 5 Arithmetic Circuits

Lecture 1. How to Boot a PC. Andrei Pitiș. October 8, Operating Systems Practical. OSP Lecture 1, Booting 1/30

L07-L09 recap: Fundamental lesson(s)!

Arithmetic and Logic Unit First Part

Portland State University ECE 587/687. Branch Prediction

Introduction to Digital Logic Missouri S&T University CPE 2210 Subtractors

Quantum Computing Virtual Machine. Author: Alexandru Gheorghiu Scientific advisor: PhD. Lorina Negreanu

EECS 579: Logic and Fault Simulation. Simulation

COMPUTERS ORGANIZATION 2ND YEAR COMPUTE SCIENCE MANAGEMENT ENGINEERING UNIT 3 - ARITMETHIC-LOGIC UNIT JOSÉ GARCÍA RODRÍGUEZ JOSÉ ANTONIO SERRA PÉREZ

UNSIGNED BINARY NUMBERS DIGITAL ELECTRONICS SYSTEM DESIGN WHAT ABOUT NEGATIVE NUMBERS? BINARY ADDITION 11/9/2018

Introduction to CMOS VLSI Design Lecture 1: Introduction

1. (2 )Clock rates have grown by a factor of 1000 while power consumed has only grown by a factor of 30. How was this accomplished?

Chapter 5. Digital Design and Computer Architecture, 2 nd Edition. David Money Harris and Sarah L. Harris. Chapter 5 <1>

Digital Systems Overview. Unit 1 Numbering Systems. Why Digital Systems? Levels of Design Abstraction. Dissecting Decimal Numbers

COE 328 Final Exam 2008

6.111 Lecture # 12. Binary arithmetic: most operations are familiar Each place in a binary number has value 2 n

ECE 3401 Lecture 23. Pipeline Design. State Table for 2-Cycle Instructions. Control Unit. ISA: Instruction Specifications (for reference)

Microcontroller VU

Boolean Algebra and Digital Logic 2009, University of Colombo School of Computing

Transcription:

Intel 8080 CPU block diagram 8 System Data Bus (8-bit) Data Buffer Registry Array B 8 C Internal Data Bus (8-bit) F D E H L ALU SP A PC Address Buffer 16 System Address Bus (16-bit) Internal register addressing: 8-bit register (R) 3-bit address 16-bit register pair (P) 2-bit address Flag register (F) structure: Where: A 111 BC (B) 00 B 000 DE (D) 01 C 001 HL (H) 10 D 010 SP 11 E 011 H 100 L 101 S Z 0 AC 0 P 1 CY CY carry flag, set to 1 if the result of arithmetical or logical operation excides the 8-bit A register (Accumulator) or operation needs to borrow one bit in other words it s carry/borrow from/to the bit 7; P parity flag, set to 1 if the result of arithmetical operation has even number of bits equal to 1, set to 0 if this number is odd (in Z80 CPU this flag is also the overflow indicator for TC arithmetical operations); AC auxiliary carry flag, set to 1 if there was carry from bit 3 to 4 in the result of arithmetical operation (useful in programming operations with packed BCD numbers); Z zero flag, set to 1 if the result of arithmetical operation is zero; S sign flag, equal to the most significant (oldest) bit of the result of arithmetical operation. 1

Intel 8080 instruction set architecture Instruction code formats: One byte instructions: i 7 i 6 i 5 i 4 i 3 i 2 i 1 i 0 All bits used to encode instruction, no operands. i 7 i 6 i 5 i 4 i 3 r r r One operand in 8-bit internal register A to L. i 7 i 6 r r r i 2 i 1 i 0 One operand in 8-bit internal register A to L. i 7 i 6 r1 r1 r1 r2 r2 r2 Two operands in two 8-bit internal registers A to L. i 7 i 6 p p i 3 i 2 i 1 i 0 One operand in 16-bit register pair BC, DE, HL or in SP. Two byte instructions: i 7 i 6 i 5 i 4 i 3 i 2 i 1 i 0 All bits of the first byte used to encode instruction, d 7 d 6 d 5 d 4 d 3 d 2 d 1 d 0 the second byte is the immediate operand (argument). i 7 i 6 r r r i 2 i 1 i 0 First operand in 8-bit internal register A to L, d 7 d 6 d 5 d 4 d 3 d 2 d 1 d 0 the second operand is immediate. i 7 i 6 i 5 i 4 i 3 i 2 i 1 i 0 All bits of the first byte used to encode instruction, p 7 p 6 p 5 p 4 p 3 p 2 p 1 p 0 the second byte is the 8-bit address of I/O port. Three byte instructions with immediate memory addressing: i 7 i 6 p p i 3 i 2 i 1 i 0 First operand in 16-bit register pair BC, DE, HL or in SP, l 7 l 6 l 5 l 4 l 3 l 2 l 1 l 0 the second byte is lower part of 16-bit second operand, h 7 h 6 h 5 h 4 h 3 h 2 h 1 h 0 the third byte is higher part of the 16-bit second operand. Three byte instructions with direct memory addressing: i 7 i 6 i 5 i 4 i 3 i 2 i 1 i 0 All bits of the first byte used to encode instruction, l 7 l 6 l 5 l 4 l 3 l 2 l 1 l 0 the second byte is lower part of 16-bit address in memory, h 7 h 6 h 5 h 4 h 3 h 2 h 1 h 0 the third byte is higher part of address of the operand. i 7 i 6 i 5 i 4 i 3 i 2 i 1 i 0 All bits of the first byte used to encode instruction, l 7 l 6 l 5 l 4 l 3 l 2 l 1 l 0 the second byte is lower part of 16-bit address, h 7 h 6 h 5 h 4 h 3 h 2 h 1 h 0 the third byte is higher part of address of jump or call. Internal registers A, B, C, D, E, H, L (rrr), pairs of registers BC, DE, HL and SP register (pp) are addressed according to rules shown on first page. Intel s processors always store data longer than one byte in the lower-to-higher byte order little endian convention. Mnemonics used for instructions are copyrighted, so other processors which instruction lists are compatible with 8080 (Z80 for example) have different names and mnemonics for the same instructions. 2

Instruction list: Data transfer instructions MOV R1, R2 (Move register) 0 1 r1 r1 r1 r2 r2 r2 R1 R2 data from R2 is copied to R1 MOV R, M (Move from memory, address in HL) 0 1 r r r 1 1 0 R [HL] data from memory (address in HL) copied to R MOV M, R (Move to memory, address in HL ) 0 1 1 1 0 r r r [HL] R data from R copied to memory (address in HL) MVI R, data8 (Move to register immediate) 0 0 r r r 1 1 0 R data8 1 byte (next to instruction) copied to R d 7 d 6 d 5 d 4 d 3 d 2 d 1 d 0 MVI M, data8 (Move to memory immediate) 0 0 1 1 0 1 1 0 [HL] data8 1 byte copied to memory (address in HL) d 7 d 6 d 5 d 4 d 3 d 2 d 1 d 0 LXI P, data16 (Load register pair immediate) 0 0 p p 0 0 0 1 P data16 2 bytes copied to register pair l 7 l 6 l 5 l 4 l 3 l 2 l 1 l 0 lower register 2 nd byte h 7 h 6 h 5 h 4 h 3 h 2 h 1 h 0 higher register 3 rd byte LDA addr16 (Load accumulator direct) 0 0 1 1 1 0 1 0 A [addr16] 1 byte copied to register A from memory l 7 l 6 l 5 l 4 l 3 l 2 l 1 l 0 lower byte of address 2 nd byte STA addr16 (Store accumulator direct) 0 0 1 1 0 0 1 0 [addr16] A 1 byte copied to memory from register A l 7 l 6 l 5 l 4 l 3 l 2 l 1 l 0 lower byte of address 2 nd byte LHLD addr16 (Load H and L direct) 0 0 1 1 0 0 1 0 L [addr16] 2 bytes copied from memory to HL l 7 l 6 l 5 l 4 l 3 l 2 l 1 l 0 H [addr16 + 1] lower byte of address 2 nd byte SHLD addr16 (Store H and L direct) 0 0 1 0 0 0 1 0 [addr16] L 2 bytes copied from HL to memory l 7 l 6 l 5 l 4 l 3 l 2 l 1 l 0 [addr16 + 1] H lower byte of address 2 nd byte 3

LDAX P (Load accumulator indirect, address in BC or DE) 0 0 p p 1 0 1 0 A [P] data from memory (address in P) copied to A STAX P (Store accumulator indirect, address in BC or DE) 0 0 p p 0 0 1 0 [P] A data from A copied to memory (address in P) XCHG (Exchange H and L with D and E) 1 1 1 0 1 0 1 1 H D L E data in HL and DE is switched Arithmetical instructions ADD R (Add register) 1 0 0 0 0 r r r A A + R data from R is added to data in A ADD M (Add memory, address in HL) 1 0 0 0 0 1 1 0 A A + [HL] data from memory is added to A ADI data8 (Add immediate) 1 1 0 0 0 1 1 0 A A + data8 one byte (next to instruction) added to A d 7 d 6 d 5 d 4 d 3 d 2 d 1 d 0 ADC R (Add register with carry) 1 0 0 0 1 r r r A A + R + CY data from R and CY flag are added to A ADC M (Add memory with carry, address in HL) 1 0 0 0 1 1 1 0 A A + [HL] + CY data from memory and CY added to A ACI data8 (Add immediate with carry) 1 1 0 0 1 1 1 0 A A + data8 + CY one byte and CY added to A d 7 d 6 d 5 d 4 d 3 d 2 d 1 d 0 SUB R (Subtract register) 1 0 0 1 0 r r r A A - R data from R is subtracted from A SUB M (Subtract memory, address in HL) 1 0 0 1 0 1 1 0 A A - [HL] data from memory is subtracted from A SUI data8 (Subtract immediate) 1 1 0 1 0 1 1 0 A A - data8 one byte subtracted from A d 7 d 6 d 5 d 4 d 3 d 2 d 1 d 0 4

SBB R (Subtract register with borrow) 1 0 0 1 1 r r r A A - R - CY R and CY are subtracted from A SBB M (Subtract memory with borrow) 1 0 0 1 1 1 1 0 A A - [HL] - CY data from memory and CY subtracted from A, SBI data8 (Subtract immediate with borrow) 1 1 0 1 1 1 1 0 A A - data8 - CY one byte and CY subtracted from A d 7 d 6 d 5 d 4 d 3 d 2 d 1 d 0 INR R (Increment register) 0 0 r r r 1 0 0 R R + 1 Data in R is incremented by 1 flags affected: Z, S, P, AC INR M (Increment memory, address in HL) 0 0 1 1 0 1 0 0 [HL] [HL] + 1 Data in memory is incremented by 1 flags affected: Z, S, P, AC DCR R (Decrement register) 0 0 r r r 1 0 1 R R - 1 Data in R is decremented by 1 flags affected: Z, S, P, AC DCR M (Decrement memory, address in HL) 0 0 1 1 0 1 0 1 [HL] [HL] - 1 Data in memory is decremented by 1 flags affected: Z, S, P, AC INX P (Increment register pair) 0 0 p p 0 0 1 1 P P + 1 Data in register pair P is incremented by 1 flags affected: none DCX P (Decrement register pair) 0 0 p p 1 0 1 1 P P - 1 Data in register pair P is decremented by 1 flags affected: none DAD P (Decrement register pair) 0 0 p p 1 0 0 1 HL HL + P Data in register pair P is added to HL (from higher byte) DAA (Decimal adjust Accumulator) 0 0 1 0 0 1 1 1 A adjust BCD (A) Data in A is adjusted as packed BCD: if (a 3 a 0 ) > 9 or AC=1 then (a 3 a 0 ) (a 3 a 0 ) + 6 if (a 7 a 4 ) > 9 or CY=1 then (a 7 a 4 ) (a 7 a 4 ) + 6 explanation: 6 is the 4-bit U2 code of -10 5

Logical instructions ANA R (AND with register) 1 0 1 0 0 r r r A A R Bits in A logically multiplied with bits from R flags affected: Z, S, P, CY=0, AC=0 ANA M (AND with memory address in HL) 1 0 1 0 0 1 1 0 A A [HL] Bits in A logically multiplied with bits from memory, flags affected: Z, S, P, CY=0, AC=0 ANI data8 (AND immediate) 1 1 1 0 0 1 1 0 A A data8 Bits in A logically multiplied with bits from d 7 d 6 d 5 d 4 d 3 d 2 d 1 d 0 2 nd byte of instruction, flags affected: Z, S, P, CY=0, AC=0 XRA R (XOR with register) 1 0 1 0 1 r r r A A R Bits in A logically xor-ed with bits from R flags affected: Z, S, P, CY=0, AC=0 XRA M (XOR with memory address in HL) 1 0 1 0 1 1 1 0 A A [HL] Bits in A logically xor-ed with bits from memory, flags affected: Z, S, P, CY=0, AC=0 XRI data8 (XOR immediate) 1 1 1 0 1 1 1 0 A A data8 Bits in A logically xor-ed with bits from d 7 d 6 d 5 d 4 d 3 d 2 d 1 d 0 2 nd byte of instruction, flags affected: Z, S, P, CY=0, AC=0 ORA R (OR with register) 1 0 1 1 0 r r r A A R Bits in A logically added with bits from R flags affected: Z, S, P, CY=0, AC=0 ORA M (OR with memory address in HL) 1 0 1 1 0 1 1 0 A A [HL] Bits in A logically added with bits from memory, flags affected: Z, S, P, CY=0, AC=0 ORI data8 (OR immediate) 1 1 1 1 0 1 1 0 A A data8 Bits in A logically added with bits from d 7 d 6 d 5 d 4 d 3 d 2 d 1 d 0 2 nd byte of instruction, flags affected: Z, S, P, CY=0, AC=0 CMP R (Compare with register) 1 0 1 1 1 r r r A - R Data in R is subtracted from data in A, no result is stored, only flags are affected: Z, S, P, CY, AC CMP M (Compare with memory address in HL) 1 0 1 1 1 1 1 0 A - [HL] Data in memory is subtracted from data in A, no result is stored, only flags are affected: Z, S, P, CY, AC 6

CPI data8 (Compare immediate) 1 1 1 1 1 1 1 0 A - data8 Data in 2 nd byte of instruction is subtracted d 7 d 6 d 5 d 4 d 3 d 2 d 1 d 0 from data in A, only flags are affected: Z, S, P, CY, AC Comment: Interpretation of compare operations is possible by checking Z and CY flags after execution: if Z=1 then values compared are equal, else (if Z=0) if CY=0 then A > compared value, else (if CY=1) A < compared value. RLC (Rotate left / rotate logically left) 0 0 0 0 0 1 1 1 A i+1 A i, A 0 A 7, CY A 7 Bits in A shifted left, oldest bit copied to youngest bit and CY, RRC (Rotate right / rotate logically right) 0 0 0 0 1 1 1 1 A i A i+1, A 7 A 0, CY A 0 Bits in A shifted right, youngest bit copied to oldest bit and CY, RAL (Rotate left through carry / rotate arithmetically left) 0 0 0 1 0 1 1 1 A i+1 A i, A 0 CY, CY A 7 Bits in A shifted left, CY copied to youngest bit, oldest bit copied to CY, RAR (Rotate right through carry / rotate arithmetically right) 0 0 0 1 0 1 1 1 A i A i+1, A 7 CY, CY A 0 Bits in A shifted right, CY copied to oldest bit, youngest bit copied to CY, CMA (Complement Accumulator) 0 0 1 0 1 1 1 1 A A Bitwise negation of A (one s complement) flags affected: none CMC (Complement carry) 0 0 1 1 1 1 1 1 CY CY Negation (inversion) of CY flag Branch instructions Comment: These instructions are passing control to the new address in program (not just to the address of next instruction). There are two basic types of branches: unconditional just go to new address, conditional check if particular condition (detected by status of one of the flags in F register) occurs and jump if so, continue with next instruction if not. 7

The conditions are encoded (inside the codes of instructions) according to this table: JMP addr16 Condition Mnemonic (CND) Code (ccc) Not zero (Z = 0) NZ 000 Zero (Z = 1) Z 001 No carry (CY = 0) NC 010 Carry (CY = 1) C 011 Parity odd (P = 0) PO 100 Parity even (P = 1) PE 101 Plus (S = 0) P 110 Minus (S = 1) M 111 (Jump) 1 1 0 0 0 0 1 1 PC [addr16] Unconditional jump to direct address l 7 l 6 l 5 l 4 l 3 l 2 l 1 l 0 lower byte of address 2 nd byte JCND addr16 (Conditional jump) 1 1 c c c 0 1 0 if (CND) then PC [addr16] l 7 l 6 l 5 l 4 l 3 l 2 l 1 l 0 lower byte of address 2 nd byte CALL addr16 (Call procedure) 1 1 0 0 1 1 0 1 [SP-1] PC H, [SP-2] PC L, SP SP-2, l 7 l 6 l 5 l 4 l 3 l 2 l 1 l 0 PC [addr16] lower byte of address 2 nd byte CCND addr16 (Conditional call) 1 1 c c c 0 1 0 if (CND) then [SP-1] PC H, [SP-2] PC L, l 7 l 6 l 5 l 4 l 3 l 2 l 1 l 0 SP SP-2, lower byte of address 2 nd byte h 7 h 6 h 5 h 4 h 3 h 2 h 1 h 0 PC [addr16] higher byte of address 3 rd byte RET (Return from procedure) 1 1 0 0 1 0 0 1 PC L, [SP], PC H [SP+1], SP SP+2 RCND (Conditional return from procedure) 1 1 c c c 0 0 0 if (CND) then PC L, [SP], PC H [SP+1], SP SP+2 RST N (Restart procedure / interrupt routine No. N) 1 1 n n n 1 1 1 [SP-1] PC H, [SP-2] PC L, SP SP-2, PC N 8 PCHL (Move HL to PC) 1 1 1 0 1 0 0 1 PC H H, PC L L 8

Stack manipulations PUSH P (Push register pair B, D or H on stack) 1 1 p p 0 1 0 1 [SP-1] P H, [SP-2] P L, SP SP-2 PUSH PSW (Push Processor Status Word on stack) 1 1 1 1 0 1 0 1 [SP-1] A, [SP-2] F, SP SP-2 POP P (Pop register pair B, D or H from stack) 1 1 p p 0 0 0 1 P L [SP], P H [SP+1], SP SP+2 POP PSW (Pop Processor Status Word from stack) 1 1 1 1 0 0 0 1 F [SP], A [SP+1], SP SP+2 XTHL (Exchange stack top with HL) 1 1 1 0 0 0 1 1 L [SP], H [SP+1] SPHL (Move HL to SP) 1 1 1 1 1 0 0 1 SP HL Input / Output instructions IN adr8 (Input from port) 1 1 0 1 1 0 1 1 A Port[adr8] One byte of data from port stored in A p 7 p 6 p 5 p 4 p 3 p 2 p 1 p 0 Notice: port address is 8-bit long OUT adr8 (Output to port) 1 1 0 1 0 0 1 1 Port[adr8] A One byte of data from A stored in port p 7 p 6 p 5 p 4 p 3 p 2 p 1 p 0 Notice: port address is 8-bit long Other instructions EI (Enable interrupt) 1 1 1 1 1 0 1 1 INT input (hardware interrupt signal) is enabled DI (Disable interrupt) 1 1 1 1 0 0 1 1 INT input (hardware interrupt signal) is disabled (blocked) HLT (Halt) 0 1 1 1 0 1 1 0 Processor is stopped until hardware interrupt occurs NOP (No operation) 0 0 0 0 0 0 0 0 Processor doesn t perform any operation 9