1/69
Looks like no tags are added yet.
Name | Mastery | Learn | Test | Matching | Spaced |
|---|
No study sessions yet.
What are the three families of ARM processors?
Cortex-A (applications processors), Cortex-R (real-time processors), and Cortex-M (microcontrollers).
What is the primary purpose of the ARM Cortex-A family?
To support operating systems and high-performance applications such as smartphones and smart TVs.
What distinguishes the ARM Cortex-R family?
It is designed for real-time processing and mission-critical control with high performance and reliability.
What is the ARM Cortex-M family primarily used for?
Microcontrollers that are cost-sensitive and support System on Chip (SoC) designs.
What is the significance of the Thumb instruction set in ARM architecture?
Thumb instructions are 16-bit, allowing for high code density, while Thumb-2 combines 16-bit and 32-bit instructions for performance.
What is the role of registers in ARM processors?
Registers are used for fast read and write operations, with general-purpose registers (R0-R12) and special-purpose registers (R13-R15).
What is the function of the stack pointer (R13) in ARM Cortex-M?
R13 serves as the stack pointer, supporting two stacks: Main Stack Pointer (MSP) for privileged access and Process Stack Pointer (PSP) for application access.
How does the ARM processor access peripheral registers?
Peripheral registers are accessed via memory-mapped I/O, treating them like data memory with fixed memory addresses.
What are the main types of assembly instructions in ARM?
Arithmetic and logic, data movement, compare and branch, and miscellaneous instructions.
What is the format of an ARM assembly instruction?
label mnemonic operand1, operand2, operand3 ; comments
What is the purpose of the label in an ARM assembly instruction?
Labels mark the memory address of the current instruction and are used by branch instructions for control flow.
What is the typical number of operands for ARM instructions?
Most instructions have three operands, but can vary from none to four.
What is the purpose of the Program Counter (R15) in ARM architecture?
R15 holds the memory address of the current instruction being executed.
What are the characteristics of the ARM Cortex-M4 processor?
It includes a high-performance architecture with a focus on low power consumption and supports DSP instructions.
What does the term 'Load-Modify-Store' refer to in ARM assembly?
It refers to the process of loading values from memory into registers, modifying them, and storing the results back to memory.
What is the significance of the Advanced High-performance Bus (AHB) in ARM Cortex-M architecture?
It facilitates high-speed data transfers between the processor and peripherals.
What is the role of the Memory Protection Unit (MPU) in ARM Cortex-M?
The MPU provides memory protection features to enhance system reliability and security.
How does the ARM Cortex-M handle interrupts?
It uses a Nested Vectored Interrupt Controller (NVIC) for efficient interrupt management.
What is the purpose of the Control register (R14) in ARM architecture?
R14 is the Link Register (LR) used to store the return address for function calls.
What distinguishes the ARM Cortex-A57 from other Cortex-A processors?
The Cortex-A57 is designed for high-performance applications, offering improved processing capabilities.
What is the ARM Cortex-M3's primary application?
It is widely used in low-power embedded systems and microcontroller applications.
What is the difference between the Main Stack Pointer (MSP) and Process Stack Pointer (PSP)?
MSP is used for privileged access, while PSP is used for application-level access.
What is the function of the ALU in ARM processors?
The Arithmetic Logic Unit (ALU) performs arithmetic and logical operations on data.
What is the typical format for an ARM instruction?
label mnemonic operand1, operand2, operand3 ; comments
What does operand2 usually represent in ARM instructions?
Operand2 is usually a register.
What types of values can operand3 represent?
Operand3 may be a register, an immediate number, a shifted register, or a register plus an offset.
What is the purpose of comments in ARM assembly code?
Comments explain programmers' intentions or assumptions and are indicated by a semicolon (;).
What is the significance of the Link Register (LR) in ARM assembly?
The Link Register holds the return address of a subroutine and is copied to the Program Counter (PC) after the subroutine finishes.
What does the ADD instruction do in ARM assembly?
The ADD instruction adds two operands and stores the result in a destination register.
What is the purpose of assembly directives in ARM assembly?
Directives provide key information for assembly but are not instructions themselves.
What does the AREA directive do in ARM assembly?
The AREA directive creates a new block of data or code.
What does the ENTRY directive indicate in ARM assembly?
The ENTRY directive declares the entry point where program execution starts.
What does the .data directive do in TI ARM assembly syntax?
The .data directive assembles in the initialized data section.
What is the purpose of the .text directive in TI ARM assembly?
The .text directive assembles into the code section.
What is the function of the .bss directive in TI ARM assembly?
The .bss directive reserves bytes in the uninitialized data section.
What is the purpose of the .global directive in ARM assembly?
The .global directive makes a symbol referable by other source files.
What does the .asmfunc directive signify in TI ARM assembly?
The .asmfunc directive declares the start of a procedure.
How does a subroutine return control back to the caller in ARM assembly?
Control is returned using the BX instruction with the Link Register (LR).
What is the purpose of the .end directive in ARM assembly?
The .end directive designates the end of a source file.
What does the .space directive do in ARM assembly?
The .space directive allocates a zeroed block of memory with a specified size.
What does the .equ directive accomplish in ARM assembly?
The .equ directive gives a symbol name to a numeric constant.
What is the purpose of the .include directive in ARM assembly?
The .include directive includes a separate source file within the current source file.
What is the significance of the .field directive in TI ARM assembly?
The .field directive initializes a bit field with a value.
What does the .byte directive do in TI ARM assembly?
The .byte directive allocates one or more bytes of data in the .data section.
What is the purpose of the .word directive in TI ARM assembly?
The .word directive allocates one or more words of data in the .data section.
What does the .align directive do in ARM assembly?
The .align directive aligns data or code to a specific memory boundary.
What is the purpose of the Link Register (LR) in ARM architecture?
The Link Register (LR) holds the return address for a subroutine call.
What does the instruction 'BL foo' do in ARM assembly?
It branches to the subroutine 'foo' and links the return address in the LR.
What is the significance of the Program Counter (PC) in ARM architecture?
The Program Counter (PC) holds the address of the next instruction to be executed.
How are arguments passed to a subroutine in ARM?
Arguments are passed in registers r0 to r3; additional arguments are pushed onto the stack.
What is the role of the Stack Pointer (SP) in ARM?
The Stack Pointer (SP) points to the top of the stack and must be preserved across subroutine calls.
What is the difference between caller-saved and callee-saved registers?
Caller-saved registers can be modified by the callee without preserving their values; callee-saved registers must be restored by the callee before returning.
What happens to the LR after a subroutine call?
The LR contains the return address, which is used to return control to the caller.
How is a return value passed back from a subroutine?
The return value is passed back in register r0.
What is the instruction used to return from a subroutine in ARM?
The instruction 'BX LR' is used to return from a subroutine.
What is the purpose of the intra-procedure-call register (r12)?
The intra-procedure-call register (r12) holds intermediate values between a procedure and the sub-procedure it calls.
What is the significance of the least significant bit of LR in Cortex-M?
The least significant bit of LR indicates the processor mode: 0 for ARM and 1 for THUMB; Cortex-M only supports THUMB.
What happens to the PC in Cortex-M after a subroutine call?
The PC is always incremented by 4 after each instruction fetch.
How are 64-bit arguments passed in ARM?
For 64-bit arguments, they are passed in registers r0 and r1.
What happens if a subroutine modifies callee-saved registers?
The callee must restore the values of callee-saved registers before returning.
What is the ARM Procedure Call Standard?
It defines how functions receive parameters, return values, and manage registers during subroutine calls.
What is the role of r4 to r11 in ARM procedure calls?
Registers r4 to r11 are general-purpose registers that are callee-saved.
What is the instruction to add two numbers in ARM assembly?
The instruction 'ADD' is used to add two numbers.
What does the instruction 'BX LR' accomplish?
It branches to the address in the Link Register, effectively returning from a subroutine.
What is the maximum number of arguments that can be passed in registers before using the stack?
Up to four arguments can be passed in registers r0 to r3; additional arguments must be passed via the stack.
What is the significance of the ARM architecture's handling of 128-bit arguments?
For 128-bit arguments, registers r0 to r3 are used to hold the values.
What is the purpose of the 'ADD' instruction in the context of a subroutine?
The 'ADD' instruction is used to perform arithmetic operations, such as adding parameters passed to a subroutine.
What does the term 'Callee Saved Registers' refer to?
Callee Saved Registers are those that the callee must preserve and restore if modified.
What is the effect of the instruction 'MOVS r0, #1'?
It moves the immediate value 1 into register r0.
How does the ARM architecture handle function return values larger than 32 bits?
For return values larger than 32 bits, the values are returned in multiple registers (e.g., r0:r1 for 64-bit).