首页 > 代码库 > 《汇编语言》总结02 —— [BX] 和 loop 指令

《汇编语言》总结02 —— [BX] 和 loop 指令

[BX]和[0]有些类似,[0]表示内存单元,它的偏移地址是0,同样[BX]也表示一个内存单元,它的偏移地址在BX中。

loop,英文单词“loop”有循环的含义,显然这个指令和循环有关。

我们约定符号idata表示常量,这里有一点需要注意的是不能将一个idata数据直接送入段寄存器中,这是非法操作,我们可以通过将idata数据先暂时放到通用寄存器中,然后再将通用寄存器中的数据mov到段寄存器中。

Debug和汇编编译器masm对指令不同处理:

  1. Debug会将[idata]理解为偏移地址

  2. masm会将[idata]理解为一个实际值idata

段前缀:

指令 mov ax,[bx]

内存单元的偏移地址由bx给出,而段地址默认在ds中,即 mov ax,ds:[bx]

这些出现在访问内存单元的指令中,用于显示地指明内存单元的段地址的“ds:”、“cs:”、“ss:”、“es:”,这些都称之为段前缀。

一段安全的空间:

在一般的PC机中,DOS方式下,DOS和其他合法程序一般都不会使用0:200~0:2ff的256个字节空间,所以,我们称这段空间是安全的。

段前缀的使用:

技术分享

总结完毕!

本文出自 “凡凡不会玩” 博客,请务必保留此出处http://liaofan.blog.51cto.com/12295212/1917697

《汇编语言》总结02 —— [BX] 和 loop 指令