1.2 KiB
Day 1: C & Reverse Engineering Anki Cards
Card 1
Front: In x64 Assembly, what does DWORD PTR indicate about the size of the data?
Back: It indicates a 32-bit (4-byte) value, typically used for an int in C.
Card 2
Front: Translate the C code int x = 10; into a conceptual x64 assembly instruction.
Back: mov DWORD PTR [rbp-offset], 0xa
Card 3
Front: Why can't a CPU usually add two memory locations directly (e.g., add [mem1], [mem2])?
Back: Architecture constraints. It must follow the Load-Modify-Store pattern: move values into registers, perform the addition, and store the result back.
Card 4
Front: What is the relationship between RAX and EAX?
Back: EAX is the lower 32-bit half of the 64-bit RAX register.
Card 5
Front: Match the C type to its Assembly size prefix:
charshortintBack:BYTE PTR(1 byte)WORD PTR(2 bytes)DWORD PTR(4 bytes)
Card 6
Front: What does the RBP register represent in the context of local variables?
Back: The Base Pointer. It serves as a fixed reference point on the stack from which local variables are accessed via offsets (e.g., [rbp-4]).