1 / 54

TK 2633: Microprocessor & Interfacing

TK 2633: Microprocessor & Interfacing. Lecture 5: Arithmetic and Logic Instructions. 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.

nasnan
Download Presentation

TK 2633: Microprocessor & Interfacing

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. TK 2633:Microprocessor & Interfacing Lecture 5: Arithmetic and Logic Instructions

  2. 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. Prepared by: Dr Masri Ayob - TK2123

  3. ARITHMETIC OPERATIONS • Addition, • subtraction, • increment, • and decrement. Prepared by: Dr Masri Ayob - TK2123

  4. ARITHMETIC OPERATIONS Prepared by: Dr Masri Ayob - TK2123

  5. ARITHMETIC OPERATIONS Prepared by: Dr Masri Ayob - TK2123

  6. ARITHMETIC OPERATIONS Prepared by: Dr Masri Ayob - TK2123

  7. ARITHMETIC OPERATIONS Prepared by: Dr Masri Ayob - TK2123

  8. ADDITION • Addition takes several forms in the 8085 microprocessor: • 8-bit binary, • 16-bit binary, • and two-digit binary-coded-decimal (BCE)) addition. • Binary addition functions with either signed or unsigned numbers; • BCD addition uses only unsigned numbers. • The instruction set supports additions using register addressing, register indirect addressing, and immediate addressing, but not direct addressing. Prepared by: Dr Masri Ayob - TK2123

  9. ADDITION Prepared by: Dr Masri Ayob - TK2123

  10. ADDITION Prepared by: Dr Masri Ayob - TK2123

  11. ADDITION Prepared by: Dr Masri Ayob - TK2123

  12. Addition with Carry • Whenever large numbers (numbers wider than 8 bits, or multiple-byte numbers) are added, the carry must be propagated from one 8-bit segment to the next. Prepared by: Dr Masri Ayob - TK2123

  13. Addition with Carry Prepared by: Dr Masri Ayob - TK2123

  14. 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. Prepared by: Dr Masri Ayob - TK2123

  15. Example Prepared by: Dr Masri Ayob - TK2123

  16. Sixteen-Bit Addition • The 8085 instruction set does contain special instructions (DAD) that do 16-bit addition. Prepared by: Dr Masri Ayob - TK2123

  17. 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. Prepared by: Dr Masri Ayob - TK2123

  18. Example • Example 5-6 illustrates the summation of the packed BCD numbers 11 and 19. • After this addition, the accumulator contains a 2AH, which is not a BCD number: • the answer should be a 30BCD • The DAA instruction corrects the answer after the addition and provides a 30BCD after the DAA instruction executes. Prepared by: Dr Masri Ayob - TK2123

  19. BCD Addition • The DAA instruction changes the result through the two tests listed by adding a OOH, 06H, 60H, or 66H to the accumulator. • If the least significant half-byte is greater than 9 or if the AC flag = 1, the DAA instruction adds a 06H to the accumulator. • If the most significant half-byte is greater than 9 or if the C flag bit 1, the DAA instruction adds a 60H to the accumulator. Prepared by: Dr Masri Ayob - TK2123

  20. 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. Prepared by: Dr Masri Ayob - TK2123

  21. Prepared by: Dr Masri Ayob - TK2123

  22. 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. . Prepared by: Dr Masri Ayob - TK2123

  23. 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). Prepared by: Dr Masri Ayob - TK2123

  24. 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. Prepared by: Dr Masri Ayob - TK2123

  25. 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. Prepared by: Dr Masri Ayob - TK2123

  26. 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. Prepared by: Dr Masri Ayob - TK2123

  27. Illustrative Program: Subtraction of Two Numbers Prepared by: Dr Masri Ayob - TK2123

  28. 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). Prepared by: Dr Masri Ayob - TK2123

  29. Illustrative Program: Subtraction of Two Numbers • To execute the instruction SUB C the microprocessor performs the following steps internally: Prepared by: Dr Masri Ayob - TK2123

  30. 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. Prepared by: Dr Masri Ayob - TK2123

  31. Subtraction P= 0 Odd parity Prepared by: Dr Masri Ayob - TK2123

  32. Subtract with Borrow Prepared by: Dr Masri Ayob - TK2123

  33. Subtract with Borrow Prepared by: Dr Masri Ayob - TK2123

  34. 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. Prepared by: Dr Masri Ayob - TK2123

  35. 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. Prepared by: Dr Masri Ayob - TK2123

  36. Inversion (NOT) • The CMA instruction (2FH 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. Prepared by: Dr Masri Ayob - TK2123

  37. 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. Prepared by: Dr Masri Ayob - TK2123

  38. The AND Operation Prepared by: Dr Masri Ayob - TK2123

  39. The AND Operation Prepared by: Dr Masri Ayob - TK2123

  40. 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. Prepared by: Dr Masri Ayob - TK2123

  41. The OR Operation Prepared by: Dr Masri Ayob - TK2123

  42. The OR Operation Prepared by: Dr Masri Ayob - TK2123

  43. Prepared by: Dr Masri Ayob - TK2123

  44. 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. Prepared by: Dr Masri Ayob - TK2123

  45. Illustrative Program: ORing Data from Two Input Ports Prepared by: Dr Masri Ayob - TK2123

  46. 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. Prepared by: Dr Masri Ayob - TK2123

  47. Illustrative Program: ORing Data from Two Input Ports Prepared by: Dr Masri Ayob - TK2123

  48. Exclusive OR (XOR) Prepared by: Dr Masri Ayob - TK2123

  49. ROTATE INSTRUCTIONS Prepared by: Dr Masri Ayob - TK2123

  50. SHIFT INSTRUCTIONS Prepared by: Dr Masri Ayob - TK2123

More Related