CS271 - Module 1 Notes & Knowledge Checks
What is the key concept of a Von Neumann architecture?
"Programs are stored in memory and executed according to an instruction-execution cycle." What does this concept represent?
(T/F) Registers are both the closest and fastest storage units on the chip.
(True!) What storage unit is the closest/fastest on the chip?
(True/False) Assembly Language instructions have a nearly 1:1 correspondence with Machine Code. True
(True/False) A single computer architecture may have programs written for it using more than one assembler (MASM, NASM, FASM, ...) True
(True/False) A single computer architecture may have programs written for it using more than one Assembly Language (x86, RISC-V, ...). False
(True/False) Assembly Language programs are portable to a variety of computer architectures. True
How many bits are there in 35 megabytes?
293,601,280 bits = how many bytes? This is a prefix problem!
What is the width of the address and data buses?
32-bits is the width of what communication components?
Machine language modules (object files) are combined by what? What does this create?
A linker creates an executable file by combining what?
This takes an executable file and stores in onto the system's memory (RAM), making a program ready to run on...?
A loader manipulates ___, places it onto ___, which gets it ready to run on the computer hardware.
With ASCII, each character can be represented by as little as a...?
A single byte is often used to represent each ___ of a string.
Assembly language (Level 2) is translated into Machine language (Level 1) by...?
An assembler translates what to what? (Think levels)
EAX has an implied extension in ___
EDX is the implied extension of ___
Which registers are used by memory transfer functions as source and destination addresses?
ESI and EDI are used for tracking what?
Which three registers point to some part of the stack?
ESP, SS, and EBP all point to some part of...?
Fill in the blanks: Assemble > ___ > Load > ___
Fill in the blanks: ___ > Link > ___ > Run
What are the following Pre-Value representations: 0n101 0b101 0x101 0t101
Give an example of a Pre-Value representation of the following: Decimal Binary Hexadecimal Octal
What are the levels of the language hierarchy? Where do each of the following fit? Python, Spanish, x86 Assembly, Binary Opcodes, Circuit logic
Give an example of each of the following: Level 4: Natural Languages Level 3: High or Low Level Programming Languages Level 2: Assembly Languages Level 1: Machine Language Level 0: Computer Hardware -
A compiler/interpreter translates what to what? (Think levels)
High or Low level programming languages (Level 3) are converted into Assembly languages (Level 2) by...?
These steps describe what process? 1. Subtract each digit from F 2. Add 1 to the result.
How do you find the Two's Complement of signed hex integers?
When converting from a two's complement binary to decimal, what does it mean if the MSB is a 0? How about if it's a 1?
If it's 0, the number is positive. Just convert as usual. If it's 1, the number is negative. Invert each bit, add 1, convert to decimal, then flip the sign.
Anything occurring while the Assembler does its job happens in... What happens while the Linker does its job happens in... What happens while the program is running happens in...
In general, what do these terms describe? Assembly time Runtime Link time
The operating system partially translates...?
Machine language is partially translated by...?
What's a simple paper and pencil method of converting decimal to unsigned binary?
Sequential division by 2 allows us to convert what to what?
Where is there a bottleneck in the memory transfer process? What is a feature that helps to resolve this?
The data bus presents what kind of problem for memory transfer? How does the cache relate to it?
How do you find the Two's Complement of signed binary integers?
These steps describe what process? 1. Invert each bit. 2. Add 1 to the result.
What are the three modes an IA-32 architecture can run? Which one are we using in this class?
What do these 3 represent? 1. Protected mode (we're using the 32-bit version of this) 2. Real-Address Mode (legacy compatibility) 3. System Management Mode (SMM)
Which register points to the base of the Stack Frame?
What does the EBP register do?
Which register points to the address of the next instruction to be executed?
What does the Instruction Pointer (IP) do?
Which sub-component of the CPU pulses at a constant rate, guaranteeing synchronization of operations. What represents the "speed limit" of instructions?
What does the system clock do? What does one clock cycle represent?
What is a control phrase for the computer which will be translated (with its operands) into a op code (Machine Language)?
What is an instruction?
When transferring instructions and data between the Main Memory Unit and the CPU, where is the location of the instructions and data stored?
What is stored in the Address Bus and when?
How do we sign extend unsigned values? How do we sign extend signed values?
What is this an example of? 0000 0000 0100 0110 1111 1111 1100 0110
What is the only "real" general purpose register?
What makes EBX special?
Generally speaking, what does the control unit do? What are 3 of most important components within it? (Relevant to this class at least)
What manages the flow of execution for programs and contains the Instruction Pointer (IP), Instruction Register (IR), and Status Register (Flags)?
What does the process of accessing memory look like? Organize the following keywords and describe what goes on at each step: CLOCK CYCLE MDR MAR MEMORY READ ADDRESS BUS DATA BUS
What process is being described here? 1. MAR - Store the location in the Memory Address Register 2. ADDRESS BUS - Move the location in question here. 3. MEMORY READ - Trigger this 4. CLOCK CYCLE - Wait a cycle. 5. DATA BUS - Make a copy of the data at the address and place it on the Data Bus. 6. MDR - Store the data in the Memory Data Register, where it gets sent to its final destination.
Sequential division by 16 allows us to convert what to what?
What's a simple paper and pencil method of converting decimal to unsigned hexadecimal?
If the MSD < 8, then the number is positive. Just convert as usual. If the MSD >= 8, then the number is negative. Subtract each digit from F, add 1, convert to decimal, then flip the sign.
When converting from a two's complement hexadecimal to decimal, why is the number 8 significant?
What is stored in the Data Bus and when?
Where are instructions and data held when transferring them between the Main Memory Unit and the CPU?
Which is a higher level language and what is its level? Assembly or C++ Python (3) vs (4)
Which is a lower level language: Python or English C++ (3) vs (2)
What does the Control Register do (one thing amongst many)?
Which register holds the current micro-instruction?
What does the Instruction Register (IR) do?
Which register holds the opcode of current instruction being executed?