第5章 [BX]和loop指令

《汇编语言第三版》王爽著  ------读书笔记 

1.[bx]和内存单元的描述

完整描述一个内存单元

  ①内存单元的地址

  ②内存单元的长度

 

"()" 符号用来表示一个寄存器或一个内存单元的内容

   ①寄存器名

   ②段寄存器名

   ③内存单元的物理地址(一个20位数据)

   (AX) (10000H) ((ds)*16+(bx))

   不正确:(1000:0000) ((ds):1000H)

 

约定 idata 表示常量

5.1 BX

 

5.2 LOOP指令

操作

  ①(CX)=(CX)-1

  ② if((CX)>0)

           转至标号处;

       else

            向下执行;

格式

mov cx,循环次数

 s:

  ...

  循环执行的程序端

  ...

 loop s(标号)

 

 

 

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

 

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

在汇编源程序中,数字不可以字母开头

Debug 将 [idata] 解释为一个内存单元

编译器  将 [idata] 解释为一个  idata

 

  解决方式:段寄存器 : [idata]

 

 

5.5 loop[bx] 的联合应用

循环 用于解决 同一种方法处理地址连续的内存单元中的数据的问题

 

 

5.6 段前缀

显式指明内存单元的段地址的 “ds:”“es:”“ss:”“cs:”

 

5.7 一段安全的空间

  使用操作系统给我们分配的空间

  DOS 和一般合法程序一般不会使用 0:200 ~0:2ff这段 256字节的空间

 

5.8 段前缀的使用

  显式的使用多个段寄存器可以不用在循环中设置段寄存器的值

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值