Maricopa Community Colleges  ELT282   20022-20086 
Official Course Description: MCCCD Approval: 07/22/08
ELT282 20022-20086 LEC
LAB
4 Credit(s)
0 Credit(s)
3 Period(s)
3 Period(s)
Structured Assembly Language Programming
Structured programming using top-down approach. Defining task to be programmed, creating pseudocode solutions, translating the pseudocode to assembly language, debugging and documenting programs. Loops and selection structures; integers, arrays, and indexing; addressing modes; subprograms and macros; bit and logic operations; input/output.
Prerequisites: NET181 or permission of Department or Division.
Go to Competencies    Go to Outline
 
MCCCD Official Course Competencies:
 
ELT282   20022-20086 Structured Assembly Language Programming
1. Describe a digital computer system at the major block level. (I)
2. Explain the stored program concept of a digital computer. (I)
3. Explain the machine operation of fetch and execute cycles. (I)
4. Define and explain the use of pseudocode. (I)
5. Perform arithmetic operations using computer-related number systems. (I)
6. Describe the hardware architecture of a specific computer system. (II)
7. Write specified program(s) using integer instructions. (II)
8. Define the term "assembler directive" and give three examples. (II)
9. List and explain the operating system commands required to create, assemble, link, and execute assembly language programs. (II)
10. Describe the overall process of a two-pass assembler. (II)
11. Code assembly language programs using loops and selection structures. (III)
12. Use a debugger to debug assembly language programs. (IV)
13. Write assembly language programs using byte, word, and quadword data integers. (V)
14. Write assembly language programs using indexing to process data in arrays. (VI)
15. Write assembly language programs using various indirect addressing modes. (VII)
16. Write assembly language programs that include subprograms. (VIII)
17. Write assembly language programs that include macros. (IX)
18. Write assembly language programs using logical instructions to manipulate data. (X)
19. Write assembly language programs that transfer data to/from input/output devices. (XI)
Go to Description    Go to top of Competencies
 
MCCCD Official Course Outline:
 
ELT282   20022-20086 Structured Assembly Language Programming
    I. Introduction
        A. Overview of a computer
          1. Block diagram
          2. Machine language instructions
          3. Stored program concept
          4. Sample instruction set
          5. Machine operation
            a. Fetch cycle
            b. Execute cycles
          6. Decision-making
        B. Pseudocode
        C. Number systems
          1. Decimal
          2. Binary
          3. Hexadecimal
          4. Addition and subtraction
          5. Conversions between number systems
        D. Sample problem
          1. Problem statement
          2. Pseudocode solution
          3. Assembly language solution
      II. Computer architecture and assembler instruction set
          A. Introduction to computer architecture
          B. Integer instructions
            1. Symbols and storage allocation
            2. Machine instruction formats
            3. Data move instructions
            4. Arithmetic instructions
            5. Constant operands
            6. Input/output
          C. Assembler directives
          D. Program Creation, assembly, linking, and execution
          E. Assembler process
        III. Loops and selection structures
            A. Conditional/unconditional branch instructions
            B. Pretest loops
            C. Selection structures
            D. Counter-controlled loops
            E. Sample problem
              1. Problem statement
              2. Pseudocode solution
              3. Assembly language solution
          IV. Using a program debugger
              A. Definition of a debugger
              B. Features
                1. Breakpoints
                2. Tracepoints
                3. Watchpoints
              C. Running programs with a debugger
                1. Examine and deposit commands
                2. Getting into and out of a debugger
            V. Integers of different sizes
                A. Directives for nonlongword integers
                  1. Byte
                  2. Word
                  3. Quadword
                B. Move and arithmetic instructions for nonlongword integers
                C. Size conversion instructions
                D. Operand expressions
                E. Constants of nondecimal bases
                F. Direct assignment statements
                G. Overflow and carry indicators
                H. Sample problem
                  1. Problem statement
                  2. Pseudocode solution
                  3. Assembly language solution
              VI. Arrays and indexing
                  A. The need for arrays
                  B. Indexing
                    1. Concept
                    2. Syntax
                    3. Index instruction
                  C. Sample problem
                    1. Problem statement
                    2. Pseudocode solution
                    3. Assembly language solution
                VII. Indirect addressing
                    A. Concept of indirect addressing
                    B. Indirect addressing modes
                      1. Register-deferred
                      2. Autoincrement
                      3. Autodecrement
                      4. Displacement
                      5. Relative deferred
                    C. Sample problem
                      1. Problem statement
                      2. Pseudocode solution
                      3. Assembly language solution
                  VIII. Subprograms
                      A. Stack operations
                      B. Simple subprograms
                      C. Passing parameters with a general argument list
                      D. Passing parameters in the stack
                      E. Subprogram libraries
                      F. Sample problem
                        1. Problem statement
                        2. Pseudocode solution
                        3. Assembly language solution
                    IX. Macros
                        A. Macro concept
                        B. Parameterless macros
                        C. Passing parameters to macros
                        D. String operations in macros
                        E. Macro listing control
                        F. Sample problem
                          1. Problem statement
                          2. Pseudocode solution
                          3. Assembly language solution
                      X. Bit and logic operations
                          A. Bit string data
                          B. Bit string operations
                          C. Shift instructions
                          D. Logic operations
                            1. OR
                            2. Exclusive OR
                            3. AND
                            4. Complement
                          E. Sample problem
                            1. Problem statement
                            2. Pseudocode solution
                            3. Assembly language solution
                        XI. Input/output
                            A. Overview of a record management system
                            B. Control blocks
                              1. Allocation of space for control blocks
                              2. File level operations
                              3. Record level operations
                            C. Terminal input/output
                            D. Sample problem
                              1. Problem statement
                              2. Pseudocode solution
                              3. Assembly language solution
                        Go to Description    Go to top of Competencies    Go to top of Outline