CSC 236 Computer Organization and Assembly Language
 

Computer architecture topics required by professional software developers, including binary and hexadecimal numbers, hardware component organization, machine instruction sets, assembler language programming, linking assembler language with high-level languages, program testing, computer hardware design issues, computer software design issues, and trends in current computer design. 3 credit hours

 
   

• Prerequisite
 

CSC 216 Programming Concepts - Java with a grade of C- or better.


• Course Objectives
 

By the end of the course, students will be able to:

  • Add and subtract and convert, signed and unsigned integers, using bases 2, 10 and 16.
  • Enumerate the functional components of a computer; explain trade-offs in computer design as they relate to cost and function and performance; outline computer architectural enhancements beyond the von Neumann model.
  • Explain the basic operation of interrupts and microcode.
  • Program in x86 assembly language and ARM assembly language
  • Link assembler subroutines with a High Level Language.
  • Convert symbolic assembler code into machine code and convert machine code into symbolic assembler code.
  • Explain Floating-Point architecture and program the Floating-Point co-processor
  • Explain the basic operation of the Java Virtual Machine and Java Bytecode.

• Course Requirements
 
Two open book tests and an open book final.
Ten homework assignments.
Seven programming assignments.


• Textbook
 

The CSC236 Class Notes course package is the primary text.
It is online on the class WEB site and at the NCSU bookstore.

It contains a detailed set of lecture notes and reference information for programming the Intel 8086 processor.


• Software Requirements
 

CSC236 provides an introduction to Computer Architecture and Assembler Language. As part of the course we provide historical information going back to the start of the x86 architecture and we look at decisions that shaped the current computer world.

In the class, we work with 16 bit DOS programs and the MASM 6.11 development tools. Current Operating Systems such as Windows 7 and Vista are not friendly to those tools. So we adopt DOSBox as the running environment. It works for Microsoft (32 and 64 bit) versions of XP, Vista, Windows 7, and Linux and Mac OS. DOSBox is an emulator that recreates a MS-DOS compatible environment.


• Computer and Internet Requirements
 

NCSU and Engineering Online have recommended minimum specifications for computers. For details, click here.


• Instructor
  Dana Lasher
Dept. of Computer Science
Engineering Bldg II (COE II) 2296, Box 8206
NCSU Campus
Raleigh, NC 27695

Phone: 919-515-7890
Fax: 919-515-7896
Email: lasher@ncsu.edu