汇编语言程序设计(五)[bx]和loop
[bx]简洁寻址和内存单元的描述
- 描述一个内存单元需要两方面信息,一个是起始地址,一个是长度。
![]()
- 我们直到[]的意思是引用内存单元中的数据,[bx]起始就是一种间接寻址,即[]中没有直接放偏移地址,而是将偏移地址放在了[]中,段地址还是在数据段寄存器ds中。有一点需要注意,mov ax, [0]时,对于偏移地址为0时很特殊,在Debug下会把[0]当成内存偏移地址,但是在汇编器中可能会把[0]直接当成立即数0赋值给ax寄存器,所以需要借助寄存器间接寻址才可以。
INC与DEC
- 分别是自加与自减的命令。
cx寄存器与loop指令
- loop指令用来实现循环,cx寄存器用来存放循环次数,看下边例子就很好理解了,跟C语言中goto差不多。
- 如下图所示,s是标号,标号代表了一个地址。
- loop s 会执行两步操作,第一步将寄存器cx中的值减1,第二步判断cx中的值是不是0,如果不是0就转到标号s地址处继续执行,如果为0则执行下一条指令。
![]()
汇编源程序中数字不能以字母开头,要在前边加个0
段前缀
- 其实就是ds、cs、es等段寄存器,寻址的时候如果只给出了偏移地址,那么对应的段地址就会自动到段寄存器中去找。
一段安全的空间
- 所谓的实模式,大概就是操作系统还没有把硬件给保护起来,这个时候可以用汇编随便搞,保护模式的时候硬件已经被操作系统严格管理了,用汇编语言去造作真实的硬件是不可能的了。
![]()
![]()




浙公网安备 33010602011771号