The addq a,b
instruction adds the contents of a
to b
. So if rcx = 0x1
, rax = 0x100
and we have 0xff
at address 0x100
, then add %rcx,(%rax)
adds 0x1
in rcx
to 0xff
at address 0x100
, yielding 0x100
at address 0x100
as the worksheet correctly indicates.
Your intuition would be correct if the instruction was movq
instead of addq
as movq
just overwrites a memory location or register instead of adding to it.
Related Posts:
- What’s the purpose of the LEA instruction?
- Understanding cmp instruction
- assembly “mov” instruction
- Why shift a bit using sll and such in MIPs Assembly?
- Assembly code vs Machine code vs Object code?
- Understanding how `lw` and `sw` actually work in a MIPS program
- What does the MOVZBL instruction do in IA-32 AT&T syntax?
- What’s the purpose of the LEA instruction?
- How to move ST(0) to EAX?
- The point of test %eax %eax
- Assembly: How does fld st(0) duplicates the top stack value in the following code?
- What does the MOVZBL instruction do in IA-32 AT&T syntax?
- What’s the purpose of the LEA instruction?
- The difference between cmpl and cmp
- x86 cmpl and jne
- MIPS: lw (load word) instruction
- What is the meaning of XOR in x86 assembly?
- What is the function of the push / pop instructions used on registers in x86 assembly?
- What is callq instruction?
- What does the BEQ instruction do exactly?
- What’s the size of a QWORD on a 64-bit machine?
- MIPS assembly for a simple for loop
- mips .word function and differences between 2 codes
- Why doesn’t there exists a subi opcode for MIPS?
- Purpose of ESI & EDI registers?
- What are the ESP and the EBP registers?
- IDIV operation in assembly (understanding)
- Convert C program into assembly code
- LC3 LEA instruction and the value stored
- What exactly does the lb instruction do?
- lc3 LDR instruction and the value stored
- What is the difference between la and li in opcodes in MIPS?
- What does movslq do?
- Assembly language je jump function
- What are .S files?
- explanation about push ebp and pop ebp instruction in assembly
- Why are rbp and rsp called general purpose registers?
- what is the use of ori in this part of MIPS code?
- Storing a user’s input in MIPS
- x86 assembly: How does the ‘subl’ command work in AT&T syntax
- what does the cmpq instruction do?
- Integer absolute value in MIPS?
- Purpose of ESI & EDI registers?
- MIPS Assembly – lui $t0, 4097?
- Bubble sort on array on Assembly Language
- Nasm Error: invalid combination of opcode and operands
- Greater than, less than equal, greater than equal in MIPS
- When and why do we sign extend and use cdq with mul/div?
- MIPS program jr $ra instructions and stack handling
- How do AX, AH, AL map onto EAX?
- Subtract two input numbers
- writing functions in assembler
- Assembly language (MIPS) difference betweent addi and add
- pop or add esp, 4 ? What is the difference?
- What is the difference between MOV and LEA?
- MIPS Address out of range (MARS)
- Difference between “addi” and “add” for pseudoinstruction “move” in MIPS?
- `testl` eax against eax?
- sorting array in mips (assembly)
- Difference between JE/JNE and JZ/JNZ
- what is a file handle and where it is useful for a programmer?
- Printing out a number in assembly language?
- How does `Skipcond` work in the MARIE assembly language?
- What are callee and caller saved registers?
- Multiplication by a power of 2 using Logical shifts in MIPS assembly
- What does `dword ptr` mean?
- Difference between JA and JG in assembly
- MIPS instruction and machine code
- Convert from Java to MIPS
- what does the the dword operand do in assembly
- Understanding Assembly MIPS .ALIGN and Memory Addressing
- What’s the difference between a word and byte?
- Difference between movq and movabsq in x86-64
- What is the jmpq command doing in this example
- What does the LEAL assembly instruction do?
- Assembly – JZ instruction after CMP
- [Binary Bomb – Phase 4
- What does bx lr do in ARM assembly language?
- Is it possible to “decompile” a Windows .exe? Or at least view the Assembly?
- need help understanding the movzbl call in this function
- ARM Assembler – How do I use CMP, BLT and BGT?
- C to assembly – leaq instruction
- Difference between JA and JG in assembly
- what does .space do in mips?
- Display value found at given address gdb
- Understanding %rip register in intel assembly
- movq assembly function
- Bubble sort algorithm in MIPS
- How do I correctly use the mod operator in MIPS?
- x86 Assembly pointers
- Difference between “move” and “li” in MIPS assembly language
- Which variable size to use (db, dw, dd) with x86 assembly?
- Assembly x86 – “leave” Instruction
- How can one see content of stack with GDB?
- Assembly – JG/JNLE/JL/JNGE after CMP
- JNZ & CMP Assembly Instructions
- X86 assembly – Handling the IDIV instruction
- How do I compile the asm generated by GCC?
- error A2022: instruction operands must be the same size
- MIPS to C Translation