Microprocessor Architecture Syllabus
Microprocessor, microcomputers, and Assembly Language: Microprocessor, Microprocessor Instruction Set and Computer Languages, From Large Computers to Single-Chip Microcontrollers, Applications.
Microprocessor Architecture and Microcomputer System: Microprocessor Architecture and its operation’s, Memory, I/O Devices, Microcomputer System, Logic Devices and Interfacing, Microprocessor-Based System Application.
8085 Microprocessor Architecture and Memory Interface: Introduction, 8085 Microprocessor unit, 8085-Based Microcomputer, Memory Interfacing, Interfacing the 8155 Memory Segment, Illustrative Example: Designing Memory for the MCTS Project, Testing and Troubleshooting Memory Interfacing Circuit, 8085-Based Single-Board microcomputer
Interfacing of I/O Devices: Basic Interfacing concepts, Interfacing Output Displays, Interfacing Input Devices, Memory Mapped I/O, Testing and Troubleshooting I/O Interfacing Circuits
Introduction to 8085 Assembly Language Programming: The 8085 Programming Model, Instruction Classification, Instruction, Data and Storage, Writing assembling and Execution of a simple program, Overview of 8085 Instruction Set, Writing and Assembling Program
Introduction to 8085 Instructions: Data Transfer Operations, Arithmetic Operations, Logic Operation, Branch Operation, Writing Assembly Languages Programs, Debugging a Program.
Programming Techniques With Additional Instructions: Programming Techniques: Looping, Counting and Indexing, Additional Data Transfer and 16-Bit Arithmetic Instructions, Arithmetic Instruction Related to Memory, Logic Operations: Rotate, Logics Operations: Compare, Dynamic Debugging.
Counters and Time Delays: Counters and Time Delays, Illustrative Program: Hexadecimal Counter, Illustrative Program: zero-to-nine (Modulo Ten) Counter, Generating Pulse Waveforms, Debugging Counter and Time-Delay Programs.
Stacks and Sub-Routines: Stack, Subroutine, Restart, Conditional Call, Return Instructions, Advanced Subroutine concepts.
Code Conversion, BCD Arithmetic, and 16-Bit Data Operations: BCD-to-Binary Conversion, Binary-to-BCD Conversion, BCD-toSeven-Segment-LED Code Conversion, Binary-to-ASCII and ASCIIto-Binary Code Conversion, BCD Addition, BCD Subtraction, Introduction To Advanced Instructions and Applications, Multiplication, Subtraction With Carry.
Software Development System and Assemblers: Microprocessors-Based Software Development system, Operating System and Programming Tools, Assemblers and Cross-Assemblers, Writing Program Using Cross Assemblers.
Interrupts: The 8085 Interrupt, 8085 Vectored Interrupts, Restart as S/W Instructions, Additional I/O Concepts and processes.
The Pentium and Pentium Pro microprocessors: Introduction, Special Pentium registers, Memory management, Pentium instructions, Pentium Pro microprocessor, Special Pentium Pro features.
Core 2 and later Microprocessors: Introduction, Pentium II software changes, Pentium IV and Core 2, i3, i5 and i7.
SUN SPARC Microprocessor: Architecture, Register file, data types and instruction format
Microprocessor Architecture Practicals
|1||Perform the following Operations related to memory locations.|
|a||Store the data byte 32H into memory location 4000H.|
|b||Exchange the contents of memory locations 2000H and 4000H|
|2||Simple assembly language programs|
|a||Subtract the contents of memory location 4001H from the memory location 2000H and place the result in memory location 4002H|
|b||Subtract two 8-bit numbers|
|c||Add the 16-bit number in memory locations 4000H and 4001H to the 16-bit number in memory locations 4002H and 4003H. The most significant eight bits of the two numbers to be added are in memory locations 4001H and 4003H. Store the result in memory locations 4004H and 4005H with the most significant byte in memory location 4005H.|
|d||Add the contents of memory locations 40001H and 4001H and place the result in the memory locations 4002Hand 4003H.|
|e||Subtract the 16-bit number in memory locations 4002H and 4003H from the 16-bit number in memory locations 4000H and 4001H. The most significant eight bits of the two numbers are in memory locations 4001H and 4003H. Store the result in memory locations 4004H and 4005H with the most significant byte in memory location 4005H.|
|f||Find the l's complement of the number stored at memory location 4400H and store the complemented number at memory location 4300H.|
|g||Find the 2's complement of the number stored at memory location 4200H and store the complemented number at memory location 4300H.|
|3||Packing and unpacking operations.|
|a||Pack the two unpacked BCD numbers stored in memory locations 4200H and 4201H and store result in memory location 4300H. Assume the least significant digit is stored at 4200H.|
|b||Two digit BCD number is stored in memory location 4200H. Unpack the BCD number and store the two digits in memory locations 4300H and 4301H such that memory location 4300H will have lower BCD digit.|
|a||Write a program to shift an eight bit data four bits right. Assume that data is in register C.|
|b||Program to shift a 16-bit data 1 bit left. Assume data is in the HL register pair|
|c||Write a set of instructions to alter the contents of flag register in 8085.|
|d||. Write a program to count number of l's in the contents of D register and store the count in the B register|
|5||Multiple memory locations.|
|a||Calculate the sum of series of numbers. The length of the series is in memory location 4200H and the series begins from memory location 4201H. a. Consider the sum to be 8 bit number. So, ignore carries. Store the sum at memory location 4300H. b. Consider the sum to be 16 bit number. Store the sum at memory locations 4300H and 4301H|
|b||. Multiply two 8-bit numbers stored in memory locations 2200H and 2201H by repetitive addition and store the result in memory locations 2300H and 2301H.|
|c||Divide 16 bit number stored in memory locations 2200H and 2201H by the 8 bit number stored at memory location 2202H. Store the quotient in memory locations 2300H and 2301H and remainder in memory locations 2302H and 2303H.|
|d||Find the number of negative elements (most significant bit 1) in a block of data. The length of the block is in memory location 2200H and the block itself begins in memory location 2201H. Store the number of negative elements in memory location 2300H|
|e||Find the largest number in a block of data. The length of the block is in memory location 2200H and the block itself starts from memory location 2201H. Store the maximum number in memory location 2300H. Assume that the numbers in the block are all 8 bit unsigned binary numbers.|
|6||Calculations with respect to memory locations|
|a||Write a program to sort given 10 numbers from memory location 2200H in the ascending order|
|b||Calculate the sum of series of even numbers from the list of numbers. The length of the list is in memory location 2200H and the series itself begins from memory location 2201H. Assume the sum to be 8 bit number so you can ignore carries and store the sum at memory location 2Sample problem|
|c||Calculate the sum of series of odd numbers from the list of numbers. The length of the list is in memory location 2200H and the series itself begins from memory location 2201H. Assume the sum to be 16-bit. Store the sum at memory locations 2300H and 2301H.|
|d||Find the square of the given numbers from memory location 6100H and store the result from memory location 7000H|
|e||Search the given byte in the list of 50 numbers stored in the consecutive memory locations and store the address of memory location in the memory locations 2200H and 2201H. Assume byte is in the C register and starting address of the list is 2000H. If byte is not found store 00 at 2200H and 2201H|
|f||Two decimal numbers six digits each, are stored in BCD package form. Each number occupies a sequence of byte in the memory. The starting address of first number is 6000H Write an assembly language program that adds these two numbers and stores the sum in the same format starting from memory location 6200H|
|g||Add 2 arrays having ten 8-bit numbers each and generate a third array of result. It is necessary to add the first element of array 1 with the first element of array-2 and so on. The starting addresses of array l, array2 and array3 are 2200H, 2300H and 2400H, respectively|
|7||Assembly programs on memory locations.|
|a||Write an assembly language program to separate even numbers from the given list of 50 numbers and store them in the another list starting from 2300H. Assume starting address of 50 number list is 2200H|
|b||Write assembly language program with proper comments for the following: A block of data consisting of 256 bytes is stored in memory starting at 3000H. This block is to be shifted (relocated) in memory from 3050H onwards. Do not shift the block or part of the block anywhere else in the memory.|
|c||Add even parity to a string of 7-bit ASCII characters. The length of the string is in memory location 2040H and the string itself begins in memory location 2041H. Place even parity in the most significant bit of each character.|
|d||A list of 50 numbers is stored in memory, starting at 6000H. Find number of negative, zero and positive numbers from this list and store these results in memory locations 7000H, 7001H, and 7002H respectively|
|e||Write an assembly language program to generate fibonacci number.|
|f||Program to calculate the factorial of a number between 0 to 8|
|8||String operations in assembly programs|
|a||Write an 8085 assembly language program to insert a string of four characters from the tenth location in the given array of 50 characters|
|b||Write an 8085 assembly language program to delete a string of 4 characters from the tenth location in the given array of 50 characters.|
|c||Multiply the 8-bit unsigned number in memory location 2200H by the 8-bit unsigned number in memory location 2201H. Store the 8 least significant bits of the result in memory location 2300H and the 8 most significant bits in memory location 2301H.|
|d||Divide the 16-bit unsigned number in memory locations 2200H and 2201H (most significant bits in 2201H) by the B-bit unsigned number in memory location 2300H store the quotient in memory location 2400H and remainder in 2401H|
|e||DAA instruction is not present. Write a sub routine which will perform the same task as DAA.|
|9||Calculations on memory locations.|
|a||To test RAM by writing '1' and reading it back and later writing '0' (zero) and reading it back. RAM addresses to be checked are 40FFH to 40FFH. In case of any error, it is indicated by writing 01H at port 10|
|b||Arrange an array of 8 bit unsigned no in descending order|
|c||Transfer ten bytes of data from one memory to another memory block. Source memory block starts from memory location 2200H where as destination memory block starts from memory location 2300H|
|d||Write a program to find the Square Root of an 8 bit binary number. The binary number is stored in memory location 4200H and store the square root in 4201H.|
|e||Write a simple program to Split a HEX data into two nibbles and store it in memory|
|10||. Operations on BCD numbers|
|a||Add two 4 digit BCD numbers in HL and DE register pairs and store result in memory locations, 2300H and 2301H. Ignore carry after 16 bit.|
|b||. Subtract the BCD number stored in E register from the number stored in the D register|
|c||Write an assembly language program to multiply 2 BCD numbers|
Microprocessor Architecture Reference Books
|Title||Microprocessors Architecture, Programming and Applications with the 8085|
|Title||Computer System Architecture|
|Authors||M. Morris Mano|
|Title||Structured Computer Organization|
|Authors||Andrew C. Tanenbaum|
|Title||8080A/8085 Assembly Language Programming|
|Authors||Lance A. Leventhel|