;
定义数据段
datarea segment
x dw ?
array_head dw 23,37,49,52,65,78,99
array_end dw 105
n dw 32
datarea ends
; 定义代码段
prognam segment
main proc far ; 主程序部分
assume cs:prognam,ds:datarea
start: ; 程序从此处开始执行
push ds
sub ax,ax
push ax
mov ax,datarea
mov ds,ax
; 程序的主要部分
mov ax,n
mov array_head-2,0ffffh ; -1送array_head-2单元
mov si,0
compare:
cmp array_end[si],ax
jle insert
mov bx,array_end[si]
mov array_end[si+2],bx
sub si,2
jmp short compare
insert: mov array_end[si+2],ax
ret
main endp ; 主程序main结束
prognam ends
end start
上述例子说明,循环控制条件是循环程序设计的关键,必须结合对算法的分析与考虑合理地选择。同时,必须仔细地考虑边界情况出现的可能性,以免在特殊情况下造成错误。