Term
|
Definition
| this is the association of a variable name with a storage location. This can be a register or main memory location. |
|
|
Term
| What is static allocation? |
|
Definition
| It is when binding happens at compile time |
|
|
Term
| What is dynamic allocation? |
|
Definition
| It is when binding happens at run-time |
|
|
Term
|
Definition
| It defines the range of the variable's visibility or accessibility within a program |
|
|
Term
|
Definition
As programs runs variables will come into existence, be used for a while and go away. The memory can be reallocated to new variables as the program executes. Memory "leaks" happen when memory that is no longer required is not released properly. Too many memory leaks leads to not having enough memory to run the program efficiently. The CPU and OS has to assume you need that memory and manages it that way.
[pare this down once the concept becomes clearer] |
|
|
Term
| What is an activation record? |
|
Definition
A data structure that contains all the information necessary to execute a procedure (function, class or method). This allocation is done at runtime used for languages that uses dynamic data storage Also called a frame |
|
|
Term
|
Definition
| always points to the top of the stack and is not effected when activation records are created or freed |
|
|
Term
|
Definition
| is specific to a created frame (activation record) and point to the address of the base of the current stack frame. |
|
|
Term
| What does it mean if a function is reentrant? |
|
Definition
| It means that multiple invocations can run safely concurrently |
|
|
Term
| What does it mean if a function is recursive? |
|
Definition
|
|
Term
| What does an activation record/stack frame typically contain? |
|
Definition
1. parameters 2. local variables 3. return address 4. Temporary data 5. Control link 6. dynamic link 7. return value |
|
|
Term
| What is Return-oriented programming (ROP)? |
|
Definition
| It's a type of attack where the hacker manipulates the call stack. Could overwrite the return address to point it to devious code |
|
|
Term
| How does a Pointer Authentication Code work? |
|
Definition
| It is added to the upper bits of the register and before returning, it is authenticated. If the check fails, an exception is generated |
|
|
Term
|
Definition
| Allows full read-write access to the CPSR |
|
|
Term
|
Definition
| It is an arm that has a shortened bus |
|
|
Term
|
Definition
| It is cheaper to buy, memory is cheaper, and I/O devices are cheaper |
|
|
Term
| What code is necessary to convert regular ARM to Thumb? |
|
Definition
1. LDR r0, =Thumb + 1 2. Bx 0 3. .code 16 4. Thumb: |
|
|
Term
| What are some of the architectural differences between regular ARM and thumb? |
|
Definition
1. Word is 2 bytes instead of 4 bytes 2. Registers: r0-r7 are directly mapped to the thumb state 3. No conditional execution 4. No shifted second operand 5. S suffix is dropped 6. Conditional branch- 8 bit offset, unconditional- 11 bit offset |
|
|