0% found this document useful (0 votes)
48 views4 pages

BIC MPAL Group Lab Project

The document outlines a group lab project for a microprocessor and assembly language programming course at Bridge International College. Each of the eight groups must develop an assembly language program using EMU8086, incorporating various concepts such as register operations, memory access, and conditional control instructions. The project will be evaluated based on criteria including program functionality, use of instructions, code clarity, and presentation, with a total of 20 marks available.

Uploaded by

Solomon Asfaw
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
48 views4 pages

BIC MPAL Group Lab Project

The document outlines a group lab project for a microprocessor and assembly language programming course at Bridge International College. Each of the eight groups must develop an assembly language program using EMU8086, incorporating various concepts such as register operations, memory access, and conditional control instructions. The project will be evaluated based on criteria including program functionality, use of instructions, code clarity, and presentation, with a total of 20 marks available.

Uploaded by

Solomon Asfaw
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

Microprocessor and Assembly Language

Programming – Group Lab Project


Course: CoSc 3024​
College: Bridge International College​
Week: 6​
Duration: 60 minutes​
Total Marks: 20

Project Overview
Each group must develop, test, and present an assembly language program using
EMU8086.​
The project must incorporate multiple concepts covered in Weeks 1 to 4, including:

●​ Register operations​

●​ Memory access​

●​ Addressing modes​

●​ Stack and flag manipulation​

●​ Loop and conditional control instructions

Group Instructions
●​ There are 8 groups, each consisting of 5 members.​

●​ One team leader must demonstrate and present the code.​

●​ Other members will answer questions about the logic and flow.​

●​ The project must be completed within the lab session and demonstrated live.​

Evaluation Criteria (Out of 20 Marks)


Criteria Marks

Program compiles and runs as expected 8

Correct use of at least 4 6


instructions/concepts

Code clarity and inline comments 2


Presentation and explanation 4

Total 20

Group Project Tasks (One per Group)


Group 1 – Multi-Stage Arithmetic and Comparison
●​ Define two variables in memory: A = 50, B = 20​

●​ Load both into registers​

●​ Subtract B from A, multiply the result by 2​

●​ If the result is greater than 50, print "Result is High", otherwise print "Result is Low"​

●​ Use at least one conditional jump​

Group 2 – Memory Interaction and Stack Usage


●​ Store two values in memory: X = 10h, Y = 30h​

●​ Load them into AX and BX​

●​ Push both onto the stack​

●​ Pop the values into CX and DX​

●​ If DX is greater than CX, print "Stack OK", else print "Stack Error"​

Group 3 – Loop-Based Arithmetic Sequence


●​ Initialize CX = 4​

●​ Create a loop that adds 5 to AX every iteration​

●​ After 4 iterations, AX should hold the sum​

●​ Display the final value of AX​

Group 4 – Flag-Based Decision System


●​ Perform a subtraction operation that sets the Zero Flag​

●​ Use JZ or JNZ to print different messages based on whether the result is zero or not​

●​ Demonstrate use of at least one arithmetic and one logical instruction​

Group 5 – Addressing Modes in Action


●​ Use all four addressing modes: Immediate, Register, Direct, and Register Indirect​

●​ Define a variable in memory​

●​ Access and modify it using each addressing mode​

●​ Show changes in debugger​

Group 6 – Conditional Message Printer


●​ Define two string messages: "Welcome" and "Error"​

●​ Use a register to simulate a condition​

●​ If value in register is even, print "Welcome", otherwise print "Error"​

●​ Use conditional jump and integer test​

Group 7 – Register Manipulation and Result Copying


●​ Load values into AX and BX​

●​ Perform addition, subtraction, and negation on results​

●​ Move final result into CX and DX​

●​ Print the values of all registers​

Group 8 – Stack and Arithmetic Combined Task


●​ Load AX = 12h, BX = 14h​

●​ Push AX and BX​


●​ Pop into CX and DX​

●​ Add CX and DX, compare the result with a memory-stored value (e.g., 30h)​

●​ If equal, print "Match", else "No Match"

You might also like