The document discusses register pairs and addressing modes in the 8085 microprocessor. It explains that the 8085 uses 8-bit registers but 16-bit addresses, so it allows registers to be paired to manipulate 16-bit data. The three valid register pairs are B-C, D-E, and H-L. The LXI instruction loads 16-bit data into a register pair in one step. Memory locations can be addressed indirectly using the HL register pair. Other instructions like INX and DCX increment/decrement 16-bit addresses in register pairs. Arithmetic instructions can also operate on memory using HL as the address.
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0 ratings0% found this document useful (0 votes)
440 views13 pages
Chapter 7 Mup
The document discusses register pairs and addressing modes in the 8085 microprocessor. It explains that the 8085 uses 8-bit registers but 16-bit addresses, so it allows registers to be paired to manipulate 16-bit data. The three valid register pairs are B-C, D-E, and H-L. The LXI instruction loads 16-bit data into a register pair in one step. Memory locations can be addressed indirectly using the HL register pair. Other instructions like INX and DCX increment/decrement 16-bit addresses in register pairs. Arithmetic instructions can also operate on memory using HL as the address.
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 13
Chapter 7
Programming Techniques
Microprocessors & Interfacing Dr. Bassel Soudan 1
Register Pairs • The 8085 is an 8-bit microprocessor. So, its general purpose registers are 8-bits wide. – But, it uses 16-bit addresses. • To allow manipulation of the 16-bit addresses, the 8085 allows its registers to be paired. – In other words, it is possible to combine two 8-bit registers together into a 16-bit super register or a register pair. • The 8085 recognizes only 3 register pairs: B and C, D and E and H and L. – It is not possible to pair B and E for example.
Microprocessors & Interfacing Dr. Bassel Soudan 2
Identifying Register Pairs • A register pair is identified with the name of the first register in the pair. • Therefore, the three register pairs are called: – B for the B,C pair – D for the D,E pair – H for the H,L pair
Microprocessors & Interfacing Dr. Bassel Soudan 3
Placing 16-bit Data into a Register Pair • To place a 16-bit number into a register pair, we can place an 8-bit number in each of the two registers. MVI L 00H MVI H 32H
– But, in what order?
MVI L 00H or MVI L 32H MVI H 32H MVI H 00H
Microprocessors & Interfacing Dr. Bassel Soudan 4
The LXI instruction • The 8085 provides an instruction to place the 16- bit data into the register pair in one step. • LXI Rp, <16-bit address> (Load eXtended Immediate)
– The instruction LXI B 4000H will place the 16-bit
number 4000 into the register pair B, C. • The upper two digits are placed in the 1st register of the pair and the lower two digits in the 2nd .
LXI B 40 00H B 40 00 C
Microprocessors & Interfacing Dr. Bassel Soudan 5
The Memory “Register” • Most of the instructions of the 8085 can use a memory location in place of a register. – The memory location will become the “memory” register M. • MOV M B – copy the data from register B into a memory location. – Which memory location?
• The memory location is identified by the contents
of the HL register pair. – The 16-bit contents of the HL register pair are treated as a 16-bit address and used to identify the memory location.
Microprocessors & Interfacing Dr. Bassel Soudan 6
Indirect Addressing Mode • Using data in memory directly (without loading first into a Microprocessor’s register) is called Indirect Addressing.
• Indirect addressing uses the data in a register
pair as a 16-bit address to identify the memory location being accessed. – The HL register pair is always used in conjunction with the memory register “M”. – The BC and DE register pairs can be used to load data into the Accumultor using indirect addressing.
Microprocessors & Interfacing Dr. Bassel Soudan 7
Using the Other Register Pairs – There is also an instruction for moving data from memory to the accumulator without disturbing the contents of the H and L register.
• LDAX Rp (LoaD Accumulator eXtended)
– Copy the 8-bit contents of the memory location identified by
the Rp register pair into the Accumulator. – This instruction only uses the BC or DE pair. – It does not accept the HL pair.
Microprocessors & Interfacing Dr. Bassel Soudan 8
Manipulating Addresses • Now that we have a 16-bit address in a register pair, how do we manipulate it? – It is possible to manipulate a 16-bit address stored in a register pair as one entity using some special instructions. • INX Rp (Increment the 16-bit number in the register pair) • DCX Rp (Decrement the 16-bit number in the register pair) – The register pair is incremented or decremented as one entity. No need to worry about a carry from the lower 8-bits to the upper. It is taken care of automatically.
Microprocessors & Interfacing Dr. Bassel Soudan 9
Arithmetic Operations Related to Memory • These instructions perform an arithmetic operation using the contents of a memory location while they are still in memory. – ADD M • Add the contents of M to the Accumulator – SUB M • Sub the contents of M from the Accumulator – INR M / DCR M • Increment/decrement the contents of the memory location in place.
– All of these use the contents of the HL register pair
to identify the memory location being used. Microprocessors & Interfacing Dr. Bassel Soudan 10 Additional Logic Operations • Rotate – Rotate the contents of the accumulator one position to the left or right. – RLC Rotate the accumulator left. Bit 7 goes to bit 0 AND the Carry flag. – RAL Rotate the accumulator left through the carry. Bit 7 goes to the carry and carry goes to bit 0. – RRC Rotate the accumulator right. Bit 0 goes to bit 7 AND the Carry flag. – RAR Rotate the accumulator right through the carry. Bit 0 goes to the carry and carry goes to bit 7.
Microprocessors & Interfacing Dr. Bassel Soudan 11
RLC vs. RLA • RLC Carry Flag
7 6 5 4 3 2 1 0
Accumulator
• RAL Carry Flag
7 6 5 4 3 2 1 0
Accumulator
Microprocessors & Interfacing Dr. Bassel Soudan 12
Logical Operations • Compare • Compare the contents of a register or memory location with the contents of the accumulator. – CMP R/M Compare the contents of the register or memory location to the contents of the accumulator. – CPI # Compare the 8-bit number to the contents of the accumulator. • The compare instruction sets the flags (Z, Cy, and S).
• The compare is done using an internal subtraction that
does not change the contents of the accumulator. A – (R / M / #)
Microprocessors & Interfacing Dr. Bassel Soudan 13