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.