CSC 236 - Computer Organization and Assembly Language for Computer Scientists
Catalog Description: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.
Contact Hours:
- Lecture: 3 hours
Co-requisites: None
Restrictions: None
Coordinator: Dr. Caio Batista de Melo
Textbook:
Course Outcomes:
At 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.
Topics:
- Introduction To Architecture
- Unsigned Number Systems
- Signed Number Systems
- Basic Computer Architecture
- Intel 8086 Architecture
- PC Environment
- Introduction to Program Testing
- Multiply - Divide
- Indirect Addressing
- Subroutines
- Linking With High Level Languages
- Intel 8086 Machine Code
- Logical Operations
- ARM Architecture
- Java Virtual Machine
- Microcode, String Instructions, Interrupts
- Floating Point
- Tradeoffs In Processor Design
- Performance Issues In Processor Design
- Advanced Intel Architecture (Post 8086)
See Course Listings