• 汇编学习笔记8


    第八讲..由于前天把第7讲又听了一遍,昨天是第8讲.第7讲用了两天才听完.

    第8讲继续讲述指令.

    在第7讲里讲了三个指令(5个)

    MOV

    XCHG

    LEA, LDS, LES

    它们各有各的限制.

    MOV, 源操作数和目的操作数不能都是存储单元,目的操作数不能是立即数,源操作数和目的操作数不能都是段寄存器,立即数不能作为目的操作数,代码段不能作为目的操作数,IP不能作为操作数。

    XCHG,指令只能用于通用寄存器和存储单元之间,或通用寄存器之间交换数据。

    LEA,LED,LES 地址传送指令,源操作数可以使用除立即数寻址和寄存器外的其它寻址方式。目的操作数可以是通用寄存器。

    第8讲讲述了两个堆栈操作的指令和几个标志位操作。其中标志位操作不做重点。

    1. PUSH   把数据压入堆栈指针寄存器中。先把BP - 2, 然后把操作数存入BP。操作数可以是通用寄存器,存储单元,段寄存器。

    2. POP     把数据从堆栈指针寄存器中弹出。先把BP取出送入操作数,然后把 BP + 2。操作数可以是通用寄存器,存储单元,段寄存器,不能是代码段。

    3. LAHF    把标志位低8位的标志位送入寄存器AH中。不影响其它位。

    4. SAHF    把AH寄存器送入标志位低8位。不影响其他位。

    5. PUSHF  把标志位压入堆栈。

    6. POPF    把栈顶数据弹出到标志位。

    由此,将两个数据交换的方法有三种。

    1.由中间寄存器

    MOV BX, AX

    MOV AX, DS

    MOV DS, BX

    2.由XCHG

    XCHG AX, VALUE

    3.使用堆栈

    PUSH DS

    PUSH ES

    POP ES

    POP DS

  • 相关阅读:
    [IDEs]Eclipse For Mac , 常用快捷键
    Songs
    [Android学习笔记]扩展application
    [Android学习笔记]Context简单理解
    Activity组件的生命周期
    [数据结构和算法]快速排序笔记
    关于项目团队管理的几点思考
    【转】一步步教你读懂NET中IL(图文详解)
    【札记】设计的五个原则
    【转】高并发情况下的单例模式
  • 原文地址:https://www.cnblogs.com/hailong/p/1896167.html
Copyright © 2020-2023  润新知