"

Assembly Language Programming – I

In this module, students will delve into the fundamentals of assembly language programming, focusing on the 8085 microprocessor. The module is structured to provide both theoretical knowledge and practical experience through a series of lectures and lab assignments. By the end of this module, students will have a solid understanding of the 8085 instruction set and the ability to implement basic assembly programs.

8085 Instruction Set: Part 1

The first part of the instruction set will cover the basic categories of instructions used in the 8085 microprocessor. Students will learn about:

  • Data Transfer Instructions: Instructions that move data between registers, memory, and I/O ports.
  • Arithmetic Instructions: Instructions that perform arithmetic operations like addition, subtraction, increment, and decrement.
  • Logical Instructions: Instructions that perform bitwise logical operations such as AND, OR, XOR, and complement.
  • Branch Instructions: Instructions that alter the flow of execution, including jumps, calls, returns, and restarts.
  • Stack, I/O, and Machine Control Instructions: Instructions that manage the stack, perform I/O operations, and control the microprocessor’s operation.

8085 Instruction Set: Part 2

The second part of the instruction set will delve deeper into the advanced instructions and their applications. Students will explore:

  • Advanced Data Manipulation: Instructions for more complex data handling and manipulation.
  • Conditional and Unconditional Branching: Detailed use of branching instructions for creating loops and conditional execution.
  • Interrupt Handling: Instructions and techniques for managing interrupts and implementing interrupt service routines.
  • Timing and Delay Instructions: Instructions used for creating precise timing delays, which are essential for various applications.

Lab #4: Code for DELAY – Use the Delay Code with Blinking LED Program

In this lab assignment, students will write an assembly program to implement a delay routine and use it to blink an LED. The lab will cover:

  • Writing Delay Routines: Techniques for creating accurate delay loops using the 8085 instruction set.
  • LED Control: Using I/O ports to control an LED, turning it on and off at regular intervals.
  • Combining Delay and LED Control: Integrating the delay routine with LED control to create a blinking effect.

Objectives:

  • Understand how to create delay loops in assembly language.
  • Learn to control I/O ports to manipulate external hardware.
  • Gain practical experience in writing and debugging assembly programs.

Lab #5: Blink Two LEDs at a Time

In this lab assignment, students will extend their knowledge by writing an assembly program to blink two LEDs alternately. The lab will cover:

  • Controlling Multiple LEDs: Using multiple I/O ports to control more than one LED.
  • Synchronized Blinking: Creating a program that alternates the blinking of two LEDs.
  • Optimizing Delay Routines: Refining delay routines to ensure synchronized operation.

Objectives:

  • Learn to control multiple I/O ports simultaneously.
  • Understand the importance of synchronized timing in embedded systems.
  • Develop skills in writing more complex assembly programs.

License

Icon for the Creative Commons Attribution 4.0 International License

Introduction to Microcontrollers Copyright © 2024 by Lake Washington Institute of Technology is licensed under a Creative Commons Attribution 4.0 International License, except where otherwise noted.