汇编语言冒泡法排序cmp ax, a[bx+2]?

loop2:
mov ax, a[bx] ;把第bx个数传给ax寄存器
cmp ax, a[bx+2] ;比较第bx个数和第bx+2个数
jle continue ;jle:小于等于则跳转,否则执行下句
xchg ax, a[bx+2] ;否则两比较数交换位置
mov a[bx], ax
比较一组数的大小,用冒泡法,对于这个循环,为什么bx+2而不是bx+1?困惑很久

因为 mov ax,a[bx] 说明a数组是使用word类型的,word类型占两个字节,下一个元素地址应该+2
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-05-22
因为这里的数据是字(从使用了MOV AX,A[BX]而不是MOV AL,A[BX]就可以看出),占用了两个字节,所以要在当前单元后移2位,找到下一个数据与它比较。
相似回答