对于编译器而言,mov a1,[2]等同于mov a1,02,[]在此处并不起作用

[bx]

[bx]是什么?是我老婆
7b8e7560e37112874d0d37388106281b9cc013cf.png@1200w_1630h.webp

[bx]是什么呢?
和[0]有些类似,[0]表示内存单元,它的偏移地址是0。

我们要完整地描述一个内存单元,需要两种信息:
(1)内存单元的地址;
(2)内存单元的长度(类型)。
我们用[0]表示一个内存单元时,0表示单元的偏移地址,段地址默认在ds中,单元的长度(类型)可以由具体指 令中的其他操作对象(例如寄存器)指出,如前边的AX,AL。[bx]同样也表示一个内存单元,他的偏移地址在bx中,比如下面的指令:
mov ax,[bx]
功能:bx中存放的数据作为一个偏移地址EA,段地址SA默认在ds中,将SA:EA处的数据送入ax中。即:
(ax)=((ds)*16+(bx));
mov a1,[bx]

loop

英语中“loop”有循环的含义,该指令与循环有关。指令格式是:loop 标号,CPU执行loop指令的时候,要进行两步操作:
① (cx)=(cx)-1;
② 判断cx中的值,不为零则转至标号处执行程序,如果为零则向下执行。
不难看出,cx中的值影响着loop指令的执行结果。通常我们用loop指令来实现循环功能,cx中存放着循环次数