NOTE: Some links in this syllabus page may only be accessible to currently enrolled students.
Communication Policy - Stephen Redfield
Please post all course-related questions in the Piazza page so that the whole class may benefit from your conversation. Not all posts require a reply from the instructor/TA and often it is better for students to hash out an answer to a question.
To contact the TAs, open Canvas Inbox, compose a new message, select this course, then next to the ‘To’ box click the address book, select “Teaching Assistants”, then choose the name(s) of TAs you wish to contact.
Please email your instructor only for matters of a personal or private (grading) nature. The instructor or a TA will reply to most course-related questions within 24-48 hours.
Communication Policy - Eric Vogel
Please post questions about the course in Piazza so that the entire class can benefit from our conversation. (You should also feel free to answer your colleagues’ questions!) I’ll respond to your questions on Piazza, and any emails direct to me from 8:30 or 9pm to 10:30 or 11pm U.S. Mountain Time (UTC -07:00) Monday through Friday nights.
Reserve email for anything of a personal nature, including grade-related questions. Please email me at email@example.com rather than through Canvas. It’s a legal requirement that you use your OSU email account when sending me email. Put [CS 271] at the start of the subject line so it doesn’t get lost in my inbox.
Office Hours are held via the class-specific Slack workspace. For details on getting set up on Slack, please go HERE (Links to an external site.). The actual Workspace you should sign into is oregonstate.enterprise.slack.com (Links to an external site.)
This will log you into your OSU slack account, where the class Workspace should be visible.
Listing by Day (all times U.S. Pacific Time, UTC-08:00):
|Sunday||2:00 PM-5:00 PM||N/A|
|Monday||2:00 PM-5:00 PM||N/A|
|Tuesday||5:00 PM-6:00 PM||N/A|
|Thursday||4:00 PM-6:00 PM||N/A|
|Friday||3:00 PM-6:00 PM||N/A|
|Saturday||10:00 AM-11:00 AM||3:00 PM-5:00 PM|
If you have a technical issue or question when using Canvas, 24/7 support is available in Canvas via chat, phone, or e-mail through the Help link in the menu on your left .
Additional technical support (use of software/browsers) can be accessed through the OSU Computer Helpdesk.
Academic or Student Support Services
For all other academic and student support services, refer to the Student Services link found in the course menu.
The following services are available to all Ecampus students:
- Ecampus Success Counseling
- Disability Access Services
- The Writing Center and Online Writing Lab
- The Valley Library and Ecampus Library Services
- Ecampus Enrollment & Student Services
- Check Your Computer test - ensure you have installed the minimum required technology for Ecampus courses.
Accessibility Tools for Canvas
The following tools are available within your Ecampus course.
ReadSpeaker - is a tool that reads text on Canvas course pages aloud.
TextAid - is an additional tool that allows users to have nearly any text highlighted and read aloud, including documents, Web sites, text composed by a user, and more. For more information, please visit ReadSpeaker Text Aid.
Syllabus Quiz: This quiz is based on the syllabus, so understand the syllabus before taking it. You'll need to score 100% in order to access the Week 1 materials! Don't Fall Behind!
NOTE: This quiz is only available to currently-registered students.
A former CS271 Instructor introduces the course.
Hop on over to Piazza (the link on the navigation sidebar will take you straight there) and introduce yourself!
The following consists of installation & setup tutorials for Visual Studio 2019.
If you want to use Visual Studio via Citrix, please see the bottom of this page.
Coming out of this module you should have done the following:
- Set up Microsoft Visual Studio
- Install and configure Kip Irvine's libraries
- Started a new Assembly code project
- Verified that Visual Studio is installed properly
Your Visual Studio install will need to be "Activated" with your Product Key. You can retrieve this key at any time through the Microsoft Azure interface (Links to an external site.) by looking in "All Services --> Other --> Education --> Software" and clicking on the Visual Studio product that you installed.
What if I don't have Windows on my computer?
Since the Microsoft Assembler (packaged with Visual Studio) only runs on Microsoft Windows, you will need access to a Windows installation. Fortunately, all the tools that you need are provided for free. Be aware that you have several options. The Guide to Windows Installation for Mac Users will help getting Windows installed! For recommendations or other advice, feel free to post a question on the Piazza forum (see link in the sidebar).
- OSU students get free access to virtualization products including VMware Fusion (for Mac OS) and VMware Workstation (for Linux). Both of those tools are available for download at the VMware Academic Site (Links to an external site.). The Linux version supports Ubuntu, RHEL, CentOS, Oracle Linux, and SUSE.
- As a Linux user myself, I generally recommend that students use Virtual Box (Links to an external site.) to run Windows within their Linux installation. Virtual Box is completely free so it has widespread support across numerous distros.
- Mac and Linux users can also dual-boot their computer to run Windows. If you choose this option, make sure that you fully understand the consequences!
Whichever strategy you choose, you will still need to have access to the Windows installation media. This is also available for free on the Microsoft Azure interface (Links to an external site.). The Windows 10 download can be located in the section: "All Services --> Other --> Education --> Software --> Windows 10 (consumer editions)"
Installation on PC
Get Set Part 1
Visual Studio is now available through the Microsoft Azure program.
To get started, visit https://azureforeducation.microsoft.com/devtools (Links to an external site.) and log in using a Microsoft account. You should be able to log in with your OSU email address (firstname.lastname@example.org) which will forward you to the OSU central login page. Sometimes Microsoft requires that you log in with a non-OSU email (if you have an existing account you can use it) and then verify your OSU email to obtain access. Once you are logged in, the main portal should look similar to the first image below. In order to access the Visual Studio download, select "Download software". Alternatively, you may select "Software" under "Learning Resources" on the left navigation panel.
Next, type "Visual Studio Enterprise" in the search bar and select "Visual Studio Enterprise 2019". I suggest installing Visual Studio 2019 Enterprise simply because that is the most recent version, but previous versions of Visual Studios (back to even Visual Studios 2010) will work for this course.
You can then view your assigned license key and download the software. When you install Visual Studio you will be asked to select your intended workload (e.g. how do you plan to use Visual Studio). You should select "Desktop development with C++" as that is the best option for our purposes. You don't need to select any additional options at this point. The default for "Desktop development with C++" is suitable for our class.
Get Set Part 2
In order to configure the textbook libraries, you will need to download two ZIP files and extract their contents to the proper location.
- First download the file http://asmirvine.com/gettingStartedVS2019/Irvine.zip (Links to an external site.)
Extract the contents of this ZIP file into the C:\ directory. If the files were extracted properly, the following file should exist on your computer:
- Next, we need to download the Visual Studio project file. For this step, it's recommended that you create the directory C:\CS271
You can then download the file Project0.zip and extract the contents into C:\CS271
If the extraction was successful you should be able to locate the file: C:\CS271\Project0\RemoveMe.asm
If you are using an older version of Visual Studio (prior to 2019), other versions of the textbook libraries are available from the author's website at http://asmirvine.com/ (Links to an external site.)
Get Set Part 3
This video shows how to start a new Assembly code project and verify that Visual Studio is installed properly. Although this video illustrates the procedure using Visual Studio 2015, any recent version of Visual Studio (2015-2019) will work.
Alternative: Using Citrix (not recommended)
Citrix is a software product that allows you to access programs on a remote computer as if you were sitting at the desktop. Personally, I generally recommend that students install Visual Studio on their local computer, rather than using Citrix. However, if you want to try it, you should be able to access Visual Studio on our OSU Citrix Servers (Links to an external site.) as follows:
On Citrix, choose the “Desktop” choice at the top (or bottom?) of the screen after you are logged in and then the “MIME EECS Desktops” choice. This will create a session as if you were logged on to an on-campus lab computer. In the Citrix session, download the zip file Project0.zip and extract it to
You will have to make this folder (it does not exist by default). All your projects should live in this directory, since in order to execute code on Citrix the executable should be in the bin folder or a subdirectory thereof. Also note that you need "execute" permissions in the 'bin' folder, which may or may not be set by default. If you are having trouble with this folder they can create/reset it here (Links to an external site.) (log into TEACH and click the link that says "Reset Windows Bin Directory").
NOTE 1: You do not have to download/install the Irvine library if you use the Citrix machine. The EECS configuration should already have the libraries installed.
- Open the Project.sln from "Z:\bin\CS271\Project32_VS2019" after you've extracted it to this location (one of the videos shows you this).
- You should now be able to use Visual Studio for this course.
NOTE 2: Be aware that the files will NOT reside on your home computer, and if you want them on your computer/laptop you'll have to transfer them using an SFTP utility.
Common issues with Visual Studio setup
- LNK1104 cannot open file 'Irvine32.lib'
If you're getting this error, it's likely that you did not extract the Irvine library files into the correct folder. Ensure that the folder structure is such that the Irvine32.lib file exists in the C:\Irvine\Irvine32.lib folder and try again. The most common issue is that you will end up with the following incorrect path due the zip extraction process: "C:\Irvine\Irvine\Irvine32.lib".
- "File not found" or "cannot execute the specified program" errors
Visual Studio generates executable programs (.EXE files) that run when after you assemble your source code for your programming assignments. Even after working fine for a while, at some point you may see an error message that the file cannot be found, or your program prints the message "The system cannot execute the specified program." This probably means your antivirus program has falsely identified your executable program as a threat (false positive) and block it from running. Exclude your entire CS271 folder (and all its subfolders) from being virus scanned, and you should be able to proceed without further antivirus interference with your work.
- INCLUDE errors: By installing additional extensions beyond what is required for this course, the INCLUDE structure may be prone to error.
Please ensure that the path "C:\Irvine" is explicitly written in the Project Properties in the two fields specified below:
To enter the Project Properties select the "Project" menu, then select "Project Properties". Or, right click "Project" in the Solution Explorer and select "Project Properties"
- Configuration Properties ➝ Linker ➝ "Additional Library Directories" should be: "c:\Irvine;%(AdditionalLibraryDirectories)" (without quotes).
- Configuration Properties ➝ Microsoft Macro Assembler ➝ "Include Paths" should be: "c:\Irvine" (without quotes).
- Eliminating the "... exited with code 0." message
If when you run a program, the message ".... (process xxxxxx) exited with code 0." becomes annoying, here are the steps to keep that message from showing:
- From with Visual Studio select the "Debug" menu, then select "Options".
- Under Debugging > General, ensure "Automatically close the console when debugging stops." is checked.
- Run your program again. The message should be gone.
- Syntax Highlighting
By default, Visual Studio does not include syntax highlighting for Assembly code. This can sometimes make it more difficult to read your source code. To enable syntax highlighting in Visual Studio 2015 or later, you may want to install AsmDude:
- From within Visual Studio select the "Extensions" menu, then select "Manage Extensions".
- Search for AsmDude, select it, click Download, and wait for it to complete.
- Close Visual Studio and a VSIX Installer dialog will pop up asking for permission to install AsmDude. Let it do so.
- Reopen Visual Studio. MASM syntax highlighting support should now be installed.
- Disable syntax highlighting options that interfere with the INCLUDE Irvine32.inc statement: Go to Tools>Options>AsmDude, find the Intellisense section, and uncheck the "Show in error list" and "Decorate with Squiggle" options for Undefined Labels, Clashing Labels, and Undefined Includes, then click OK.
- If you are unable to complete Project 0, disable AsmDude.
- If you use the dark Visual Studio color scheme, you can change the color of certain text to be more readable. Go to Tools>Options>AsmDude and change the color for Mnemonic.
- Special note: if you are an advanced Visual Studio user and want to use its native (and imperfect) MASM syntax highlighter, you must choose it or AsmDude -- you cannot use both at the same time.
- "Inconsistent Line Endings" error from Visual Studio
A fairly catch-all solution to this is eliminating any non-Unicode characters from your .ASM file. To do this...
- Copy the entire body of your .ASM file.
- Paste it into a non-formatting text editor like Notepad. Save this copy to be sure you don't lose anything.
- Open a new, working project (copy one known to work from a different folder, or use the clean template from the Canvas site)
- Copy everything from the Notepad file into this new, clean project file and try running again.
- Windows Environment Variables
It is recommended you do not try to locate, read, or alter any environment variables created and assigned by Visual Studio. VS has a complex way of managing them while it is running, and using them is way beyond the scope of what is needed in CS 271.
Github for Version Control
It is recommended that you use Github for version control. The many benefits of using this for version control do not need to be listed here. If you do use Github, ensure all repos are set to private. Public Github repos (other than for the final project) are considered a violation of Academic Conduct.
The syllabus page shows a table-oriented view of the course schedule, and the basics of course grading. You can add any other comments, notes, or thoughts you have about the course structure, course policies or anything else.
To add some comments, click the "Edit" link at the top.