`
dafei2599
  • 浏览: 25008 次
  • 性别: Icon_minigender_1
  • 来自: 现在沈阳
社区版块
存档分类
最新评论

汇编指令

 
阅读更多
它们在存贮器和寄存器、寄存器和输入输出端口之间传送数据.
    1. 通用数据传送指令.
        MOV    传送字或字节.
        MOVSX  先符号扩展,再传送.
        MOVZX  先零扩展,再传送.
        PUSH    把字压入堆栈.
        POP    把字弹出堆栈.
        PUSHA  把AX,CX,DX,BX,SP,BP,SI,DI依次压入堆栈.
        POPA    把DI,SI,BP,SP,BX,DX,CX,AX依次弹出堆栈.
        PUSHAD  把EAX,ECX,EDX,EBX,ESP,EBP,ESI,EDI依次压入堆栈.
        POPAD  把EDI,ESI,EBP,ESP,EBX,EDX,ECX,EAX依次弹出堆栈.
        BSWAP  交换32位寄存器里字节的顺序
        XCHG    交换字或字节.( 至少有一个操作数为寄存器,段寄存器不可作为操作数)
        CMPXCHG 比较并交换操作数.( 第二个操作数必须为累加器AL/AX/EAX )
        XADD    先交换再累加.( 结果在第一个操作数里 )
        XLAT    字节查表转换.
                ── BX 指向一张 256 字节的表的起点, AL 为表的索引值 (0-255,即
                0-FFH); 返回 AL 为查表结果. ( [BX+AL]->AL )
    2. 输入输出端口传送指令.
        IN      I/O端口输入. ( 语法: IN 累加器, {端口号│DX} )
        OUT    I/O端口输出. ( 语法: OUT {端口号│DX},累加器 )
          输入输出端口由立即方式指定时, 其范围是 0-255; 由寄存器 DX 指定时,
          其范围是 0-65535.
    3. 目的地址传送指令.
        LEA    装入有效地址.
          例: LEA DX,string  ;把偏移地址存到DX.
        LDS    传送目标指针,把指针内容装入DS.
          例: LDS SI,string  ;把段地址:偏移地址存到DS:SI.
        LES    传送目标指针,把指针内容装入ES.
          例: LES DI,string  ;把段地址:偏移地址存到ES:DI.
        LFS    传送目标指针,把指针内容装入FS.
          例: LFS DI,string  ;把段地址:偏移地址存到FS:DI.
        LGS    传送目标指针,把指针内容装入GS.
          例: LGS DI,string  ;把段地址:偏移地址存到GS:DI.
        LSS    传送目标指针,把指针内容装入SS.
          例: LSS DI,string  ;把段地址:偏移地址存到SS:DI.
    4. 标志传送指令.
        LAHF    标志寄存器传送,把标志装入AH.
        SAHF    标志寄存器传送,把AH内容装入标志寄存器.
        PUSHF  标志入栈.
        POPF    标志出栈.
        PUSHD  32位标志入栈.
        POPD    32位标志出栈.

二、算术运算指令
───────────────────────────────────────
          ADD    加法.
        ADC    带进位加法.
        INC    加 1.
        AAA    加法的ASCII码调整.
        DAA    加法的十进制调整.
        SUB    减法.
        SBB    带借位减法.
        DEC    减 1.
        NEC    求反(以 0 减之).
        CMP    比较.(两操作数作减法,仅修改标志位,不回送结果).
        AAS    减法的ASCII码调整.
        DAS    减法的十进制调整.
        MUL    无符号乘法.
        IMUL    整数乘法.
          以上两条,结果回送AH和AL(字节运算),或DX和AX(字运算),
        AAM    乘法的ASCII码调整.
        DIV    无符号除法.
        IDIV    整数除法.
          以上两条,结果回送:
              商回送AL,余数回送AH, (字节运算);
          或  商回送AX,余数回送DX, (字运算).
        AAD    除法的ASCII码调整.
        CBW    字节转换为字. (把AL中字节的符号扩展到AH中去)
        CWD    字转换为双字. (把AX中的字的符号扩展到DX中去)
        CWDE    字转换为双字. (把AX中的字符号扩展到EAX中去)
        CDQ    双字扩展.    (把EAX中的字的符号扩展到EDX中去)

三、逻辑运算指令
───────────────────────────────────────
          AND    与运算.
        OR      或运算.
        XOR    异或运算.
        NOT    取反.
        TEST    测试.(两操作数作与运算,仅修改标志位,不回送结果).
        SHL    逻辑左移.
        SAL    算术左移.(=SHL)
        SHR    逻辑右移.
        SAR    算术右移.(=SHR)
        ROL    循环左移.
        ROR    循环右移.
        RCL    通过进位的循环左移.
        RCR    通过进位的循环右移.
          以上八种移位指令,其移位次数可达255次.
              移位一次时, 可直接用操作码.  如 SHL AX,1.
              移位>1次时, 则由寄存器CL给出移位次数.
                如  MOV CL,04
                    SHL AX,CL

四、串指令
───────────────────────────────────────
             DS:SI  源串段寄存器  :源串变址.
            ES:DI  目标串段寄存器:目标串变址.
            CX      重复次数计数器.
            AL/AX  扫描值.
            D标志  0表示重复操作中SI和DI应自动增量; 1表示应自动减量.
            Z标志  用来控制扫描或比较操作的结束.
        MOVS    串传送.
            ( MOVSB  传送字符.    MOVSW  传送字.    MOVSD  传送双字. )
        CMPS    串比较.
            ( CMPSB  比较字符.    CMPSW  比较字. )
        SCAS    串扫描.
            把AL或AX的内容与目标串作比较,比较结果反映在标志位.
        LODS    装入串.
            把源串中的元素(字或字节)逐一装入AL或AX中.
            ( LODSB  传送字符.    LODSW  传送字.    LODSD  传送双字. )
        STOS    保存串.
            是LODS的逆过程.
        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>条件转移指令 (短转移,-128到+127的距离内)
        ( 当且仅当(SF XOR OF)=1时,OP1<OP2 )
        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    中断返回
    5>处理器控制指令
        HLT    处理器暂停, 直到出现中断或复位信号才继续.
        WAIT    当芯片引线TEST为高电平时使CPU进入等待状态.
        ESC    转换到外处理器.
        LOCK    封锁总线.
        NOP    空操作.
        STC    置进位标志位.
        CLC    清进位标志位.
        CMC    进位标志取反.
        STD    置方向标志位.
        CLD    清方向标志位.
        STI    置中断允许位.
        CLI    清中断允许位.

六、伪指令
───────────────────────────────────────
          DW      定义字(2字节).
        PROC    定义过程.
        ENDP    过程结束.
        SEGMENT 定义段.
        ASSUME  建立段寄存器寻址.
        ENDS    段结束.
        END    程序结束.
分享到:
评论

相关推荐

    汇编指令查询器,汇编指令搜索器

    "汇编指令查询器"和"汇编指令搜索器"是为程序员和计算机科学爱好者设计的工具,帮助他们查找、理解和使用不同的汇编指令。 1. **汇编指令的基本概念**: - 指令集架构(ISA):每种处理器都有其独特的指令集,汇编...

    汇编指令查询器 汇编指令查询器

    汇编指令查询器是一款工具,帮助程序员和计算机科学学习者快速查找并理解各种汇编指令的含义和用法。 汇编语言的核心在于它的指令集,通常包括数据处理、算术运算、逻辑操作、转移控制、输入输出等类别。下面将详细...

    STM8 指令合集_个人整理_STM8汇编指令整理_stm8s汇编指令_

    本文将深入探讨STM8S汇编指令的详细信息。 STM8S汇编指令集包含了多种类型的指令,这些指令可以分为以下几类: 1. 数据处理指令:这类指令主要用于处理数据,如加法(ADD)、减法(SUB)、乘法(MUL)、除法(DIV...

    RH850 D1汇编指令

    ### RH850 D1汇编指令解析与应用 #### 概述 RH850 D1汇编指令是针对瑞萨电子(Renesas Electronics)RH850系列微控制器的一种低级编程语言。该系列微控制器因其高性能、低功耗及广泛的应用范围,在汽车电子、工业...

    汇编指令查询工具 (收录了汇编指令大全)

    《汇编指令查询工具——深入理解与应用》 汇编语言是计算机科学的基础之一,它是一种低级编程语言,直接对应于机器指令。对于计算机硬件的直接操作,汇编指令起着至关重要的作用。本文将围绕"汇编指令查询工具"进行...

    汇编指令学习电子书CHM

    《汇编指令学习电子书CHM》是一本深入解析汇编语言指令的资源,适合对计算机底层原理感兴趣的读者,特别是那些希望通过掌握汇编语言提升编程技能的程序员。CHM(Compiled Help Manual)格式是微软开发的帮助文档格式...

    汇编指令助手 汇编指令查询器 V1 1

    1、本程序收集了非常全面的汇编指令,以及指令说明介绍提供给学者学习。 2、集状态寄存器、直接标志转移、间接标志转移、汇编简介等汇编学习资料。 3、用户或提供汇编资料到汇编指令查询软件,官方会在新版本增加...

    ARM-汇编指令集-PDF版

    ARM汇编指令集是ARM架构微处理器编程的基础,它包含了用于控制和操作ARM处理器的一系列指令。ARM(Advanced RISC Machines)处理器以其高效、低成本和低能耗的特点,在嵌入式系统、消费电子、多媒体处理、数字信号...

    DSP C6000系列 常用汇编指令大全

    "DSP C6000系列常用汇编指令大全" DSP C6000系列常用汇编指令大全是面向DSP C6000系列芯片的汇编指令大全,旨在供大家在编写汇编时进行参考,特别是在CCS中编C与汇编混合编程时。该文档包含了DSP C6000系列芯片的...

    汇编指令查询器(包含所有汇编指令)

    "汇编指令查询器"工具正是为解决这一问题而设计的,它集成了所有的汇编指令,方便开发者随时查询和理解。 汇编指令查询器的核心功能在于提供详尽的指令解释和实例。每条汇编指令都有其特定的功能,例如,`MOV`指令...

    ARM汇编指令集详解

    ARM汇编指令集是嵌入式系统开发中的基础,它是一种低级编程语言,用于直接控制计算机硬件。本文将深入探讨ARM汇编指令集的主要概念、语法和常见指令,帮助你更好地理解和应用这一关键技术。 首先,理解ARM架构是至...

    汇编指令使用规则 汇编指令使用规则

    汇编指令的使用规则是编程者必须理解和掌握的关键知识,因为它们直接影响到程序的执行效率和正确性。以下是对汇编指令使用规则的详细说明: 1. **指令格式**:汇编指令通常由操作码(Opcode)和操作数(Operand)...

    汇编指令查询器-汇编指令查询工具

    《汇编指令查询器——揭开汇编语言的神秘面纱》 在计算机科学的世界里,汇编语言是一种底层编程语言,它与机器语言紧密相连,是程序员与硬件直接沟通的桥梁。汇编指令查询工具,如"汇编指令查询器",是学习和理解...

    瑞萨MCU的汇编指令手册

    根据给定的文件信息,我们将深入探讨瑞萨MCU(微控制器)的汇编指令手册,这是一份针对RENESAS 16位单片微型计算机M16C/60、M16C/20和M16C/Tiny系列的软件手册。这份手册不仅提供了对汇编语言指令集的全面概述,还...

    汇编指令大全+很全的汇编指令.pdf

    《汇编指令大全+很全的汇编指令.pdf》是一份详尽的汇编语言学习资料,旨在帮助读者深入理解并快速掌握汇编语言的基本概念和指令系统。汇编语言,作为计算机科学的基础,是直接对应机器语言的一种编程语言,每一个...

    查看运行代码的汇编指令的工具

    汇编指令是计算机能够直接理解的低级指令集,每一条汇编指令对应一个或多个机器码。对于开发者来说,了解代码在执行时转化为的汇编指令有助于优化性能、调试问题以及深入理解计算机的工作原理。在Java这种高级语言中...

    Intel x86 &amp; x64 汇编指令集(共七卷)

    ### Intel x86 & x64 汇编指令集概览 #### 一、概述 《Intel x86 & x64 汇编指令集(共七卷)》是一套全面介绍Intel架构下的汇编语言编程技术的文档资料。它由英特尔公司发布,包含了Intel 64和IA-32架构的软件...

    汇编语言指令大全 X86和X87汇编指令大全(带注释).zip

    《汇编语言指令大全 X86和X87汇编指令大全(带注释)》是一份详尽的参考资料,涵盖了X86和X87架构下的汇编语言指令集。汇编语言是计算机硬件与高级编程语言之间的桥梁,直接对应机器码,对于理解计算机底层工作原理...

    汇编指令编程 C语言编程

    汇编指令编程 C 语言编程 本实验旨在掌握 ARM 汇编指令编程和 Thumb 汇编指令编程,通过两个部分的实验来完成。 实验 A 部分:ARM 汇编指令编程 在这个实验中,我们将学习如何使用 ARM 汇编指令编程来编写一个...

Global site tag (gtag.js) - Google Analytics