•
•[b] := [b] + [a]
•
•“a” and “b” mean locations (addresses) “a”
and “b”, names of locations (addresses) 0000000000404000 and 0000000000404008. [a] and [b] mean contents
at the adresses “a” and “b”, simply some numbers
•
•In C language we write:
•
• b = b +
a;
•
•In assembly language we use instruction add
•
•We cannot use both memory addresses in one
step (instruction): add [b],
[a]
• We can only use add [b], register
•
• Here register is like a temporary memory cell:
•
• register :=
[a]
• [b] := [b]
+ register
•
•In assembly language we write:
•
• mov rax,
[a]
• add [b],
rax
•
•In WinDbg disassembly output we see:
•
• mov rax,[ArithmeticProject!a
(0000000000404000)]
• add [ArithmeticProject!b
(0000000000404008)],rax