1 / 59

Data Transfer Group

What we will learn in this session. Data transfer group instructions:Moving data around.. Data Transfer Group. Instructions to Move data around.Assign values to registers, memory.Manipulate data.. MOVE (Move Data). Moves data into registers, memory.Format:. MOVE.s<source>, <destination>. MOVE

chas
Télécharger la présentation

Data Transfer Group

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. Data Transfer Group ECE 511: Digital System & Microprocessor

    2. What we will learn in this session Data transfer group instructions: Moving data around.

    3. Data Transfer Group Instructions to Move data around. Assign values to registers, memory. Manipulate data.

    4. MOVE (Move Data) Moves data into registers, memory. Format:

    5. MOVE

    6. MOVE Example

    7. MOVE Example

    8. MOVEA (Move Address) Used to transfer data to address register. Only WL can be used. If W used, will be sign-extended to 32-bits. Doesnt effect CCR.

    9. MOVEA

    10. MOVEA Example

    11. MOVEA Example

    12. MOVEQ (Move Quick) Moves 8-bit immediate data to data register. Data sign-extended to 32-bits before transfer. Generates smaller machine code, executes faster.

    13. MOVEQ

    14. MOVEQ Example

    15. MOVEQ Example

    16. MOVEP (Move Peripheral Data) Created for data transfer with older 8-bit peripherals. If initial address is odd, then MOVEP only takes data from next odd locations in memory. Same for even addresses.

    17. MOVEP

    18. MOVE vs. MOVEP

    19. MOVEP Example: Even Address

    20. MOVEP Example: Odd Address

    21. MOVEP Example: Move Data to Register

    22. MOVEM (Move Multiple Registers) Two uses: Move many registers to memory at once. Move memory locations to registers. Useful to save many registers to stack. Can use WL: If W specified, is sign-extended. Writes A7-A0, then D7-D0. Takes back D0-D7, then A0-A7.

    23. MOVEM

    24. MOVEM Example Registers to Memory

    25. MOVEM Example Mem. to Registers

    26. Saving/Recovering All Registers To save all registers to stack: MOVEM.L D0-D7/A0-A7, -(A7) Put A7 first, then A6, A5, A4, Then put D7, D6, D5, D4, To get back all registers from stack: MOVEM.L (A7)+, D0-D7/A0-A7 Gets D0 first, then D1, D2, , D7. Then, get A0, A1, , A7.

    27. MOVEM Example Selected Registers to Memory

    28. All these are the same MOVEM.L D0/A5/A4/D3,-(A7) MOVEM.L D0/A4/A5/D3,-(A7) MOVEM.L D3/A5/A4/D0,-(A7) MOVEM.L A5/D0/A4/D3,-(A7)

    29. All these are the same MOVEM.L (A7)+,D0/A5/A4/D3 MOVEM.L (A7)+,D0/A4/A5/D3 MOVEM.L (A7)+,D3/A5/A4/D0 MOVEM.L (A7)+,A5/D0/A4/D3

    30. Exchange & Swap

    31. EXG (Exchange Registers) Exchanges contents of registers. Can only use L. Doesnt effect CCR.

    32. EXG

    33. EXG Example

    34. SWAP (Swap Register Halves) Swaps contents of upper and lower words in register.

    35. SWAP Example

    36. Load/Push Effective Address

    37. LEA (Load Effective Address) Loads effective address into address register.

    38. LEA Example Find out the effective address of 3(A0,D1.W) when A0 = $1000, and D1 = $005A.

    39. PEA (Push Effective Address) Same as LEA, but destination is software stack.

    40. PEA Example

    41. Link & Unlink Stack Pointer*

    42. LINK Allocates stack space for data. Local workspace. Temporary storage, released using UNLK. Doesnt effect CCR. Format: LNK An,<id>

    43. How LINK works An value stored into SP. SP stored into An. SP modified using immediate data value: Immediate data must be negative.

    44. How LINK Works Before Execution

    45. How LINK Works Store An into Stack

    46. How LINK Works Copy Stack Pointer to An

    47. How LINK Works Get New SP

    48. How LINK Works Using A0 to refer to stack space.

    49. UNLK Use to release stack space allocated by LINK. Does this by: Copies An back into SP. Copies original An value (in stack) back into An.

    50. How UNLK Works Initial Conditions

    51. How UNLK Works Copy An into SP

    52. How UNLK Works Copy stack value to A0

    53. How UNLK Works SP returned after pop

    54. How UNLK Works After Execution

    55. Conclusion

    56. Summary of Instructions

    57. Summary of Instructions

    58. Summary of Instructions

    59. The End Please read: Antonakos, pg. 63-69

More Related