Topic outline

  • WELCOME LETTER

    Dear Students

    Welcome to the Microprocessor, Embedded Systems and IoT courses. Microprocessors and assembly language have been the most used methods of incorporating intelligence into automated devices. It is therefore necessary to develop a good understanding of their operation and how they can be used as building blocks for automated systems and control applications. This course explores the inner workings of a microprocessor from the programmer’s perspective and several laboratory exercises will be based on microprocessor utilizing the assembly language.





    Instructor

    MD. Zabirul Islam

    Lecturer

    Department of CSE

    Daffodil International University



    Office: Room: 112, Daffodil Tower 5

    Email: zabirul.cse@diu.edu.bd

    Phone: +8801521307471

        

    Course Rationals

    Microprocessors and assembly language have been the most used methods of incorporating intelligence into automated devices. It is therefore necessary to develop a good understanding of their operation and how they can be used as building blocks for automated systems and control applications. This course explores the inner workings of a microprocessor from the programmer’s perspective and several laboratory exercises will be based on microprocessors utilizing the assembly language.

    Course Objectives

    O1
    To learn about the internal architecture and addressing modes of Intel 8086 Microprocessor and analyze the comparison between several microprocessors of the same thread.
    O2
    To apply the arithmetic and logical operations using assembly language-based instructions for Intel 8086 microprocessor.
    O3
    To apply branching and looping structures for solving computational problems using assembly instructions in simulation-based software. 
    O4
    To learn and analyze the theoretical and practical implications of memory access in microprocessors.

    Course Outcomes

    CO1
    Demonstrate the internal architecture and its general operations of microprocessors and describe the difference between the 8086 and advanced microprocessors.
    CO2
    Classify and articulate the addressing modes and memory access methods within the microprocessor. 
    CO3
    Apply the instruction set of the Intel 8086 microprocessor and distinguish the use of different arithmetic, logical, shifting, rotating instructions to apply in assembly language programming.
    CO4
    Design and analyze assembly programming code to use the branching structures, looping structures flags, stacks, procedures, macros, and interrupts. 

    TEXT/REFERENCE BOOKS

    01
    Assembly Language Programming and Organization of the IBM PC.
    by Njeru Mwendi Edwin
    02
    Microprocessor and Interfacing
    by  B. V. Hall

    Assessment Plan

    Final Exam
    40
    Midterm Exam
    25
    Class Tests
    15
    Assignment
    05
    Presentation
    08
    Attendance
    07
    Total
    100
  • Week 1


      Introduction to Microprocessor



    Topics of Discussion:

        • Discussion on Course Rationales, Objectives, Outcomes, Syllabus, Text Books, etc.
        • History and evolution of microprocessor, The components of a Microcomputer System
        • Instruction Execution, Programming Languages, Assembly Language Programs, Number Systems

    Expected Learning Outcomes:

        • Recognize the importance of the course and course outcomes.
        • Identify various components of microprocessor and their working behavior in microprocessor 
        • Understand the significance of using assembly language to utilize a microprocessor.

    Resources of Learning:

    Fair child semiconductors (founded in 1957) invented the first Integrated Circuit in 1959 that marked the microprocessor history. In 1968, Gordan Moore, Robert Noyce and Andrew Grove resigned from the Fair child semiconductors and started their own company: Integrated Electronics (Intel). In 1971, the first microprocessor Intel 4004 was invented. A microprocessor is also known as a central processing unit in which numbers of peripherals’ are fabricated on a single chip. It has ALU (arithmetic and logic unit), a control unit, registers, bus systems and a clock to perform computational tasks ...



              


    •    Lab Class 1


                    


      • Week 2


        Internal Architecture of 8086



        Topics of Discussion:

            • Discussion on Internal Architecture of the 8086/8088 Microprocessors, Data Registers, Segment Registers
            • Discussion on Physical Memory Address and Logical Address Calculations, Pointer and Index Registers, Instruction Pointer, Flag Register.

        Expected Learning Outcomes:

            • Understand and differentiate between the internal architecture of 8086 and other advanced microprocessors
            • Identify and understand various registers of 8086 microprocessor and their functionality.
            • Understand and apply different addressing modes of the 8086 microprocessors.

        Resources of Learning:

         8086 has two blocks BIU and EU. The BIU performs all bus operations such as instruction fetching, reading and writing operands for memory, and calculating the addresses of the memory operands. The instruction bytes are transferred to the instruction queue..



                  


        • Week 3


            Introduction to Assembly Language Programming



          Topics of Discussion:

              • Introduction to Assembly Language Syntax, Program Data, Variables, Named Constants
              • Discussion on few Basic Assembly Language Instructions, Translation of High-Level Language to Assembly Language
              • Introduction to basic Program Structure and Segments, Input and Output Instructions, INT 21h Instruction Details
              • Creating and Running a Program, Displaying a String, Case Conversion Program

          Expected Learning Outcomes:

              • Understand the Assembly Language Syntax, Program Data, Variables, Named Constants
              • Identify and apply different assembly language instructions for arithmetic operations.
              • Understand  the basic Program Structure and Segments, Input and Output Instructions, INT 21h Instruction Details
              • Analyze programming problems and apply assembly instructions to solve the problems

          Resources of Learning:

           Assembly programming is low-level programming using some basic syntax to represent machine code for a specific CPU. An assembler is used to translate the assembly code into the machine code for the target computer.



                    


        • Week 4


            Flag Registers and Flow Control Instructions



          Topics of Discussion:

              • The status of the 8086 microprocessor using the flag registers and how instructions are affected by the flags.
              • Basics of flow control instructions in 8086 such as unconditional jump, conditional jumps, compare instructions.

          Expected Learning Outcomes:

              • Understand the status of the 8086 microprocessor using the flag registers and how instructions are affected by the flags.
              • Analyze programming problems and apply assembly instructions to solve the problems related to flow control instructions.

          Resources of Learning:

          This register is also called the status register. It is a 16-bit register that contains six status flags and three control flags. So, only nine bits of the 16-bit register are defined and the remaining seven bits are undefined. Normally these status flag bits indicate the status of the ALU after the arithmetic or logical operations. Each bit of the status register is a flip/flop. The Flag register contains Carry flag, Parity flag, Auxiliary flag Zero flag, Sign flag  , Trap flag, Interrupt flag, Direction flag and overflow flag as shown in the diagram. The CF, PF,AF,ZF,SF,OF are the status flags and the TF, IF and CF are the control flags.



                    


        • Week 5


            Problem Solving and Pin Configuration



          Topics of Discussion:

              • Flow controlling using high-level structures such as branching structures
              • 8086 Microprocessor Pin Configuration, Direct Memory Access, Addressing Banking

          Expected Learning Outcomes:

              • Analyze programming problems and apply assembly instructions to solve the problems related to branching instructions.
              • Identify various components of microprocessor and their working behavior in microprocessor 
              • Understanding the use of different pins in 8086 microprocessor, direct memory access, and even-odd address banking mechanisms.

          Resources of Learning:

          8086 was the first 16-bit microprocessor available in 40-pin DIP (Dual Inline Package) chip. Let us now discuss in detail the pin configuration of a 8086 Microprocessor.


                                                                                                     


        • Week 6


            Problem Solving using Flow Control Instructions



          Topics of Discussion:

              • Flow controlling using high-level flow control structures such as looping structures
              • Programming Exercises on flow control instructions to solve real-life problems.

          Expected Learning Outcomes:

              • Analyze programming problems and apply assembly instructions to solve the problems related to branching and looping instructions
              • Analyze and apply programming knowledge to solve real-life problems. 

          Resources of Learning:

          The 8086 microprocessor supports 8 types of instructions −Data Transfer Instructions, Arithmetic Instructions,Bit Manipulation Instructions,String Instructions, Program Execution Transfer Instructions (Branch & Loop Instructions), Processor Control Instructions, Iteration Control Instructions, Interrupt Instruction

                                                                                                  

        • Week 8


                The Branching , Looping Stack and Procedure


          Topics of Discussion:

              • The Stack and Stack operations in Microprocessor 8086, Applications of Stack operation in problem-solving
              • Procedures, Types of procedures, Design procedures for a specific problem

          Expected Learning Outcomes:

              • Identify and apply stack operations to solve practical problems
              • Analyze programming problems and apply assembly instructions to create procedures to enhance the structure of the program in extent 

          Resources of Learning:

          As we know that any machine (system) works on machine language, which consists of binary numbers. In the 8086 microprocessor, we have 16-bit registers to handle our data. Sometimes, the need to perform some necessary shift and rotate operations on our data may occur according to the given condition and requirement. So, for that purpose, we have various Shift and Rotate instructions present in the 8086 microprocessor.

                           

        • Week 7


            Welcome to Midterm Exam



             


          • Midterm Question CSE231 Assignment
            Restricted Not available unless: You belong to L
        • Lab Performance


            Lab to Task [as a Video Presentation]



             


          • Lab Task 1 Assignment
            Restricted Not available unless: You belong to L
          • Lab Task 2 Assignment
            Restricted Not available unless: You belong to L
          • Lab Task 3 Assignment
            Restricted Not available unless: You belong to L
          • Lab Task 4 Assignment
            Restricted Not available unless: You belong to L
          • Lab Task 1 Assignment
            Restricted Not available unless: You belong to M
          • Lab Task 2 Assignment
            Restricted Not available unless: You belong to M
          • Lab Task 3 Assignment
            Restricted Not available unless: You belong to M
          • Submit your Lab Report here Assignment
            Restricted Not available unless: You belong to M
          • Submit your Project here Assignment
            Restricted Not available unless: You belong to M
          • Submit your Final Exam Code & Video link here Assignment
            Restricted Not available unless: You belong to M
          • Submit your Project here Assignment
            Restricted Not available unless: You belong to L
          • Submit your Final Exam Code & Video link here Assignment
            Restricted Not available unless: You belong to L
        • Week 8


            Logic, Shift and Rotate Instructions

                                                   [Physical class]



          Topics of Discussion:

              • Revision on flag registers and their effects on arithmetic and logic operations
              • Logical, Shift and Rotation Instructions & their operation in problem-solving

          Expected Learning Outcomes:

              • Identify and apply flag registers data to utilize the arithmetic and logic instructions
              • Analyze programming problems and apply assembly instructions to solve the problems using logic, shift and rotate instructions

          Resources of Learning:

          As we know that any machine (system) works on machine language, which consists of binary numbers. In the 8086 microprocessor, we have 16-bit registers to handle our data. Sometimes, the need to perform some necessary shift and rotate operations on our data may occur according to the given condition and requirement. So, for that purpose, we have various Shift and Rotate instructions present in the 8086 microprocessor.

                     

          • Week 9


              String Operations in Assembly Language [Physical class]



            Topics of Discussion:

                • Directional Flag and use of it in String operations, Moving and Storing Strings in Microprocessor 8086
                • Copy,Load and Compare Strings and its operations

            Expected Learning Outcomes:

                • Identify and apply the directional flag to solve the string related task 
                • Analyze programming problems and apply assembly instructions to solve problems related to copying, load, compare, move, and store string operations. 

            Resources of Learning:

            We have already used variable length strings in our previous examples. The variable length strings can have as many characters as required. Generally, we specify the length of the string by either of the two ways − Explicitly storing string length, Using a sentinel character


                      


            • Week 10


                Interrupt Vector, Instructions and Control [Physical class]



              Topics of Discussion:

                  • Introduction to Interrupts, Interrupt Vectors and Instructions
                  • Interrupt Control, Interrupt in the Personal Computer.

              Expected Learning Outcomes:

                  • Identify and apply the interrupt instruction, interrupt vectors and their use
                  • Identify and apply the knowledge of interrupt control mechanism to control personal computers

              Resources of Learning:

              Interrupt is the method of creating a temporary halt during program execution and allows peripheral devices to access the microprocessor. The microprocessor responds to that interrupt with an ISR (Interrupt Service Routine), which is a short program to instruct the microprocessor on how to handle the interrupt . . .


                        


              • Week 11


                  Applying Assembly Language Instructions [Physical Class]



                Topics of Discussion:

                    • Introduction to basic Program Structure and Segments, Input and Output Instructions, INT 21h Instruction Details
                    • Creating and Running a Program, Displaying a String, Case Conversion Program.

                Expected Learning Outcomes:

                    • Understand the basic Program Structure and Segments, Input and Output Instructions, INT 21h Instruction Details
                    • Analyze programming problems and apply assembly instructions to solve the problems

                Resources of Learning:

                Assembly level programming is very important to low-level embedded system design is used to access the processor instructions to manipulate hardware.  It is a most primitive machine level language is used to make efficient code that consumes less number of clock cycles and takes less memory as compared to the high-level programming language ...


                         


                • Week 12


                    Welcome to Assignment & Presentation



                     


                  • Submit your assignment here
                    Restricted Not available unless: You belong to L
                  • Submit your presentation link here Assignment
                    Restricted Not available unless: You belong to L
                • Week 13


                    Welcome to Class Test



                   

                  • Quiz 1 Assignment
                    Restricted Not available unless: You belong to L
                • Topic 31

                  • Topic 32

                    • Topic 33

                      • Topic 34

                        • Topic 35

                          • Topic 36

                            • Topic 37