• 汇编语言 [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在汇编语言中称为段前缀。

  • 相关阅读:
    wxPython跨线程调用
    安卓开发24:FrameLayout布局
    URAL 1081
    [置顶] Hibernate运行机理
    [置顶] Hibernate的一个经典异常
    poj1190 生日蛋糕 dfs
    [置顶] 自己写代码生成器之生成Dal层代码(获取数据库所有表名称)
    修改mysql数据存储的地址
    拖延心理学
    DeepLearnToolbox使用总结
  • 原文地址:https://www.cnblogs.com/QiaoGeGe/p/10132967.html
Copyright © 2020-2023  润新知