1) This code reads an integer from input, adds it to a stored address value, then prints both the resulting address and the original address in hexadecimal. 2) Hint: The `$` operator in NASM represents the current assembly position. Consider what value `addr` initially holds. Hint: The instruction `add dword [addr], eax` modifies the 4-byte value stored *at* the memory location `addr`, not the address itself.