Professional Documents
Culture Documents
1
OBJECTIVES
Explain the operation of the 8085 arithmetic and logic
instructions and describe their effect on the flag bits.
Describe how DAA adjusts the result of a BCD
addition.
Write short programs using the arithmetic and logic
operations.
Use the logic instructions to clear, set, and complement
bus.
Test the accumulator, using the ANA A or ORA A
instruction.
Explain the operation of the shift and rotate instructions
and their effect on the flag bits.
12 Prepared by:Bulbula. K
Addition with Carry
13 Prepared by:Bulbula. K
Example
Suppose that the DE register pair contains a 16-bit number that
we must add to the number in the BC register pair. To
accomplish this multiple-byte addition, add F and C together
and then add D and B together with the carry. The add-with-
carry instruction uses the carry from the addition of E and C to
generate the correct answer when D and B are added.
14 Prepared by:Bulbula. K
Example
15 Prepared by:Bulbula. K
Sixteen-Bit Addition
The 8085 instruction set does contain special instructions
(DAD) that do 16-bit addition.
16 Prepared by:Bulbula. K
BCD Addition
BCD addition is like binary addition except that the numbers
range in value only from 0 through 9.
A special instruction allows BCD addition by using the standard
binary addition (ADD) instructions.
The DAA instruction appears after a BCD addition (with a binary add
instruction) to correct the BCD result.
The DAA instruction does not convert a binary number to a BCD
number.
17 Prepared by:Bulbula. K
Example
19 Prepared by:Bulbula. K
Increment
The last form of addition is to increment or add 1.
The increment command is either an 8-bit (INR) increment
or a 16-bit (INX) Increment instruction.
The INR instructions affect all the flags except carry, and
the INX instructions affect no flags.
20 Prepared by:Bulbula. K
Prepared by:Bulbula. K 21
Subtraction
The 8085 supports 8-bit binary subtraction and decrement.
It also supports a subtraction instruction that allows a borrow
to be propagated through additional bytes of a number.
The subtract-with-borrow instruction aids in the subtraction
of multiple-byte numbers. .
22 Prepared by:Bulbula. K
Subtraction
The 8085 performs subtraction by using the method of 2’s
complement.
Subtraction can be performed by using either:
the instruction SUB to subtract contents of a source register or
the instruction SUI to subtract an 8-bit number from contents
of the accumulator.
In either case, the accumulator contents are regarded as
minuend (the number from which to subtract).
23 Prepared by:Bulbula. K
Subtraction
Various subtraction instructions: register, register indirect, and immediate addressing.
Direct addressing is not allowed for a subtraction.
Each of these instructions affects the flag bits, so they reflect various conditions about
the difference after a subtraction.
24 Prepared by:Bulbula. K
Subtraction
The 8085 performs the following steps internally to execute the
instruction SUB (or SUI):
Converts subtrahend (the number to be subtracted) into its 1’s complement.
Adds 1I to 1’s complement to obtain 2’s complement of the subtrahend.
Add 2’s complement to the minuend (the contents of the accumulator).
Complements the Carry flag.
25 Prepared by:Bulbula. K
Illustrative Program: Subtraction of Two
Numbers
PROBLEM STATEMENT
Write a program to do the following:
Load the number 3011 in register B and 3911 in register C.
Subtract 39H from 3011.
Display the answer at PORT I.
27 Prepared by:Bulbula. K
Illustrative Program: Subtraction of Two
Numbers
PROGRAM DESCRIPTION
Registers B and C are loaded with 30H and 39H,
respectively.
The instruction MOV A,B copies 30H into the
accumulator (shown as register contents).
28 Prepared by:Bulbula. K
Illustrative Program: Subtraction of Two
Numbers
To execute the instruction SUB C the microprocessor performs
the following steps internally:
29 Prepared by:Bulbula. K
Illustrative Program: Subtraction of Two
Numbers
PROGRAM DESCRIPTION
The number F7H is a 2’s complement of the magnitude
(39H-30H)=09H.
This ‘Cy’ flag is set, indicating the answer is in 2’s complement.
The instruction OUT displays F7 at PORT1.
30 Prepared by:Bulbula. K
Subtraction
P= 0 Odd parity
31 Prepared by:Bulbula. K
Subtract with Borrow
32 Prepared by:Bulbula. K
Subtract with Borrow
33 Prepared by:Bulbula. K
Example
Suppose that the number in the DE pair must be subtracted from the BC
pair. The least significant is operated on first. Once the difference of C and
E is found, the D register is subtracted from the B register with a borrow.
The subtraction with borrow effectively propagates the borrow through the
most significant byte of the result.
34 Prepared by:Bulbula. K
LOGIC INSTRUCTIONS
Four basic logic functions:
invert, AND, OR, and exclusive-OR.
Why does a microprocessor instruction set contain logic
instructions?
Logic instructions sometimes replace discrete logic gates.
Today, program storage costs about of a cent per byte.
System control software usually requires bit manipulation —
a logic operation.
35 Prepared by:Bulbula. K
Inversion
The CMA instruction (2FH (NOT)
in machine language), one’s-
complements or inverts the contents of the accumulator.
This operation, which affects none of the flag bits, causes each
bit of the accumulator to be inverted (changed from 1 to 0 or 0
to 1).
The CMA instruction causes the accumulator to appear as eight
inverters (or NOT).
This means that this one-byte instruction replaces eight discrete inverters
if the speed required is not too great. The amount of circuitry replaced by
the CMA instruction is 14 of a 7404 TTL hex inverter.
36 Prepared by:Bulbula. K
The AND Operation
The AND instruction, has two separate functions in a
microprocessor-based system.
The AND instruction selectively clears bits of the accumulator or
replaces discrete AND gates.
The AND instruction, functions as eight independent two-input
AND gates. This instruction replaces two 7408 quad two-input
AND gates.
37 Prepared by:Bulbula. K
The AND Operation
38 Prepared by:Bulbula. K
The AND Operation
39 Prepared by:Bulbula. K
The OR Operation
Has two separate functions in a microprocessor-based
system:
It selectively sets bits of the accumulator or
Replaces discrete OR gates.
The inclusive-OR instruction functions as eight
independent two-input OR gates.
This instruction replaces two 7432 quad two-input OR
gates.
40 Prepared by:Bulbula. K
The OR Operation
41 Prepared by:Bulbula. K
The OR Operation
42 Prepared by:Bulbula. K
43 Prepared by:Bulbula. K
Illustrative Program: ORing Data from Two
Input Ports
PROBLEM STATEMENT
Two input port with eight switches (each port) at address
00H and OIH (Figure 6.9) is connected to the
microcomputer to control the same appliances and lights
from the bedroom as well as from the kitchen.
Write instructions to turn on the devices from any of the
input ports.
44 Prepared by:Bulbula. K
Illustrative Program: ORing Data from Two Input Ports
45 Prepared by:Bulbula. K
Illustrative Program: ORing Data from Two
Input Ports
PROBLEM ANALYSIS
To turn on the appliances from any one of the input ports, the
microprocessor needs to read the switches at both ports and logically
OR the switch positions.
Assume that the switch positions in one input port (located in the
bedroom) correspond to the data byte 9lH and the switch positions
in the second port (located in the kitchen) correspond to the data
byte A8H.
The person in the bedroom wants to turn on the air conditioner, the
radio, and the bedroom light; and the person in the kitchen wants to
turn on the air-conditioner, the coffeepot, and the kitchen light.
By ORing these two data bytes, the MPU can turn ON the necessary
appliances.
46 Prepared by:Bulbula. K
Illustrative Program: ORing Data from Two
Input Ports
48 Prepared by:Bulbula. K
ROTATE INSTRUCTIONS
49 Prepared by:Bulbula. K
SHIFT INSTRUCTIONS
50 Prepared by:Bulbula. K
COMPARE INSTRUCTIONS
CMP R/M: Compare (Register or Memory) with Acc.
This is a 1-byte instruction.
It compares the data byte in register or memory with the contents of the acc..
If (A) < (R/M), the CY flag is set and the Zero flag is reset.
If (A) = (R/M), the Zero flag is set and the CY flag is reset.
If (A) > (R/M), the CY and Zero flags are reset.
When memory is an operand, its address is specified by (HL).
No contents are modified; however, all remaining flags (S, P, AC) are affected according to
the result of the subtraction.
CPI 8-bit: Compare Immediate with Accumulator
This is a 2-byte instruction, the second byte being 8-bit data.
It compares the second byte with (A).
If (A) < 8-bit data, the CY flag is set and the Zero flag is reset.
If (A) = 8-bit data, the Zero flag is set, and the CV flag is reset.
If (A)> 8-bit data, the CY and Zero flags are reset.
No contents are modified; however, all remaining flags (S, P, AC) are affected according to the
result of the subtraction.
51 Prepared by:Bulbula. K
EXAMPLE 1
Write a program to load the accumulator with the data byte 64H, and verify
whether the data byte in memory location 2050H is equal to the accumulator
contents. If both data bytes are equal, jump to memory location BUFFER.
LXI H,2050H
MVI A,64H
CMP M
JZ BUFFER
52 Prepared by:Bulbula. K
EXAMPLE 2
Write a program to load the accumulator with the data byte 64H, and verify
whether the data byte in memory location 2050H is greater than the
accumulator contents. If yes, jump to memory location BUFFER1. Else jump
to memory location BUFFER2.
53 Prepared by:Bulbula. K
SUMMARY
Most arithmetic and logic instructions affect the flag bits,
whereas the data transfer instructions did not affect the
flags.
Many arithmetic and logic instructions gate the result into
the accumulator.
The arithmetic and logic instructions use register,
immediate, and register indirect addressing.
Addition is available as add 1 to any register or register
pair, 8- and 16-bit binary, 8-bit binary with carry, and
binary-coded decimal (BCD).
54 Prepared by:Bulbula. K
SUMMARY
Subtraction is available as subtract 1 from any register or
register pair, 8-bit binary, 8-bit binary with borrow, and as
a compare, which is a form of subtraction.
The logic operations are AND, OR, exclusive-OR, and
invert.
The logic instructions are ideal for control because AND
clears bits, OR sets bits, and exclusive-OR complements
bits. This gives the programmer complete control over each
bit of a number.
Programmed logic replaces discrete logic circuits at a
substantial cost advantage.
55 Prepared by:Bulbula. K
SUMMARY
Some 8085 instructions have hidden functions: ADD A
shifts the accumulator left, and DAD H shifts HL left.
Both ANA A and ORA A test the accumulator, and SUB A
and XRA A clear the accumulator.
The rotate commands create the shift-right functions:
logical and arithmetic shift right.
56 Prepared by:Bulbula. K
Thank you
Q&A
57 Prepared by:Bulbula. K