; 定义数据段
    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


  上述例子说明,循环控制条件是循环程序设计的关键,必须结合对算法的分析与考虑合理地选择。同时,必须仔细地考虑边界情况出现的可能性,以免在特殊情况下造成错误。