[BX]和LOOP指令------第四章
[BX]同样表示一个内存单元,偏移地址为bx
LOOP跟循环有关的指令
"()"里面的元素有:寄存器名,段寄存器,内存单元的一个物理地址
idata表示常量
mov ax [bx]
将bx存放的数据作为一个偏移量的地址EA,短地址SA默认在ds中,,然后将SA:EA中的数据送入ax处,即:((ds)*16+(bx)) = (ax)
当对象互换位置的时候,就是讲ax数据送入SA:EA处。
loop指令
两部操作:一,cx= cx -1;二,判断cx的值,如果cx指令不为零,则转至标号出执行,如果为零,则继续执行下一行操作。
标号其实就是一段地址,标识了一个地址,这个地址存放着循环开始地方的内容。
用debug跟踪loop循环的过程。
段前缀
code:
mov ax [bx] mov ax ds:[bx]
这两端代码是一样的,而ds:则是其前缀,但是可以隐藏起来。
类似的:cs: ss: es:
段前缀使用,在循环中可以不需要重复为ds赋初值
浙公网安备 33010602011771号