Mar 21, 2023  
2022-2023 Catalog 
2022-2023 Catalog

CS 221 - Machine Organization and Assembly Language Programming

Credit Hours: 4

A study of computer organization and assembly language programming. Topics include basic machine architecture and design, digital logic circuits, digital components, central processing unit, machine representation of instructions and data, addressing techniques, memory organization and execution of instructions at machine level. Assembly language programming topics include: syntax, instruction types, control structures, data types, subroutines, input/output, macros, hybrid-programs and the programming language translation process. Several programming projects will be required of each student.

Course Outcomes
Upon completion of this course, the student will be able to:

  • describe the general organization and main components of a computer system – the CPU, memory, peripherals, and bus;
  • describe and explain the Fetch-Execute cycle of a computer;
  • describe and explain the basic elements and circuit types at the digital logic level;
  • describe and explain the different devices, memory components, memory types, chips, buses, as well as circuit synthesis;
  • describe, explain, and use register transfer language and notation;
  • compare and contrast different addressing modes;
  • translate instructions into the binary form that is used for the internal representation of instructions in memory;
  • translate various types of data values into the binary form that is used for the internal representation in memory;
  • explain the concept of a subroutine – how control is transferred and how the arguments are passed;
  • explain and describe the concept of virtual memory and the basic schemes involved in memory management;
  • describe and explain the concept of an assembler and linker, as well as the assembly and link processes;
  • assemble, link, and execute programs using assembly language for the Intel-86 family of microprocessors;
  • design, write, execute, and debug assembly language programs;
  • design, write, execute, and debug programs using subroutines;
  • design, write, execute, and debug a hybrid program that has modules written in assembly language and in a high level language such as Modula, Pascal, or C;
  • use the debugger to examine the actual internal representation of data and program instructions, as well as the runtime stack as a program executes;
  • explain the concept of a programming macro, compare it with a subroutine, and use it in a program;
  • explain the concept of conditional assembly;
  • describe methods of coding data for transmission;
  • write careful and correct software documentation including user and programmer manuals which explain, to a user and programmer respectively, what the program does and how it does it; and
  • research a topic related to the topics in this course.
  • technology objectives:
    • Use computer software to create source files, assemble and/or compile files, and link files to produce an executable program;
    • Use the computer network to store and retrieve files; and
    • Send files in text form and binary form across the internet.

Prerequisites: CS 132
F (N)