目录
通用寄存器:
EAX:累加寄存器,是很多加法乘法指令的缺省寄存器
EBX:基地址寄存器,在内存寻址时存放基地址
ECX:计数器
EDX:数据寄存器,被用于来放整数除法产生的余数
变址寄存器
标志位寄存器
常用汇编语言
通用寄存器:
-
EAX:累加寄存器,是很多加法乘法指令的缺省寄存器
mov eax,dword ptr[ebp-4] add eax,1 mov dword ptr[ebp-4],eax
-
EBX:基地址寄存器,在内存寻址时存放基地址
mov dword ptr[ebp+8],eax
-
ECX:计数器
mov ecx,0Ah label: add eax,edx loop label
-
EDX:数据寄存器,被用于来放整数除法产生的余数
mov ebx,10h div ebx
变址寄存器
-
ESI:源变址寄存器
EDI:目的变址寄存器
指针变址寄存器
EBP:扩展基址指针寄存器,EBP来存储当前函数状态的基地址,在函数运行时不变,可以用来索引|确定函数参数或局部变量 的位置。(较常用)
ESP:栈指针寄存器,ESP用来存储函数调用栈的栈顶地址,在压栈和退栈时 发生变化。(较常用)
EIP:指令指针寄存器,EIP用来存储即将执行的程序指令的地址, cpu依照EIP的存储内容读取指令并执行,EIP 随之指向相 邻的下一条指令,如此反复,程序就得以连续执行指令。(较常用)标志位寄存器
-
ZP:是0返回1,否则0.常用汇编语言
-
JMP:无条件跳转JZ:条件跳转
Call:函数调用
NEG:取反指令(数值上)
NOT:逻辑非
SUB:减法指令
LEA:取地址
TEST:测试数值
CMP:比较数值
-
demo
#include<stdio.h> int main() {int a = 1;int b = 2;int c = 3;__asm{mov eax,amov ebx,badd eax,ebxmov c,eax}printf("a + b =%d\n",c);return 0; }