[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赋初值

 

posted on 2014-10-23 15:39  lzm420241  阅读(97)  评论(0)    收藏  举报

导航