Go up to the main README file (md)
Course Introduction (CS 2150 specific)
- Source code: DataStructureComparison.java (src)
- Source code:
- General source code: evenodd.cpp (src), pointers.cpp (src), swap.cpp (src), dynamic_allocation.cpp (src), delete.cpp (src), memory.cpp (src), swapref.cpp (src), cpptest.cpp (src)
- IntCell code: IntCell.java (src), TestIntCell.cpp (src), IntCell.h (src), IntCell.cpp (src)
- Rational code: Rational.java (src), Rational.h (src), Rational.cpp (src), TestRational.cpp (src)
- Source code: findMax.cpp (src), objectCell.h (src), objectCellMain.cpp (src)
- Source code: float_to_hex.cpp (src), FloatTest.java (src)
- Source code: cmdlineparams.cpp (src)
Slide set 7: IBCM (machine language)
- The online simulator is here
- Source code: summation.ibcm, array-summation.ibcm
- IBCM book chapter as the reading
- There is a separate IBCM section of this repository with more IBCM information, although that additional information will not be needed in this course
Slide set 8: 64 bit assembly language
- 64 bit materials: 64 bit assembly slides
- The x86 book chapters on x86 and the C calling convention as the reading
- Another good reading document is the x86-64 Machine-Level Programming document from CMU, although they use the other assembly language format
- The official (complete but harder to read) Linux x86-64 calling convention docs: section 3.2 of System V Application Binary Interface AMD64 Architecture Processor Supplement, and the Itanium C++ ABI
- Source code
- The generated assembly was generated using
make asm
, which uses gcc/g++; to generate it using clang/clang++, use the 'asmclang' target - Makefile (src)
- Absolute value example: test_abs.cpp (src), test_abs_c.c (src), test_abs.s (src), test_abs_c.s (src), test_abs-non-intel.s (src)
- Fibonacci example: test_fib.cpp (src), test_fib.s (src)
- Max example: test_max.cpp (src), test_max.s (src), test_max-O2.s (src), test_max-noextern.s (src)
- String compare example: test_string_compare.cpp (src), test_string_compare.s (src)
- The generated assembly was generated using
- The tutorial for lab 8 (md)
- Tutorial 8 is nasm, which consists of two PDF book chapters that are contained in this repository: x86 Assembly and The x86 C Calling Convention; the contain more examples of assembly code
- You can skip a few of the sections (feel free to look at them if interested, but they are not needed): Floating Point Instructions, SIMD Parallelism, Saturated Arithmetic, and Graphics.
- You can view the 32 bit assembly material (md), which was used in past years.
- The x86 book chapters on x86 and the C calling convention as the reading
- Source code: name-contact.cpp (src)
Slide set 10: Heaps and Huffman coding
- Source code: binary_heap.cpp (src), binary_heap.h (src), heap-test.cpp (src)
Slide set 13: Esoteric Programming Languages
Course Conclusion (CS 2150 specific)