zoukankan      html  css  js  c++  java
  • 汇编学习笔记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

  • 相关阅读:
    web 小知识
    有关Windows上启动java -jar的脚本
    常用工具类
    解决Failed to start connector [Connector[HTTP/1.1-xxxx]]
    破解一号店的心得
    eclipse中有关版本控制工具的使用
    Bilibili_解析ProtoBuf格式的弹幕
    学校平台的模拟登录和相关操作
    雨课堂模拟登录_获取websocket数据
    学堂在线视频字幕抓取2_油猴脚本编写
  • 原文地址:https://www.cnblogs.com/hailong/p/1896167.html
Copyright © 2011-2022 走看看