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 |
|
|