《汇编语言第三版》王爽著 ------读书笔记
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 段前缀的使用
显式的使用多个段寄存器可以不用在循环中设置段寄存器的值