Assembly
Stack
Instructions
Architecture
Android
100
[Assembly - 100]
The programming language between Procedural Language and Machine Language.
What is Assembly Language?
100
[ Stack - 100 ]
The entire stack space is filled in. (You're handling too much workload)
What is Stack Overflow?
100
[ Instruction - 100 ]
This instruction shifts the bits to the left. The Carry Flag is set from the MSB and the LSB is set to 0.
What is 'SHL' (Shift Logical Left) or 'SAL' (Shift Arithmetic Left)?
100
[ Architecture - 100 ]
This contains the Registers, ALU, CU, and clock.
What is a CPU / Central Processor Unit?
100
[ Android - 100 ]
The long form of NFC.
What is Near Field Communication?
200
[Assembly - 200]
It is the interface between Hardware layer and Software layer
What is Instruction Set Architecture?
200
[ Stack - 200 ]
This instruction save all 8 registers into the stack.
What is 'PUSHA'?
200
[ Instruction - 200 ]
This instruction will shift everything over, preserving the MSB as the signed bit, set the LSB into the Carry Flag.
What is 'SAR' (Shift Arithmetic Right)?
200
[ Architecture - 200 ]
This is used to synchronize all CPU and BUS operations, as well as triggering events.
What is the clock?
200
[ Android - 200 ]
This allows you to run programs written in C/C++ in Android.
What is Android Native Development Kit (NDK)?
300
[ Assembly - 300 ]
This is the named storage locations inside the CPU that includes EAX, EBX, ECX, EDX, EBP, ESP, ESI, EDI, and others.
What is the 32-bit General Purpose Registers?
300
[ Stack - 300 ]
This instruction restores all 8 registers from the stack.
What is 'POPA'?
300
[ Instruction - 300 ]
These instructions are similar to logical shift, but copies the bit from one end to the other via the Carry Flag.
What is 'ROL' / 'ROR' (Rotate Shifts)?
300
[ Architecture - 300 ]
These are the 'wires' that connect the components with a computer together.
What is the bus?
300
[ Android - 300 ]
This allows Java code to interact with the C/C++ code.
What is JNI (Java Native Interface)?
400
[ Assembly - 400 ]
This section of the assembly program deals with the actual code, and generally declared with '_start' to inform kernel where the execution begins.
What is the section 'text'?
400
[ Stack - 400 ]
This is the memory portion of the stack that stores the first input parameter
What is [EBP + 8]?
400
[ Instruction - 400 ]
This instruction is used to compare two operands, which is then generally proceeded by a jump instruction.
What is 'CMP'?
400
[ Architecture - 400 ]
This is a high-speed expensive static RAM within the CPU. It generally contains the more frequent accessed data.
What is the cache?
400
[ Android - 400 ]
We must declare this in the Android Manifest before we can utilize NFC in our app.
What is Android Permissions?

()
500
[ Assembly - 500 ]
This section is used for declaring variables/allocating space for data that are uninitialized at the start of program
What is the section 'bss'?
500
[ Stack - 500 ]
This is the memory portion of the stack that stores the 2nd local variable.
What is [EBP - 8]?
500
[ Instruction - 500 ]
These instructions executes a syscall to the kernel, after setting the syscall # into the EAX or RAX as well as any parameters into the registers.
What is 'INT' (x86) or 'SYSCALL' (x64)?
500
[ Architecture - 500 ]
This performs arithmetic and bitwise operations.
What is the ALU / Arithmetic Logic Unit?
500
[ Android - 500 ]
These little things can store data, or perform other tasks when its within proximity of a NFC activated device.
What are NFC Tags?
M
e
n
u