The purpose of this course is to introduce computer science majors to computing systems below that of a high-level programming language. The material covered can be broadly separated into the categories of assembly language programming and computer organization. Under the heading of assembly language programming students will be introduced to the i386 instruction set, low-level programming, the Linux memory model, as well as the internal workings of compilers, assemblers and linkers. Topics under computer organization include digital logic design (combinational circuits, sequential circuits, finite state machines) and basic computer architecture (system bus, memory hierarchy and input/output devices).
| Project | Description |
| Replacer | Convert all digits in a user specified string to a repeated user specified character. |
| Converter | Convert a few hardcoded numbers between bases. |
| Hamming Distance | Calculate the hamming distance between two strings. A more practical description can be found here. |
| Linked List Implementation in Assembly | This is a combination heap/pointer based link list implementation of this C file. It must be linked so that printf can be found. |
| Boot Disk and Boot Sector Hex Dump | An assembly program that can bootstrap a x86 machine and do a hex dump on the first sector on the hard disk. |
| Accessing C Structures in Assembly | A method for accessing C structures through assembly and gcc linking is shown here. A report is generated based on the contents of the structure. |
| An index of all cs313 files can be found here. | |
Feed
No comment yet