Annotated Flow Chart

      3         copy1 proc               ;Pentium cycles  Notes
      4 |-->lbl
      5 |       lodsb                    ;   2 cy          NP
      6 |       stosb                    ;   3 cy          NP
      7 |       or      al, al           ;   1 cy          UV 1
      8 |---    jne     lbl              ;   1 cy           V *
      9         ret                      ;   2 cy          NP
     11         copy1 endp

     13         copy2 proc                   ;Pentium cycles  Notes
     15         lea     si, string1          ;   1 cy          UV 1
     16 |-->lbl2
     17 |       mov     ax, [si]             ;   1 cy          UV 4 AGI-1
     18 |       add     si, 2                ;   1 cy          UV *
     19 |       cmp     al, 0                ;   1 cy          UV *
     20 |       je      exit2       ---|     ;   1 cy           V *
     21 |       mov     [di], ax       |     ;   1 cy          UV 2
     22 |       add     di, 2          |     ;   1 cy          UV *
     23 |       cmp     ah, 0          |     ;   1 cy          UV *
     24 |---    jne     lbl2           |     ;   1 cy           V *
     25     exit:                      |
     26         jmp     exit3       --||     ;   1 cy /   2 cy  V 2
     27     exit2:                  <-||
     28         mov     [di], al      |      ;   1 cy          UV 2
     29     exit3:                 <--|
     30         ret                          ;   2 cy          NP
     32         copy2 endp