Shared Flashcard Set

Details

CS309 Chapter 3
Chapter 3 of Alan Clements' Computer Organization and Architecture
53
Computer Science
Undergraduate 2
11/13/2023

Additional Computer Science Flashcards

 


 

Cards

Term
What are the three addressing modes?
Definition
1. Literal
2. Direct
3. Indirect
Term
What are the three instruction modes?
Definition
1. memory-to-register (LDR) 2. Register-to-memory (STR) 3. Register-to-register (
Term
r0 to r11 are referred to as ______-________ registers
Definition
general-purpose registers
Term
Register r13 is the
Definition
stack pointer
Term
Register r14 is the
Definition
link register
Term
Register r15 is the
Definition
program counter
Term
What 4 flags does the CCR contain and what do they stand for?
Definition
Z-zero, N-negative, C-carry, V-overflow
Term
What hardware implements a Z flag?
Definition
32 input NOR gate
Term
What hardware implements a C flag?
Definition
Carry out from 31 bit full adder. Carry is only for addition
Term
What hardware implements an N flag?
Definition
Bit 31 value
Term
What hardware implements an V flag?
Definition
The sign for both operands is the same but the outcome has a different sign. Overflow is only for addition and subtractiong
Term
What 3 things does the Instruction Set Architecture include?
Definition
1. Register set
2. Addressing modes
3. Instructions and formats
Term
Register r12 is the
Definition
scratch register
Term
What does this instruction mean?
LDR r2, [r3, #8]
Definition
Copy the contents of memory pointed at by register r3 plus 8 into register 2
-effective address- take the contents of register 3, add 8 to them, and this is the address to the data
Term
What does this instruction mean?
MOV r2, [12, bx]
Definition
Copy the contents of memory pointed at by register bx plus 12 into register 2
Term
What does this instruction mean?
MOV r0, #12
Definition
Copy the literal value 12 into register r0
Term
What does this instruction mean?
LDR r2, [r0, r1]
Definition
[r2]<- [[r0] + [r1]]
Load r2 with the locations pointed at by r0 plus r1
Term
What does this instruction mean?
LDR r2, [r0, r1, LSL#2]
Definition
[r2]<-[[r0] + 4*[r1]]
Load r2 with the location of r0 plus r1 scales by 4
Term
What does this instruction mean?
LDR r0, [r1,#8]!
Definition
Load r0 with the word pointed at by register r1+8, then update the pointer by adding 8 to r1

[r1]<-[r1]+8
r0 <-[[r1]]
Term
What does this instruction mean?
LDR r0, [r1],#8
Definition
Load register r0 with the word pointed at by r1, then do the post indexing by adding 8 to r1

[r0] <-[[r1]]
[r1]<-[r1]+8 (update the pointer by adding the offset)
Term
The Condition Code Register (CCR) is also known as the
Definition
Current Processor Status Register
Term
What are assembler directives?
Definition
They tell the assembler how to assemble your code
Term
What is contained in the Program Counter register?
Definition
The next instruction to execute
Term
What is contained in the Memory Address Register?
Definition
It contains the address in memory that we either need to read from or write to
Term
What is in the instruction register?
Definition
It contains the current instruction being executed
Term
What is in the memory buffer register [MBR]?
Definition
It contains the data that is either being read from or written to memory
Term
What does the Arithmetic Logical Unit do?
Definition
It performs operations on 1 (unary), two (binary) or 3 (ternary) operands
Term
What are the different types of memory?
Definition
registers, RAM, and ROM
Term
What are buses?
Definition
They allow the transfer of memory from various locations within the CPU, memory, IO devices, etc.
Term
What does the control unit do?
Definition
Based on the instructions and addressing modes sends signals to all the registers, ALU, buses, memory, input/output devices to execute the instructions
Term
What are the three types of registers?
Definition
1. general purpose registers
2. special purpose registers
3. invisible registers
Term
Describe the general purpose registers
Definition
these are the registers that can be accessed and used by the programmer
Term
Describe the special purpose registers
Definition
These are the registers that can be affected by the programmer but not directly accessed, like the program counter, the CCR, and stack pointer
Term
Describe invisible registers
Definition
Invisible registers are needed by the CPU but cannot be directly accessed by the programmer. This includes the MAR, IR, and the MBR
Term
The address bus connects these pieces of the cpu
Definition
The Program Counter, Memory address registers and Operands part of IR
Term
The data bus connects these pieces of the cpu
Definition
The operand part of the IR, MBR, Registers, and ALU
Term
What is an assembler?
Definition
takes your assembly code and converts it to machine code (or executable code)
Term
What are assembler directives?
Definition
tell the assembler how to assemble your code
Term
What are the 4 assembler directives we need to know for the test?
Definition
1. .text
2 .data
3. .global
4. .end
Term
Describe the .text assembler directive?
Definition
It is the start of the code and it is read only
Term
Describe the .data assembler directive?
Definition
This section should be defined after the .text and it is read/write section
Term
Describe the .global assembler directive
Definition
This is used for any external calls like printf, scanf, etc.
Term
Describe the .end assembler directive
Definition
This tells the assembler that this is the end of the code and followed by a blank line
Term
In the debugger, which command assembles the code?
Definition
as
Term
In the debugger, which command links the code?
Definition
gcc (resolves external references)
Term
In the debugger, which command runs the code?
Definition
gbd
Term
How/why do you use .asciz?
Definition
used in the .data section. It adds the null terminator onto the end of the string so you don't have to
Term
How does ARM do negation?
Definition
Turns all the 0s to 1s and 1s to 0s (1s complement)
Term
How do you handle a potential overflow in multiplication?
Definition
Need to detect when that does happen, use UMULL

UMULL regL, regU, regA, regB
[regU, regL] <- [regA]* [regB]

If it fits into 32 bits, then it will be in regL
CMP with regU, if it's 0, then you're good to go
Term
What are the 3 ways that you can pass values to a function in ARM?
Definition
1. Registers
2. The stack
3. Global variables
Term
What command unstacks and restores the CPSR?
Definition
LDMFD r13!, {r0-r4, pc}^
Term
With IRQ/FIQ interruptions, how do you change back from exception mode?
Definition
SUBS pc, r14, #4
Term
What hardware is used to implement a 32-bit adder?
Definition
3 x 8 decoder
Supporting users have an ad free experience!