X86-64 汇编语言知识详解与编程入门
1. 操作数类型
操作数主要有三种基本类型:立即数、寄存器和内存。
- 立即数操作数 :是显式编码的常量值。
- 寄存器操作数 :是通用寄存器或 SIMD 寄存器中的值。
- 内存操作数 :指定内存中的一个位置,该位置可以包含之前描述的任何数据类型。大多数指令可以为源操作数或目的操作数指定一个内存位置,但不能同时为两者指定。
以下是不同操作数类型的指令示例及对应的类似 C++ 语句:
| 类型 | 示例 | 类似的 C++ 语句 |
| — | — | — |
| 立即数 | mov rax,42 | rax = 42 |
| 立即数 | imul r12,-47 | r12 = -47 |
| 立即数 | shl r15,8 | r15 <<= 8 |
| 立即数 | xor ecx,80000000h | ecx ^= 0x80000000 |
| 立即数 | sub r9b,14 | r9b -= 14 |
| 寄存器 | mov rax,rbx | rax = rbx |
| 寄存器 | add rbx,r10 | rbx += r10 |
| 寄存器 | mul rbx | rdx:rax = rax * rbx |
| 寄存器 | and r8w,0ff00h | r8w &= 0xff00 |
| 内存 | mov rax,[r13] | rax =
订阅专栏 解锁全文
2414

被折叠的 条评论
为什么被折叠?



