NASM汇编_nasm标准

NASM汇编_nasm标准操作指令MOV  dst,src 把src的内容复制到dst中,操作字长由参数字长决定push   把参数入栈pop     从栈顶弹出数据,存入给定参数中PUSHA把AX,CX,DX,BX,SP,BP,SI,DI依次压入堆栈.(在不同模式下面,对应不同的寄存器,如32bit模式,对应32位寄存器)POPA   把DI,SI,BP,SP,BX,DX,C

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

操作指令

MOV   dst, src   把src 的内容 复制到 dst中,操作字长由参数字长决定

push    把参数入栈

pop      从栈顶弹出数据,存入给定参数中

PUSHA 把AX,CX,DX,BX,SP,BP,SI,DI依次压入堆栈.(在不同模式下面,对应不同的寄存器,如32bit模式,对应32位寄存器)

POPA    把DI,SI,BP,SP,BX,DX,CX,AX依次弹出堆栈. (同上)

cmp   arg1, arg2   比较两个参数的大小(arg1 – arg2), 根据结果修改标志位

xchg   arg1, arg2  交换两个参数的内容

算术指令

add   dst,  src      加法,dst = dst + src

sub   arg1, arg2  减法,arg1 = arg1 – arg2

字符串指令

DS:SI 源串段寄存器 :源串变址.
ES:DI 目标串段寄存器:目标串变址

CX 重复次数计数器.
AL/AX 扫描值

SCASB 串扫描.  把AL的内容与目标串作比较(AL –  [ES:DI]),比较结果反映在标志位.

LODS 装入串. 把源串中的元素(字或字节)逐一装入AL或AX,EAX中. ( LODSB 传送字符. LODSW 传送字. LODSD 传送双字. )

STOS 保存串.  LODS的逆过程。把AL或AX或EAX中的数据装入目标串中。(STOSB, STOSW, STOSD)

REP 当CX/ECX<>0时重复

REPE/REPZ 当ZF=1或比较结果相等,且CX/ECX<>0时重复

REPNE/REPNZ 当ZF=0或比较结果不相等,且CX/ECX<>0时重复.

REPC 当CF=1且CX/ECX<>0时重复.

REPNC 当CF=0且CX/ECX<>0时重复

程序转移指令

1. 无条件转移指令

JMP 无条件转移指令

CALL 过程调用

RET/RETF过程返回.

2. 条件转移指令

JA/JNBE 大于时转移.

JAE/JNB 大于或等于转移.

JB/JNAE 小于转移.

JBE/JNA 小于或等于转移.

以上四条,测试无符号整数运算的结果(标志C和Z).

JG/JNLE 大于转移.

JGE/JNL 大于或等于转移.

JL/JNGE 小于转移.

JLE/JNG 小于或等于转移.

以上四条,测试带符号整数运算的结果(标志S,O和Z).

JE/JZ 等于转移.

JNE/JNZ 不等于时转移.

JC 有进位时转移.

JNC 无进位时转移.

JNO 不溢出时转移.

JNP/JPO 奇偶性为奇数时转移.

JNS 符号位为 “0” 时转移.

JO 溢出转移.

JP/JPE 奇偶性为偶数时转移.

JS 符号位为 “1” 时转移.

3. 循环控制指令(短转移)

LOOP CX不为零时循环.

LOOPE/LOOPZ CX不为零且标志Z=1时循环.

LOOPNE/LOOPNZ CX不为零且标志Z=0时循环.

JCXZ CX为零时转移.

JECXZ ECX为零时转移.

4. 中断指令

INT 中断指令

INTO 溢出中断

IRET 中断返回

处理机控制指令

标志处理指令 CLC(进位位置0指令)

CMC(进位位求反指令)

STC(进位位置为1指令)

CLD(方向标志置1指令)

STD(方向标志位置1指令)

CLI(中断标志置0指令)

STI(中断标志置1指令)

NOP(无操作)

HLT(停机)

WAIT(等待)

ESC(换码)

LOCK(封锁)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/179251.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 通俗解释hash碰撞是什么以及如何解决

    通俗解释hash碰撞是什么以及如何解决Hash如何存数据hash表的本质其实就是数组,hash表中通常存放的是键值对Entry。如下图:这里的学号是个key,哈希表就是根据key值来通过哈希函数计算得到一个值,这个值就是下标值,用来确定这个Entry要存放在哈希表中哪个位置。Hash碰撞hash碰撞指的是,两个不同的值(比如张三、李四的学号)经过hash计算后,得到的hash值相同,后来的李四要放到原来的张三的位置,但是数组的位置已经被张三占了,导致冲突。解决方法hash碰撞的解决方式是开放寻址法和拉..

    2022年6月16日
    28
  • linux下安装apache(httpd-2.4.3版本)各种坑

    linux下安装apache(httpd-2.4.3版本)各种坑

    2020年11月12日
    187
  • 大数阶乘算法

    大数阶乘算法一:精度要求较低的阶乘算法如果只是要求算法的速度,而对精度要求比较低的话可以直接使用,斯特林公式计算n!斯特林公式如下:n!=sqrt(2*PI*n)*(n/e)^n*(1+1/12/n+1/288/n2–139/51840/n3-571/2488320/n4+…)或ln(n!)=0.5*ln(2*PI)+(n+0.5)*ln(n)-n+(1/12/n-1/360

    2022年7月24日
    19
  • python3安装后没有pip_解决Centos7安装python3后pip工具无法使用「建议收藏」

    python3安装后没有pip_解决Centos7安装python3后pip工具无法使用「建议收藏」问题描述:Centos7安装python3,正常流程全部配置完成,python3,pip3的软链接也建立了但是python3可以正常使用,而pip3报错,无法找到文件或目录解决方法:which命令:查找python的路径type命令:也是查找python的路径发现两次命令查询的结果并不一致使用hash-r清除Linux下哈希表中所有缓存,下次再typepython就会去系统环境变量中查找路径,…

    2025年11月26日
    4
  • 计算机设备问题代码43,设备管理器错误代码(代码43)的六种解决方法

    内容一、“由于此设备存在问题,Windows已将其停止(代码43)”),这是问题的原因原因分析:代码43错误是多个设备管理器错误代码之一。当设备管理器停止硬件设备时,会生成此错误,这可能是由硬件设备或设备驱动程序故障引起的。设备管理器错误代码(代码43)的详细信息可以在设备属性的“设备状态”区域中找到。引起问题的设备将在设备中用感叹号标记)设备管理器,如下图所示:有关如何解决此问题的信息,…

    2022年4月4日
    214
  • HDU 1026 Ignatius and the Princess I 迷宫范围内的搜索剪枝问题

    HDU 1026 Ignatius and the Princess I 迷宫范围内的搜索剪枝问题

    2022年1月10日
    24

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号