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.