例7.33 显示STRING串中的每个字符直到末字符$为止($不显示)。程序段如下,其中DISP仍为显示AL中字符的子程序,!= 表示不等。
      LEA     BX,STRING
      MOV     AL,[BX]
      .WHILE    AL !='$'
      CALL     DISP
      INC     BX
      MOV     AL,[BX]
      .ENDW
  汇编程序将产生以下代码:
      LEA     BX,STRING
      MOV     AL,[BX]
      JMP     COMPARE
  DISPLAY: CALL     DISP
      INC     BX
      MOV     AL,[BX]
  COMPARE: CMP     AL,'$'
      JNZ     DISPLAY

  我们知道,高级语言中的WHILE语句总是先测试循环结束条件,以决定是否进入循环体。在这里,虽然测试条件放在循环体之后,但当程序中出现 .ENDW时,汇编程序将在循环体之前用一条JMP指令来保证先作测试,这样符合WHILE的含义,即如一开始就满足条件,则程序将立即结束而不会进入循环体。