CSC-3410 Assembly Language and Architecture

Spring 2024
Instructor: Roger Shore Class Schedule:
Office Location: Couch Hall 153 MWF 9:15AM-10:25AM CSC-2342
Telephone: 841-9031 TTh 7:50-9:30AM CSC-4210
Office Hours: MWF 1:00-3:00PM TTh 9:45-11:25AM CSC-4820
Th 1:30-2:30PM
E-Mail: rshore@linus.highpoint.edu Web site: linus.highpoint.edu/~rshore

Course Description:An introduction to instruction set architecture, microarchitecture, and system architecture. Topics include basic computer organization, digital logic circuits, design of the central processor and memory, addressing techniques, data representation, and fundamental programming techniques in assembly and machine language as it relates to operating systems and high level languages.

Prerequisites: CSC-1720

Course time expectation/week: This is a 4 four hour course. According to SACs, our accrediting body, we are required to meet 200 minutes per week for 15 weeks. In addition, you are expected to work on projects and assignments for at least 8 hours (480 minutes) outside of class per week. A portion of the 8 hours should be spent in the computer lab each week in relation to this course.

Course Materials: some are provided on course web site or hard copies can be found at lulu.com

  1. Plantz, Robert G., Introduction to Computer Organization with x86-64 Assembly Language & GNU/Linux 2015. Web version found here at author's web site. For a small charge an ebook/pdf and paperback versions are available at lulu.com
  2. Optional - get the ebook, it's free. Tarnoff, David, Computer Organization and Design Fundamentals, 2007. Free ebook/pdf and for a small charge a paperback are available at lulu.com
  3. Logisim A graphical tool for designing and simulating logic circuits. Also available in the computer lab.
  4. Aho, Alfred and Ullman, Jeffrey, Foundations of Computer Science - C edition, Computer Science Press. Resource found at here at author's web site. Chapters 12 and 13 will be usefull.
  5. The department will provide all software necessary to complete the course. This will require the student to have an account on the departmental server. This account will give them access to the software and space to store solutions to assignments. Access to the server will be provided through a workstation in the departmental lab as well as from any remote location on and off campus.
Course Objectives:After successfully completing this course, the you will have
  1. Basic historical computer architectural knowledge.
  2. Developed an understanding of the digital logic level of a computer system.
  3. Design, simplify, test, and build sequential and combinational circuits to solve a variety of problems.
  4. Design, implement, and test conventional machine language programs.
  5. Implemented a conventional machine on a simulator.
  6. Developed an understanding of the system microarchitecture.
  7. Designed and implemented new assembler instructions into a microprogram.
  8. Demonstrate an understanding of how performance can be increased by utilizing multiple processors, multiple cores, threading, or with multiple GPUs.
Class Preparation: It is assumed that you will read the assigned chapters. Although the material may be summarized, lectures will be used mainly to further demonstrate other approaches to problem solving and to answer specific questions.

Projects: There will be a variety of projects during the semester. Each project will involve some aspect of computer organization. Project topics are:
  1. Transistors, basic gate logic and Karnaugh Maps
  2. Sequential and Combinational circuit design
  3. Assembly Language Programming
  4. Build a simple computer system (designed at the digital logic (gate) level)
  5. Microprogramming (basic instruction set)
NOTE: Part of your grade on all projects will be documentation. If you submit a solution and the solution is lacking clear and concise documentation, your grade on the project will suffer. This includes excessive documentation.

Course Policy:

  1. Attendance: Attendance will be taken daily at the beginning of class. You are expected to be present in every class meeting. If absent from class, you are responsible for all lectures, in-class exercises, assignments, and handouts. Caution: being absent from class does not change the due date of assignments.
  2. Grades: Your final grade will be determined as follows:
    Component Assignments 2-3 Major Tests Cumulative Final Exam Total
    Weight
    40%
    45%
    15%
    100%
    Range
    93-100
    90-93
    87-90
    83-87
    80-83
    77-80
    73-77
    70-73
    67-70
    63-67
    60-63
    0-60
    Grade
    A
    A-
    b+
    b
    b-
    C+
    C
    C-
    D+
    D
    D-
    F
    You must score at least the minimum of a category to be given the associated grade, i.e. an average of 80 is a b- not a C+.
  3. Make-Up test will not be given. No make-up test will be given unless arrangements have been made prior to the day of the test. If you miss a test your final grade will be used in place of the missed grade. This means the percentage of the final exam will increase. If you miss the final exam, you will receive an F for the course.
  4. In-class worksheets, quizzes, and non-programming assignments must be completed on the assigned date and cannot be made-up. If there are more than 10 of these, the lowest two will be dropped. If there are more than 16 of these, the lowest three will be dropped.
  5. Homework: This will be assigned frequently. Some assignments will take minutes to complete others will take days. Opportunity for homework questions is given at the beginning of each class. Homework may be collected and graded occasionally.
  6. Do not get behind on your assignment/projects! You must attempt all assignments. Any assignment not received by the due date will be charged a late penalty. The penalty will vary depending on the assignment and will be stated in each assignment. All assignments will have an absolute deadline in which the assignment will no longer be accepted.
  7. Cheating Policy: Don't Cheat! There will be no second chances. If you are caught cheating, you will receive an F for that test, assignment, program, ... PERIOD!
  8. Classroom etiquette:
  9. Lab/Classroom Lab etiquette:
  10. Students with Disabilities: Students who require classroom accommodations due to a diagnosed disability must submit the appropriate documentation to Disability Support in the Office of Academic Development, 4th Floor Smith Library. Student’s need for accommodations must be made at the beginning of a course. Accommodations are not retroactive.
Course Topics:
  1. Introduction
  2. Computer Systems Organization
  3. Relevant Historical Computer Architecture/Organization.
  4. Digital Logic level
  5. Microprogramming level
  6. Conventional machine level and assembly language level
  7. Multiprocessing