CUCEM301 Assignment 3
CUCEM301 Assignment 3
Instructions:
1. Submit typed document on or before 9th June 2023 before the presentations, document
must have at least 5 references
2. Each group will present their questions and solutions on the 9th of June 2023
3. Every program should be implemented using Assembly language
4. Make sure your program is readable
5. Each program should be accompanied by a flowchart
Question Group
1. Describe the following types of I/O strategies
a) Polled I/O
b) Interrupt Driven I/O
c) DMA I/O
2. Use a program that shows the functions of a stepper motor
3. Explain how the 8051 microcontroller can address external memory if there is
not enough internal RAM and/or ROM.
4. Write a program in 8086 assembly language that compares two strings. The
program will output 1 if string 1 < string 2; 0 if both the stings are equal; 1 if
string 1> string 2.
5. Discuss the five different ways to interrupt an 8051?
6. Write a program that gives display ”IRT2 is OK” if a hardware signal appears
on IRQ2 pin and “IRT3 is OK” if it appears on IRQ3 pin of PC IO channel.
7. Explain the 8086 Interrupt cycle
8. Write a program that shows the difference between a BIOS function call and a
DOS function call
9. Describe the concept of even bank and odd bank in 8086 memory address
space.
10. Write a program to change a sequence of sixteen 2-byte numbers from
ascending to descending order. The numbers are stored in data segment. Store
the new series at addresses starting from 6000H. Use the LIFO property of the
stack.
11. Explain Pipeline implementation in 8086/8088
12. Write a program to create a macro sum that takes two numbers as arguments
and does their summation. Use this macro twice in your main program.
13. The 8051 family has four register banks where each bank consists of 8 registers
referred to as R0 to R7. What is the advantage of having four register banks as
opposed to 32 registers?
14. Write a program to create a procedure sum that takes two numbers as
arguments, does their summation and returns the result. Call this procedure
twice in your main program. Make sure to pass arguments via stack.
15. Describe the use of 8086 assemblers, macros and procedures.
16. Given the data structure:
NAMES_HERE SEGMENT
OLD_HOME DB ‘CHARLIE T. TUNA’
NEW_HOME DB 15 DUP (0)
NAMES_HERE ENDS
Use the string instructions to help you write a program which moves the string
‘Charlie T. Tuna’ up four addresses in memory.
17. Describe 8086 stack structure and the registers associated with it.
18. Write a program to create a procedure sum that takes two numbers as
arguments, does their summation and returns the result. Call this procedure
twice in your main program. Make sure to pass arguments via stack.
19. Describe and explain the 8086 pin diagram
20. Write a program to find out the number of positive numbers and negative
numbers from a given series of signed numbers
21. Describe and explain the 8051 pin diagram
22. Write a program to move a string of words from offset 1000h to offset 6000h.
The Length of the string is 0Ch.