CMPS-2240 - Computer Architecture I - Assembly Language
Prepare for this course over the Summer.


Step 1 - setup email Log in to the Odin server. Edit your sample.forward file. List the email accounts you want to communicate with. Save it as .forward Here is a sample...
# Exim filter - do not edit this line! # only works for exim... others will treat it as a plain .forward file... # if this filter generates an error, then deliver to original address if error_message then finish endif # If you want to forward your email to an offsite address, uncomment and modify # the following line to use your own email address: deliver myaddress@gmail.com finish
Step 2 - build directories Log in to Odin. Go to your home directory. Run the following script... /home/fac/gordon/p/2240/build_dirs.sh
Step 3 - submit a text file Change to your 2240/summer/ directory. Create a text file named: summer1.txt Put your name at the top. Answer the following questions... 1. How many bits are in a byte of memory/storage? 2. What is the largest value that can be stored in a byte? 3. How many different values can be stored in a byte? 4. How many bits are in the x86 AX register? 5. How many bits are in the MIPS $a0 register?
some notes are below...
Notes: To answer the questions above, you may use any sources available to you, except just a few. You may use: Google and online sources, textbooks, your notes, etc. Please do not use: another student or another student's work. Thanks.
How to answer a question that asks for a number. Many questions on homework, quizzes, and exams will ask you for a number. The answer will always be a decimal number, unless specified otherwise. Number notation... decimal: 163 binary: 10100011b hexidacimal: 0xa3 octal: 0243 These are not numbers, but rather formula or expressions... 2^7 256/2 n(n-1)/2 Reduce your answers to a decimal number.
What is a register? A register is circuitry inside a CPU (central processing unit) that stores a value. It's similar to computer memory that stores values for C++ variables and arrays, but a register is right at the core of the CPU. A register will hold a value for a micro-second, where memory might hold a value for hours or days. The size of a register is usually expressed in bits. A 16-bit register has this many bits: 0000000000000000 The largest value that a 16-bit register can hold is: 1111111111111111b or 65,535. Because zero is a value, a 16-bit register can hold 65,536 different values. Registers are used to address memory, so a 16-bit register can address 65,536 bytes of memory.
More details about registers: In the early 1980s, the Commodore-64 personal computer had 16-bit CPU registers, and so could address 65,536 bytes of memory. The 64 is for 64K bytes of memory. 64K = 1,024 * 64 = 65,536. Current computers have 64-bit CPU registers. If you have an older PC at home, it might still have 32-bit CPU registers. 32-bit computers have a 4-gigabyte memory limit. Here's why: 11111111111111111111111111111111b = 4,294,967,295 The largest register value is about 4-billion. Gigabytes is billions of bytes. The CPU can only address 4-billion bytes of memory.
MIPS assembly language: About half of this course is learning to program MIPS assembly language. We will be using a MIPS emulator to run our programs. MIPS registers have a size of 32-bits in our emulator.