Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ##### Addressing modes in `mov`, and their C version
- _Aaddressing modes (immediate, register, memory)_ used with the `mov` assembly instruction. Here we use `movl` ("move long") for a 32-bit word.
- _**Note:** cannot move memory-to-memory, need two instructions._
- <table>
- <tr>
- <th rowspan="7">movl</th>
- <th>Src</th>
- <th>Dest</th>
- <th>Src, Dest</th>
- <th>C version</th>
- </tr>
- <tr>
- <td rowspan="2">Imm</td>
- <td>Reg</td>
- <td>movl $0x4,%eax</td>
- <td>x = 0x4;</td>
- </tr>
- <tr>
- <td>Mem</td>
- <td>movl $-5,(%eax)</td>
- <td>*px = -5;</td>
- </tr>
- <tr>
- <td rowspan="2">Reg</td>
- <td>Reg</td>
- <td>movl %eax,%edx</td>
- <td>x = y;</td>
- </tr>
- <tr>
- <td>Mem</td>
- <td>movl %eax,(%edx)</td>
- <td>*px = y;</td>
- </tr>
- <tr>
- <td rowspan="2">Mem</td>
- <td rowspan="2">Mem</td>
- <td rowspan="2">movl (%eax),%edx</td>
- <td rowspan="2">y = *px;</td>
- </tr>
- <tr>
- </tr>
- </table>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement