2024-12-24 18:50:1376浏览
通俗易懂的解释 x86 汇编的常用指令
指令 --- 含义 --- 解释
- MOV --- 将数据从源操作数移动到目标操作数 --- 把一个东西从一个地方搬到另一个地方。
- ADD --- 将两个操作数相加,结果存储到目标操作数 --- 做加法运算,比如把两个数字相加并存起来。
- SUB --- 将目标操作数减去源操作数的值 --- 做减法运算,比如从一个数字中减去另一个数字。
- MUL --- 无符号乘法运算 --- 把两个数相乘,结果保存到特殊寄存器里。
- DIV --- 无符号除法运算 --- 把一个数除以另一个数,得到商和余数。
- INC --- 将操作数加 1 --- 数字加 1,相当于自增操作。
- DEC --- 将操作数减 1 --- 数字减 1,相当于自减操作。
- CMP --- 比较两个操作数 --- 比较两个值的大小,相当于看它们是相等、大于还是小于。
- JMP --- 无条件跳转到指定地址 --- 不管条件如何,直接跳到某个代码位置继续执行。
- JE --- 如果相等,则跳转 --- 如果比较结果是相等,就跳到指定位置执行代码。
- JNE --- 如果不相等,则跳转 --- 如果比较结果是不相等,就跳到指定位置执行代码。
- JL --- 如果小于,则跳转 --- 如果前面的值比后面的值小,就跳到指定位置执行代码。
- JG --- 如果大于,则跳转 --- 如果前面的值比后面的值大,就跳到指定位置执行代码。
- PUSH --- 将数据压入栈 --- 把一个东西压到栈里,相当于存放到盒子里等待以后用。
- POP --- 将数据从栈中弹出 --- 从栈里取出之前存放的东西。
- CALL --- 调用子程序 --- 跳到某个子程序执行任务,执行完后返回原位置继续执行。
- RET --- 从子程序返回 --- 从子程序返回到调用它的位置继续执行。
- NOP --- 空操作,不执行任何动作 --- 什么也不干,只是占位用。
- LEA --- 计算内存地址并加载到寄存器 --- 计算内存地址并保存起来,适合指针计算和数组操作。
- INT --- 触发一个中断 --- 通知处理器暂停当前工作,执行特殊任务(比如输入/输出操作)。
- AND --- 按位与运算 --- 两个数按位比较,只有两个都是1时结果才是1,类似布尔运算中的“与”。
- OR --- 按位或运算 --- 两个数按位比较,只要有一个是1结果就是1,类似布尔运算中的“或”。
- XOR --- 按位异或运算 --- 两个数按位比较,相同为0,不同为1,经常用来清零或反转特定位。
- SHL --- 左移位操作 --- 把二进制位整体往左移动,相当于乘以2的倍数。
- SHR --- 右移位操作 --- 把二进制位整体往右移动,相当于除以2的倍数。
- TEST --- 按位与测试 --- 检查某些位是否为1,但不存储结果,只影响标志位,用于条件判断。
- LOOP --- 循环指令,重复执行指定次数 --- 重复执行某段代码,直到计数器变为0时停止。
- XCHG --- 交换两个操作数的值 --- 交换两个变量的值,相当于变量互换操作。
- IN --- 从端口读取数据 --- 从外部设备或端口获取数据,比如读取键盘输入或传感器信息。
- OUT --- 向端口写入数据 --- 向外部设备或端口发送数据,比如输出到显示器或控制电机。
问题反馈