<aside>
💡 Notion Tip: 汇编笔记.
</aside>
参考
基础
- BYTE占用1个字节(8 bit)内存,WORD占用2个字节(16 bit)内存,DWORD占用4个字节(32bit)内存、QWORD占用8个字节(64 bit)内存
- EAX(累加),常用于四则运法以及一些格式化指令
- EBX(基址寄存),常用于存储起始内存地址
- ECX(计数器),用于多种指令的计数器,也存储内存数据的地址偏移
- EBP,ESP
- esp是堆栈指针
- ebp是基址指针
- 指针寄存器(Pointer Register),主要用于存放堆栈内存储单元的偏移量,用它们可实现多种存储器操作数的寻址方式,为以不同的地址形式访问存储单元提供方便
- EFLAGS(辅助寄存器)
- EDI(destination index),常用于字符串指令,指向目标字符串
- EIP寄存器,无法被直接赋值或者读取
- 寄存器指向内存有写入权限的
基本语法
- MOV赋值
MOV R0,R1
- 把R1的值赋值给R0,即
R0 = R1
- MOV获取变量地址上存储的值
- SUB减法
SUB R0,R1,#5
- 即
R0 = R1 - 5
SUB R0,R1,R2
- 同一条指令中,A和B不能同时是内存值
- ADD加法
ADD R0,R1,#5
- 即
R0 = R1 + 5
ADD R0,R1,R2