




























































































Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
This comprehensive lab manual provides a detailed guide to programming 8085, 8086, and 8051 microprocessors. It covers fundamental concepts, instruction sets, and practical exercises for each processor. The manual includes pin diagrams, addressing modes, and examples of programs for various tasks, such as addition, subtraction, multiplication, and data manipulation. It is a valuable resource for students and professionals seeking to learn and apply microprocessor programming techniques.
Typology: Summaries
1 / 141
This page cannot be seen from the preview
Don't miss anything!





























































































rd
th
Contents
8085 Pin Diagram
| --> X1 ||1 40|| Vcc (+5V) | | | | | | --> X2 ||2 39|| HOLD <-- | | | | | | <-- RESET OUT ||3 38|| HLDA --> | | | | | | <-- SOD ||4 37|| CLK (OUT) --> | | | | ________ | | --> SID ||5 36|| RESET IN <-- | | | | | | --> TRAP ||6 35|| READY <-- | | | | _ | | --> RST 7.5 ||7 34|| IO/M --> | | | | | | --> RST 6.5 ||8 33|| S1 --> | | | | __ | | --> RST 5.5 ||9 32|| RD --> | | | | __ | | --> INTR ||10 8085A 31|| WR --> | | ____ | | | | <-- INTA ||11 30|| ALE --> | | | | | | <--> AD0 ||12 29|| S0 --> | | | | | | <--> AD1 ||13 28|| A15 --> | | | | | | <--> AD2 ||14 27|| A14 --> | | | | | | <--> AD3 ||15 26|| A13 --> | | | | | | <--> AD4 ||16 25|| A12 --> | | | | | | <--> AD5 ||17 24|| A11 --> | | | | | | <--> AD6 ||18 23|| A10 --> | | | | | | <--> AD7 ||19 22|| A9 --> | | | | | | (Gnd) Vss ||20 21|| A8 --> | | |______________________| | | | | | | | | Copyright (C) J.P.Bowen 1985|
8085 Instruction Set
|Mnemonic |Op|SZAPC|~s|Description |Notes | |---------+--+-----+--+--------------------------+-------------| |ACI n |CE|*****| 7|Add with Carry Immediate |A=A+n+CY | |ADC r |8F|*****| 4|Add with Carry |A=A+r+CY(21X)| |ADC M |8E|*****| 7|Add with Carry to Memory |A=A+[HL]+CY | |ADD r |87|*****| 4|Add |A=A+r (20X)| |ADD M |86|*****| 7|Add to Memory |A=A+[HL] | |ADI n |C6|*****| 7|Add Immediate |A=A+n | |ANA r |A7|****0| 4|AND Accumulator |A=A&r (24X)| |ANA M |A6|****0| 7|AND Accumulator and Memory|A=A&[HL] | |ANI n |E6|00| 7|AND Immediate |A=A&n | |CALL a |CD|-----|18|Call unconditional |-[SP]=PC,PC=a| |CC a |DC|-----| 9|Call on Carry |If CY=1(18~s)| |CM a |FC|-----| 9|Call on Minus |If S=1 (18~s)| |CMA |2F|-----| 4|Complement Accumulator |A=~A | |CMC |3F|----| 4|Complement Carry |CY=~CY | |CMP r |BF|*****| 4|Compare |A-r (27X)| |CMP M |BF|*****| 7|Compare with Memory |A-[HL] | |CNC a |D4|-----| 9|Call on No Carry |If CY=0(18~s)| |CNZ a |C4|-----| 9|Call on No Zero |If Z=0 (18~s)| |CP a |F4|-----| 9|Call on Plus |If S=0 (18~s)| |CPE a |EC|-----| 9|Call on Parity Even |If P=1 (18~s)| |CPI n |FE|*****| 7|Compare Immediate |A-n | |CPO a |E4|-----| 9|Call on Parity Odd |If P=0 (18~s)| |CZ a |CC|-----| 9|Call on Zero |If Z=1 (18~s)| |DAA |27|*****| 4|Decimal Adjust Accumulator|A=BCD format | |DAD B |09|----|10|Double Add BC to HL |HL=HL+BC | |DAD D |19|----|10|Double Add DE to HL |HL=HL+DE | |DAD H |29|----|10|Double Add HL to HL |HL=HL+HL | |DAD SP |39|----|10|Double Add SP to HL |HL=HL+SP | |DCR r |3D|****-| 4|Decrement |r=r-1 (0X5)| |DCR M |35|****-|10|Decrement Memory |[HL]=[HL]-1 | |DCX B |0B|-----| 6|Decrement BC |BC=BC-1 | |DCX D |1B|-----| 6|Decrement DE |DE=DE-1 | |DCX H |2B|-----| 6|Decrement HL |HL=HL-1 | |DCX SP |3B|-----| 6|Decrement Stack Pointer |SP=SP-1 | |DI |F3|-----| 4|Disable Interrupts | | |EI |FB|-----| 4|Enable Interrupts | | |HLT |76|-----| 5|Halt | | |IN p |DB|-----|10|Input |A=[p] | |INR r |3C|****-| 4|Increment |r=r+1 (0X4)| |INR M |3C|****-|10|Increment Memory |[HL]=[HL]+1 | |INX B |03|-----| 6|Increment BC |BC=BC+1 | |INX D |13|-----| 6|Increment DE |DE=DE+1 | |INX H |23|-----| 6|Increment HL |HL=HL+1 | |INX SP |33|-----| 6|Increment Stack Pointer |SP=SP+1 | |JMP a |C3|-----| 7|Jump unconditional |PC=a | |JC a |DA|-----| 7|Jump on Carry |If CY=1(10~s)| |JM a |FA|-----| 7|Jump on Minus |If S=1 (10~s)| |JNC a |D2|-----| 7|Jump on No Carry |If CY=0(10~s)| |JNZ a |C2|-----| 7|Jump on No Zero |If Z=0 (10~s)| |JP a |F2|-----| 7|Jump on Plus |If S=0 (10~s)|
|SIM |30|-----| 4|Set Interrupt Mask |mask=A | |SPHL |F9|-----| 6|Move HL to SP |SP=HL | |STA a |32|-----|13|Store Accumulator |[a]=A | |STAX B |02|-----| 7|Store Accumulator indirect|[BC]=A | |STAX D |12|-----| 7|Store Accumulator indirect|[DE]=A | |STC |37|----1| 4|Set Carry |CY=1 | |SUB r |97|*****| 4|Subtract |A=A-r (22X)| |SUB M |96|*****| 7|Subtract Memory |A=A-[HL] | |SUI n |D6|*****| 7|Subtract Immediate |A=A-n | |XCHG |EB|-----| 4|Exchange HL with DE |HL<->DE | |XRA r |AF|00| 4|Exclusive OR Accumulator |A=Axr (25X)| |XRA M |AE|00| 7|Exclusive OR Accumulator |A=Ax[HL] | |XRI n |EE|00| 7|Exclusive OR Immediate |A=Axn | |XTHL |E3|-----|16|Exchange stack Top with HL|[SP]<->HL | |------------+-----+--+----------------------------------------| | PSW |-01 | |Flag unaffected/affected/reset/set | | S |S | |Sign (Bit 7) | | Z | Z | |Zero (Bit 6) | | AC | A | |Auxilary Carry (Bit 4) | | P | P | |Parity (Bit 2) | | CY | C| |Carry (Bit 0) | |---------------------+----------------------------------------| | a p |Direct addressing | | M z |Register indirect addressing | | n nn |Immediate addressing | | r |Register addressing | |---------------------+----------------------------------------| |DB n(,n) |Define Byte(s) | |DB 'string' |Define Byte ASCII character string | |DS nn |Define Storage Block | |DW nn(,nn) |Define Word(s) | |---------------------+----------------------------------------| | A B C D E H L |Registers (8-bit) | | BC DE HL |Register pairs (16-bit) | | PC |Program Counter register (16-bit) | | PSW |Processor Status Word (8-bit) | | SP |Stack Pointer register (16-bit) | |---------------------+----------------------------------------| | a nn |16-bit address/data (0 to 65535) | | n p |8-bit data/port (0 to 255) | | r |Register (X=B,C,D,E,H,L,M,A) | | z |Vector (X=0H,8H,10H,18H,20H,28H,30H,38H)| |---------------------+----------------------------------------| | + - |Arithmetic addition/subtraction | | & ~ |Logical AND/NOT | | v x |Logical inclusive/exclusive OR | | <- -> |Rotate left/right | | <-> |Exchange | | [ ] |Indirect addressing | | [ ]+ -[ ] |Indirect address auto-inc/decrement | | { } |Combination operands | | ( X ) |Octal op code where X is a 3-bit code | | If ( ~s) |Number of cycles if condition true |
8-BIT ADDITION USING ACCUMULATOR
AIM: To perform 8-bit Addition of two hexadecimal numbers using
accumulator in 8085
PROGRAM:
Address Program Explanation
MNEMONICS:
INPUT & OUTPUT:
Location Values
9000 INPUT 1 42
9001 INPUT 2 35
9002 RESULT 77
9003 CARRY 00
Location Values
9000 INPUT 1 A
9001 INPUT 2 F
9002 RESULT 9E
9003 CARRY 01
8-BIT ADDITION WITH MEMORY POINTER
AIM: To perform 8-bit Addition of two hexadecimal numbers using
memory pointer in 8085
PROGRAM:
Address Program Explanation
FLOWCHART