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

  • 相关阅读:
    Tomcat
    DOM/SAX/PULL解析XML
    Android网络编程 知识框架
    Chapter 10 Networking/JSON Services
    Chapter 10 Networking/Web Service Using HTTP
    Android-Universal-Image-Loader
    8.Media and Camera/Media Camera
    PAT乙级1007.素数对猜想(20)
    筛法求素数详解
    PAT乙级1006.换个格式输出整数(15)
  • 原文地址:https://www.cnblogs.com/hailong/p/1896167.html
Copyright © 2011-2022 走看看