zoukankan      html  css  js  c++  java
  • 王爽《汇编语言》第三版 第五章 [BX]和loop指令

    5.1 [bx]

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


    5.2 Loop指令

      指令的格式是:loop 标号,CPU 执行loop指令的时候,要进行两步操作:
        1.(cx)=(cx)-1;
        2.判断cx中的值,不为零则转至标号处执行程序,如果为零则向下执行。

      通常我们用loop指令来实现循环功能,cx 中存放循环次数。


    5.3 在Debug中跟踪用loop指令实现的循环程序


    5.4 Debug和汇编编译器Masm对指令的不同处理

      在汇编元程序中,指令“mov ax,[0]”被编译器当作指令“mov ax,0”处理。

        1.mov al, [0]
        2.mov al, ds:[0]
        3.mov al, [bx]
        4.mov al, ds:[bx]


    5.5 loop和[bx]的联合应用


    5.6 段前缀

      指令“mov ax,[bx]”中,内存单元的偏移地址由bx给出,而段地址默认在ds中,我们可以在访问内存单元的指令中显式地给出内存单元的段地址所在的段寄存器。

      用于显式地指明内存单元的段地址的“ds:”、“cs:”、“ss:”或“es:”,在汇编语言中称为段前缀。


    5.7 一段安全的空间

      在8086模式中,随意向一段内存空间写入内容是很危险的 ,因为这段空间中可能存放着重要的系统数据或代码。

      在一般的PC机中,DOS方式下,DOS和其他合法的程序一般都不会使用0:200~0:2FF( 0:200h~0:2FFh)的256 个字节的空间。所以,我们使用这段空间是安全的。


    5.8 段前缀的使用

     

    参考资料:《小甲鱼汇编零基础入门》

     

         《汇编语言》第三版

  • 相关阅读:
    GhostBSD 3.0RC3,基于GNOME的FreeBSD
    Nagios 3.4.3 发布,企业级监控系统
    Jolokia 1.0.6 发布, JMX远程访问方法
    微软希望开发人员不要使 WebKit 成为新版 IE6
    Kwort Linux 3.5 正式版发布
    EJDB 1.0.24 发布,嵌入式 JSON 数据库引擎
    Pale Moon 15.3 Firefox“苍月”优化版发布
    Galera Load Balancer 0.8.1 发布
    SmartSVN V7.5 正式发布
    PostgresQL建立索引如何避免写数据锁定
  • 原文地址:https://www.cnblogs.com/mubu/p/6358217.html
Copyright © 2011-2022 走看看