• 汇编语言 [BX]和loop指令


    一      .[bx]

    1. mov ax,[bx]

    bx中存放的数据作为一个偏移地址EA,段地址SA默认在ds中,将SA:EA处的数据送入ax中。

    2. mov [bx],ax

    bx中存放的数据作为一个偏移地址EA,段地址SA默认在ds中,将ax中的数据送入内存SA:EA处。

    3. inc bx

    其表示的含义是bx中的内容加1,比如下面两条指令:

    mov bx,1

    inc bx

    执行之后的结果,bx=2.

    二     loop指令

    1.  cx中的值影响着loop指令的执行结果。我们用loop指令来实现循环功能,cx中存放循环次数。

    2.  loops

    CPU在执行loops的时候,要进行两步的操作:

    1)(cx)=(cx)-1;

    2)   判断cx中的值,不为0则转至标号s所标识的地址处执行(这里的指令是add ax,ax),如何为零则执行下一条指令

    3)mov cx,11

      s:   add  ax,ax

           loop s

    执行loops时,首先要将cx减1,然后若cx不为0,则向前转至s处执行add ax,ax所以,可以利用cx来控制add ax,ax的执行次数。

    三  段前缀

    1:mov ax,es:[bx]

    将一个内存单元的内容送入ax,这个内存单元的长度为2字节,存放1个字,偏移地址在地址bx中,段地址在es中。

    2:mov ax,ss:[0]

    将一个内存单元的内容送入ax中,这个内存单元的长度为2个字节,存放一个字,偏移地址为0,段地址在ss中。

     这些出现在访问内存单元的指令中,用于显示地指明内存单元的段地址的es ss在汇编语言中称为段前缀。

  • 相关阅读:
    23.java方法的深入
    MapReduce:详解Shuffle过程
    Hadoop1.x与Hadoop2的区别
    进程控制的一些api
    程序的静态链接,动态链接和装载
    用户级线程和内核级线程的区别
    从Hadoop框架与MapReduce模式中谈海量数据处理(含淘宝技术架构) (转)
    海量处理面试题
    面试中的二叉树题目
    linux 进程间消息队列通讯
  • 原文地址:https://www.cnblogs.com/QiaoGeGe/p/10132967.html
Copyright © 2020-2023  润新知