1/81
Looks like no tags are added yet.
What architecture does the Raspberry Pi 4 use?
ARM 8 Cortex-A72
Which processor does the Raspberry Pi 4 use?
Broadcom (BCM) 2711
RTC
Manipulate data, be controlled by instructions, move data
1.5 GHz
6a. Harvard architecture (4 traits)
Takes more area to implement; highest performance; typically used for on-chip cache; allows simultaneous instruction and data access
6b. Von Neumann architecture (2 traits)
Typically used for main memory; most optimal for processor pinout
A special register that stores the address of the next instruction
Repeat a set of operations until a condition is met
Binary opcode
Load/store architecture, 32-bit instructions, primarily CPI = 1
11a. Flowcharts (3 traits)
Symbolic; better for smaller code jobs; too much detail is bad
11b. Pseudocode (3 traits)
Natural text; better for larger code jobs; flexible level of detail
True
Helps with file management; automatically uses the files it needs based on what changed; automates the software building procedure; controls the generation of executables
GCC and GDB
15a. Can be 1 or 0
Bit
15b. 4 bits
Nibble
15c. 8 bits
Byte
15d. 16 bits
Half word
15e. 32 bits
Word
11011100
17a. Decimal 63789 in hex (16-bit unsigned)
F92D
17b. Decimal 63789 in binary (16-bit unsigned)
1111100100101101
33333
Not enough information
-1
-255
22a. 16-bit two's complement: -1
FFFF
22b. 16-bit two's complement: most negative
8000
22c. 16-bit two's complement: largest positive
7FFF
22d. 16-bit two's complement: 0
0000
The answer is always correct as long as A > B; the answer is always correct for signed numbers
You must be using signed numbers
False
R0-R12
True
28a. General purpose register example
R2
28b. Stack pointer
R13
28c. Link register
R14
28d. Program counter
R15
32
16 bits or less
Pseudo instruction
32a. Directive: assign a constant value to a name
.EQU
32b. Directive: assign a name to a register
.REQ
32c. Directive: define a value as 8 bits
.byte
32d. Directive: define a value as 2 bytes
.half
32e. Directive: reserve a byte in memory
.space
32f. Directive: pull an external file into the current file before assembly
.include
32g. Directive: defines the instruction area
.text
32h. Directive: defines the data area
.data
CPSR
ADDS, SUBS, CMP
35a. Flag set if the MSB (sign bit) is set
N flag
35b. Flag set if the result is zero
Z flag
35c. Flag set on addition overflow (carry) and on subtraction if no borrow occurs
C flag
35d. Flag set for signed numbers when a positive looks negative or a negative looks positive
V flag
Changes the program counter
Can jump forward or backward; provide jump addresses +/- relative to the PC; are considered short jumps; if conditional, depend on an instruction that affects the flag bits
Loads the value in R0 into the program counter (note: your copy of the guide also marks "has no effect on the program counter"; confirm the keyed answer)
True
Over 80% of branches are taken; the ARM8 processor has very good branch prediction
4
True
43a. Flash memory
"Permanent" program storage; holds value independent of power
43b. SRAM
Cache memory; maintains value while powered without refresh
43c. DRAM
Maintains value and requires refresh; lowest cost per bit
Little endian
Immediate, register indirect, scaled register, register direct
True
Result is zero
An addition results in a carry; an unsigned subtraction or CMP results in no borrow
A positive signed number looks negative
A signed negative number looks positive
When r6 < 5
52a. .equ data1, 0xFEDCBA98: result of ldr r3, data1
Error in the instruction
52b. .equ data1, 0xFEDCBA98: result of ldr r1, =data1
r1 = 0xFEDCBA98
52c. .equ data1, 0xFEDCBA98: result of mov r5, #data1
Error in the instruction (mov is limited to 8-bit values)
52d. .equ data2, 0xFEDC: result of mov r4, #data2
r4 = 0xFEDC
52e. .equ data1, 0xFEDCBA98: result of ldr r2, =data1
r2 = 0xFEDCBA98