1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
| mov dest, src ; move src to desc
mov eax, 4 ; 将立即数 (immidiate) 存入到 eax 寄存器中
mov bx, ax ; bx = ax
add eax, 4 ; eax = eax + 4
sub ebx, edi ; ebx = ebx - edi
inc ecx ; ecx++
mov eax, 10
mov ebx, 20
mul ebx ; edx:eax = eax * ebx mul无符号,imul有符号 edx:eax 表示 64 位的值
mov eax, 100
mov ebx, 20
div ebx ; eax = 5 (商), edx = 0 (余数) div无符号,idiv有符号
; lea 将变量的地址加载到寄存器中,大致相当于c中的&q
lea ebx, [eax + ecx * 4]
; 数组索引计算:把eax寄存器中的值加上ecx乘以4(int)的结果,作为数组元素的地址放入ebx寄存器
lea edx, [eax + offsetof(struct_name, member_name)]
; 结构体成员访问:结构体struct_name中成员member_name的偏移量,将内存中的地址存入edx寄存器
lea ecx, [ebp - size]
; 动态内存分配:使用栈帧指针ebp减去size的值,得到内存分配的起始地址,并将结果存入ecx寄存器
|