          ᥬ  IBM PC.  11                           241


           11
          ------------------------------------------------------------
          
           ࠡ⪨ ப
          
          :  ᭨ 祭 ᯥ樠  楯 ,
          ᯮ㥬  ࠡ⪨ ᨬ .
          
          
          ------------------------------------------------------------
          
             ,      ।  ,  ஢
            ⮬,    ᫮    믮. ,
          ,   뢠  室  ᫠    ࠢ  
          ,   ॢ       ᫮. ਬ,
          室  ࠢ  ᠭ        ⮣, ⮡
          ஢     室饩 ᫥⥫쭮. 
          ⠪ ଠ   ப    
            ᨬ묨,  ⠪  ᫮묨.   ࠡ⪨ ப
           ᥬ    ࠡ⪨ ப:
             
          MOVS   ᫠     ᫮   
                   ;
          
          LODS   㧨      ॣ AL  
                 ᫮  ॣ AX;
          
          STOS    ᮤন ॣ AL  AX  ;
          
          CMPS   ࠢ ᮤন  ⥩ , ࠧ஬ 
                      ᫮;
          
          SCAS   ࠢ ᮤন ॣ AL  AX  ᮤন
                 .
          
             䨪  REP  ⨬   ࠡ뢠 ப
           .
             
             
          ------------------------------------------------------------
          
             筠      ஢  
          饩  p⪨          ᫮   
          믮.  ਬ,    "⮢"  
          ࠡ⪨ ப    ᫮    "塠⮢"
            ࠡ⪨ ⭮ ᫠  .   ᫥
          ॣ,    騥      楯       (
          ⮢    塠⮢  ਠ⮢).  ।, 
          ॣ DI  SI ᮤঠ 室 :
             
                       ࠭                  
                    MOVS      DI,SI               MOVSB     MOVSW
                    LODS      AL,SI  AX,SI     LODSB     LODSW

          
          ᥬ  IBM PC.  11                           242


                    STOS      DI,AL  DI,AX     STOSB     STOSW
                    CMPS      SI,DI               CMPSB     CMPSW
                    SCAS      DI,AL  DI,AX     SCASB     SCASW
             
             ਬ,   ஢ ࠭   MOVS, 
             MOVSB  MOVSW.   ।, 
          p DI  SI ᮤঠ ⭮⥫  , 㪠뢠騥
           室    (  㧪  ᯮ짮
            LEA).    SI  筮  易   ॣ஬
          ᥣ    -   DS:SI.    DI  ᥣ  易  
          ॣ஬ ⥫쭮 ᥣ  -  ES:DI. ⥫쭮,
            MOVS,  STOS,  CMPS    SCAS  ॡ  樠樨
          ॣ ES (筮 ᮬ  ॣ DS).
             
          REP:    
          ------------------------------------------------------------
          
             ᬮ  ,   楯   ⭮襭 
                 ᫮,  䨪  REP ᯥ稢
          ७   ᪮쪮 ࠧ.  䨪   
          ।⢥ । 楯筮 ,  ਬ, REP MOVSB.
             ᯮ짮   䨪  REP   室  ⠭
          砫쭮 祭  ॣ CX.   믮 楯筮
            䨪ᮬ REP ந室 㬥襭   1 祭
           ॣ  CX    .   ࠧ,  ࠡ뢠
          ப  .
               ࠢ  ।  ࠢ  饩
          樨:
             -    ࠢ  ᫥  ࠢ  室   
           CLD ⠭ 䫠 DF  0;
             -    ࠢ ࠢ    室   
           STD ⠭ 䫠 DF  1.
               ᫥饬 ਬ  믮  뫪  20   
          STRING1   STRING2.  ।,    ॣ  DS  ES
          樠஢ ᮬ ᥣ :
             
               STRING1   DB   20 DUP('*')
               STRING2   DB   20 DUP(' ')
             
                         ...
                         CLD                 ; 䫠 DF
                         MOV  CX,20          ;稪  20 
                         LEA  DI,STRING2     ;  "㤠"
                         LEA  SI,STRING1     ;  "㤠"
                         REP MOVSB           ;᫠ 
             
               믮    CMPS   SCAS   ⠭
          䫠  ﭨ,  ⠪  ⮡     ४
          ࠧ ᫥ 㦥 室 ᫮.  ਢ
          䨪樨 䨪 REP   楫.
             
          REP -               ,  CX  ࠢ 0;


          
          ᥬ  IBM PC.  11                           243


          REPZ REPE -      , 䫠 ZF
                             뢠 "ࠢ ".४
                               䫠 ZF, 㪠뢠饬  
                             ࠢ      CX ࠢ 0;
          REPNE  REPNZ -   ,  䫠 ZF
                             뢠 " ࠢ   ".
                             ४   䫠 ZF,
                             㪠뢠饬  "ࠢ  "  
                             CX ࠢ 0.
          
           ஢ 8086, 80286  80386, ࠡ뢠 ᫮ 
          o 믮,  ᯮ짮  楯  ,  
          ,   ਢ      襭   䥪⨢  ࠡ
          ணࠬ.
          
          MOVS:  
          ------------------------------------------------------------
          
              .7.5  뫠  ணࠬ   뫪 
          ⮢ .  ணࠬ 砫    樠
          樨     横.   MOVS  䨪ᮬ REP
              ॣ  CX    믮  뫪 
          ᫠ ᨬ  䥪⨢.
               ,  ਭ饩 ப,  ᥣ ॣ஬,
           p ES,    ॣ  DI  ᮤন ⭮⥫
            ,   ।饩  ப.    ॣ஬
            ॣ DS,    ॣ SI  ᮤন ⭮⥫
          .   ࠧ, 砫  ணࠬ  । 믮
            MOVS 室 樠஢  ॣ ES 
           ॣ஬ DS,    ⠪ 㧨  ॡ㥬 ⭮⥫
             ॣ DI  SI.   ᨬ  ﭨ
          䫠 DF   MOVS ந 㢥祭   㬥襭
           1  ( )   2 ( ᫮) ᮤন ॣ஢
          DI  SI.
             ਢ  ,   楯筮   REP
          MOVSB:
             
                         JCXZ      LABEL2
             LABEL1:     MOV       AL,[SI]
                         MOV       [DI],AL
                         INC/DEC   DI        ;६  ६
                         UNC/DEC   SI        ;६  ६
                         LOOP      LABEL1
             LABEL2:     ...
             
              ணࠬ   .  11.1  楤  C10MVSB ᯮ
           MOVSB  뫪 ᮤন ⨡⮢ 
          NAME1     NAME2.  ࢠ    CLD  뢠 䫠
          ࠢ   0    ᯥ祭   뫪 ᫥
          ࠢ.  ଠ쭮 ﭨ 䫠 DF 筮  㫥
          祭   CLD ᯮ  ।஦.



          
          ᥬ  IBM PC.  11                           244


               LEA 㦠 ॣ SI  DI ⭮⥫묨
          ᠬ NAME1  NAME2 ᮮ⢥⢥.   ॣ DS 
          ES 뫨  ࠭ 樠஢   ᮬ  DATASG,  
            NAME1   NAME2   ॣ ES:DI  DS:SI.
          (COM ணࠬ ⮬᪨  樠  ॣ  ES 
          DS).   MOV   ॣ CX  祭  10 - 
           NAME1  NAME2.  REP MOVSB 믮 ᫥饥:
             
              뫠 ᠬ      NAME1 (ᮢ
                pࠬ  ES:DI)   ᠬ       NAME2
               (ᮢ ॣࠬ DS:SI).
              稢    1      ॣ  DI    SI 
               ᫥饣 .
              蠥 CX  1.
                ᫥ ⢨  (   砥 10
               ࠧ),    ᮤন  ॣ  CX   ⠭ ࠢ
               .
          
             ᪮ 䫠  DF  㫥  祭,  MOVSB
          㢥稢   ॣ DI  SI,     樨
           室     ࠢ,  .. 뫠  
          NAME1+1   NAME2+1  .. ᫨  䫠 DF  ࠢ 1, ⮣
           MOVSB 㬥蠫        ॣ  DI   SI,
          믮  ࠢ .   ⮬ 砥 ॣ SI
            DI 室 樠஢  ᠬ ᫥ ⮢
          , .. NAME1+9  NAME2+9 ᮮ⢥⢥.
               楤  D10MVSW   (.11.1)  ᯮ  
          MOVSW,  뫠  ᫮    믮.  
           MOVSW 㢥稢    ॣ DS   SI  2,
           ॡ ⮫쪮  横.    뫪
          ࠢ     ॣ  SI       樠஢
          ᮬ NAME1+8,  ॣ DI - NAME2+8.
             
          LODS:  
          ------------------------------------------------------------
          
              LODS 㦠     ॣ  AL  
             ॣ  AX    ᫮.     ।
          ॣࠬ  DS:SI.     ᨬ    祭  䫠  DF
          ந室 㢥祭  㬥襭 ॣ SI.
             ᪮   LODS 㦠  ॣ,  ࠪ
          ᪮     䨪 REP    砥  . 
             MOV  ⭠   LODS, 
          MOV      設 ,    LODS - ⮫쪮
          ,   ॡ 樠 ॣ  SI.  ᯮ짮
            LODS  ⮬ 砥,  ॡ த
           ப (     ᫮),  ஢ 㦠
          ॣ  ⭮ 祭.
             ,   LODSB:
             
                              MOV  AL,[SI]
                              INC  SI
             

          
          ᥬ  IBM PC.  11                           245


              .11.1 楤 E10LODS  ᯮ짮
           LODSW.   ਬ ࠡ뢠  ⮫쪮  ᫮:
                NAME1  (ᮤঠ騩  As)  
          ॣ AL,    ன  -   ॣ AH.   १ 
          ॣ AX  祭 sA.
          
          STOS:  
          ------------------------------------------------------------
          
              STOS  뢠  (࠭) ᮤন ॣ
          AL  AX     ᫮  .     ᥣ
          ।⠢ ॣࠬ  ES:DI.   ᨬ  䫠 DF
            STOS  ⠪  㢥稢     㬥蠥    
          ॣ DI  1     2  ᫮.
             ࠪ᪠  짠    STOS    䨪ᮬ  REP  -
          樠    祭, ਬ,
          ⪠  ᯫ    ஡.      (
              c)  㦠    ॣ  AX. ,
            REP STOSB:
             
                         JCXZ      LABEL2
               LABEL1:   MOV       [DI],AL
                         INC/DEC   DI        ;६  ६
                         LOOP      LABEL1
               LABEL2:   ...
             
              .11.1 楤 F10STOS  ᯮ짮
            STOSW.    ⢫    .  2020
          (஡)    ࠧ     NAME3,  祬  祭 
          ॣ AL    ,    ॣ AH  - 
          ன.    襭   ॣ  DI  ᮤন 
          NAME3+10.
          
          CMPS:  
          ------------------------------------------------------------
          
              CMPS  ࠢ ᮤন    
          (㥬 ॣࠬ  DS:SI)   ᮤন묨 㣮 
          (㥬   ES:DI).   ᨬ  䫠  DF 
          CMPS ⠪ 㢥稢  㬥蠥   ॣ SI 
          DI    1          2    ᫮.   CMPS
          ⠭   䫠  AF,   CF,   OF,  PF,  SF    ZF.  
          ᯮ짮 䨪  REP  ॣ  CX  室
            ࠢ  .    CMPS   ࠢ
           ᫮   ᫮.
          
          ------------------------------------------------------------
          ------------------------------------------------------------
               . 11.1. ᯮ짮 楯 .
             
             ᬮਬ  ࠢ  ப, ᮤঠ 
          JEAN  JOAN.  ࠢ  ⭮  ᫥ ࠢ  ਢ 
          ᫥饬:

          
          ᥬ  IBM PC.  11                           246


             
                         J  :  J        
                         E  :  O         ࠢ (E  O)
                         A  :  A        
                         N  :  N        
             
             ࠢ     稢 ࠢ N:N
          -  p/.    " ࠢ",   
          ,   ⮫쪮 㤥 㦥  ᫮ " ࠢ".
            楫   REP  䨪  REPE, 
           ࠢ    ,   ࠢ 
          ࠢ,   ॣ CX  p .  饥
           ⮢ ࠢ ᫥騬 ࠧ:
             
                                   REPE CMPSB
             
               .11.1    楤  G10CMPS     ਬ
          ᯮ짮   CMPSB.    ࢮ  ਬ ந室
          ࠢ ᮤন  NAME1    NAME2.     ࠭
           MOVSB ᫠ ᮤন  NAME1    NAME2,
              CMPSB  த         
          蠥 ﭨ p/: 䫠 SF 砥 祭
          0 (⥫쭮)  䫠 ZF - 1().
              ஬  ਬ ࠢ  NAME2  NAME3. 
            STOSW       NAME3  ஡,  ⮬
           CMPB   蠥 ᫥ ࠢ     
          १⮬  "/ࠢ":  䫠 SF  砥 祭 0
          (⥫쭮)  䫠 ZF - 0 ().
              ਬ 稢  १⮬  "ࠢ/" 
           01    ॣ  BH.  ன  ਬ  稢 
          १⮬  "ࠢ"      02    ॣ  BL.  
          ஢    ⫠稪  DEBUG  㢨,
              楤 G10CMPS  ॣ  BX  㤥 ᮤঠ
          祭 0102.
             ।०!    ਬ  ᯮ  
          CMPSB  ࠢ         믮. 
          ᯮ짮    CMPSW    ࠢ   ᫮,
          室  樠p  ॣ CX  祭 5. ஬
          ⮣ ᫥ ,    CMPSW   ࠢ ᫮
          ⠢  .  ਬ,  ࠢ    SAMUEL  
          ARNOLD  CMPSW 롨ࠥ  SA   AR ⠢
          祭,  ..  AS    RA.    १    ""
            "",   ..  ࠢ  १.  
          ࠧ   CMPSW ࠡ⠥ ࠢ쭮  ⮫쪮  ࠢ
            ப,   ᮤঠ  ᫮ , ।
           DW, DD  DQ.
          
          SCAS:  
          ------------------------------------------------------------
             
               SCAS  ⫨砥       CMPS   ⥬,  
          ᪠  (ᬠਢ)  ப   । 祭
            ᫮.   SCAS ࠢ ᮤন 

          
          ᥬ  IBM PC.  11                           247


            (㥬 pࠬ ES:DI)   ᮤন ॣ
          AL  AX.   ᨬ  祭 䫠 DF   SCAS
          ⠪  㢥稢  㬥蠥    ॣ  DI   1
                2   ᫮.   SCAS ⠭
          䫠   AF,  CF, OF, PF, SF  ZF.  ᯮ짮 䨪
          REP   祭      ॣ  CX    SCAS 
          ᪠஢ ப  .
               SCAS  ᮡ  ,  ਬ,   ⥪⮢
          ।,      ணࠬ     ᪠஢  ப,
          믮   㭪樨: 祪,   ஡.
              .11.1 楤 H10SCAS ᪠   NAME1 
           㪢 "m".     SCASB  த
          ᪠஢,   १  ࠢ  -  "  ࠢ" 
          ॣ CX  ࠢ ,  ᯮ 䨪 REPNE:
             
                              REPNE SCASB
             
                 NAME1  ᮤন  ᫮  "Assemblers", 
           SCASB 室  ᨬ  "m"    ⮬  ࠢ. 
          ᯮ짮 ⫠稪 DEBUG  ஢   
          楤  H10SCAS  㢨  ॣ  AH  祭 03
           樨 ⮣,  ᨬ "m" .  REP SCASB
          ஬ ⮣ 㬥 祭 ॣ CX  10  06.
              SCASW ᪠     ᫮   ᮮ⢥⢨
          祭  ॣ AX.   ᯮ짮   LODSW 
          MOV  뫪 ᫮  ॣ AX,  ᫥  , 
            㤥  ॣ AL,   ன  -  ॣ
          AH.        SCAS  ࠢ      ⭮
          ᫥⥫쭮,  o ४⭠.
          
            
          ------------------------------------------------------------
             
                   ࠡ⪨   ⥪⮢   ଠ樨   
            室    ।  ᨬ  
          ⥪    㣨,  ਬ,  ⠭  ஡ 
          ࠧ   ।   ᨬ.     ਢ  
          ࠣ  ணࠬ   ⢫   ᪠஢  cப
          STRING     ᨬ ᠭ (&)    ᨬ ஡.
              SCASB  㦨  ᨬ  &  (  ਬ 
          㤥  STRING+8),    ᪠஢ ४
            ॣ DI 㤥 ᮤঠ a  STRING+9.   
            ᨬ  &  室 㬥 ᮤন DI 
              祭  ᨬ ஡.
             
               STRLEN    EQU  15             ;  STRING
               STRING    DB   'The time&is now'
                         ...
                         CLD
                         MOV  AL,'&'         ;᪮ ᨬ
                         MOV  CX,STRLEN      ;  STRING
                         LEA  DI,STRING      ;  STRING
                         REPNE SCASB         ;஢

          
          ᥬ  IBM PC.  11                           248


                         JNZ  K20            ; ?
                         DEC  DI             ; - 㬥 
                         MOV  BYTE PTR[DI],20H  ;⠢ ஡
             K20:        RET
          
           
          ------------------------------------------------------------
             
               ᯮ짮    MOVSB     MOVSW  ᥬ
          । 稥 ४⭮  ப    
          ॡ  ஢ ࠭  .     MOVS
             ஢  ࠭ .  ਬ, ᫨
           FLDA  FLDB ।  ⮢ (DB),  
             
                         REP  MOVS FLDA,FLDB
             
          ।   뫪 ⮢    FLDB 
            FLDA.        ⠪   ᫥饬
          :
                         REP  MOVS ES:BYTE PTR[DI],DS:[SI]
          
           㧪  ॣ஢ DI   SI ᠬ   FLDA    FLDB
          o易⥫쭠     砥.
          
           
          ------------------------------------------------------------
          
               STOS  뢠     ⠭  ன
           o। 祭  ⮢   ᫮.  㡫஢
           ࠧ,   ண ॢ蠥 ࠧ   ᫮, 
          ᯮ짮      MOVS      让  䨪樥.
          ।,  室  ନ஢ ப  ᫥饣
          :
                         ***---***---***---***---***--- . . .
          
           ⮣,  ⮡  ।    ப, 
          । ⮫쪮     ⮢.  㥬 ࠧ
          ।⢥   ।   ࠡ뢠   ப ᫥騬
          ࠧ:
          
                    PATTERN   DB   '***---'
                    DISAREA   DB   42 DUP(?)
                              .
                              .
                              CLD
                              MOV  CX,21
                              LEA  DI,DISAREA
                              LEA  SI,PATTERN
                              REP MOVSW
          
              믮    MOVSW  ᭠砫  뫠
          ࢮ ᫮ (**)   ࠧ PATTERN  ࢮ ᫮ 
          DISAREA, ⥬ - ஥ ᫮ (*-), ⮬  (--):

          
          ᥬ  IBM PC.  11                           249


          
                              ***---***---
                                   
                         PATTERN   DISAREA
          
           ⮬  ॣ DI 㤥 ᮤঠ   DISAREA+6,
           p SI  -  PATTERN+6,    ⠪  ᮬ
          DISAREA.   ⥬     MOVSW   ⮬᪨  㡫
          ࠧ,  뫠 ࢮ ᫮  DISAREA   DISAREA+6, 
          DISAREA+2,   DISAREA+8,   DISAREA+4  DISAREA+10  .. 
          १ ࠧ  㤥    த㡫஢   ᥩ
           DISAREA:
          
                    ***---***---***---***---***--- . . . ***---
                                                      
               PATTERN      DISAREA+6   DISAREA+12   DISAREA+42
             
               孨    ᯮ짮    㡫஢ 
               ࠧ  .  ࠧ 
           ᯮ ।⢥ । ਭ饩 .
          
          :      
          ------------------------------------------------------------
          
             COM-ணࠬ,   ࠦ    .1.2,  
             ਠ,  ਢ   ⮩  . 楤
          ணࠬ  믮 ᫥騥 ⢨:
          
          B10INPT  ਭ       30  ᨬ, 
                    ࠭.
          D10SCAS  ᯮ  SCASB  ᪠஢   
                   室  , ᮤঠ饣 ᨬ "窠".
          E10RGHT  ᯮ   MOVSB  ࠢ   
                   ࠢ  ࠭,  뢮      ࠢ
                     ࠭.        ACTNLEN    ᯨ᪠
                   ࠬ஢  ᯮ  ᫥ ᠬ
                   ࠢ ᨬ  , ਬ:
          
                                         JEROME KERN
                                   OSCAR HAMMERSTEIN
                                      RICHARD ROGERS
          
          F10CLNM  ᯮ  STOSW   ⪨  
                      .
          
          ------------------------------------------------------------
          ------------------------------------------------------------
                   .11.2. ࠢ ࠢ  뢮  ࠭.
          
             
          ------------------------------------------------------------
          


          
          ᥬ  IBM PC.  11                           250


               楯  MOVS,  STOS, CMPS  SCAS  -
                樠஢ ॣ  ES.
          
              뢠 (CLD)   ⠭ (STD) 䫠 ࠢ
                 ᮮ⢥⢨  ࠢ ࠡ⪨.
          
               뢠 ⠭  ॣ DI  SI 室
                 祭.   ਬ,    MOVS  ।
               ࠭ DI,SI,   CMPS - SI,DI.
          
              樠 ॣ CX  ᮮ⢥⢨  ⢮
               ⮢    ᫮,       ࠡ⪨.
          
                筮  ࠡ⪨  ᯮ  䨪  REP  
                MOVS  STOS  ஢ 䨪 (REPE 
               REPNE)   CMPS  SCAS.
          
                ⭮ ᫥⥫쭮  ⮢  ࠢ
                c  믮  CMPSW  SCASW.
          
                ࠡ⪥ ࠢ    ⠭ 砫
                 ᫥   ࠡ뢠 . ᫨,
               ਬ,    NAME1     10  ⮢,  
               ⮢  ࠡ⪨      ⮩    ࠢ
                 砫    ,  㦠   LEA,
                 NAME1+9.   ࠡ⪨ ᫮ 砫 
                ⮬ 砥 - NAME1+8.
          
            
          ------------------------------------------------------------
          
          11.1.     ਢ    )
                 MOVSB,  )  LODSB  )STOSB  䨪ᮬ REP. 
                       ࠡ⪨    ᫮ )
                 MOVSW, ) LODSW  ) STOSW  䨪ᮬ REP.
          
          11.2.  ,   ᥬ      믮   
                 ணࠬ,  ਢ    .11.1.    
                 樠樨  ॣ ES.    MOVSB 
                 MOVSW  뫪 ࠢ .  楤
                 H10SCAS   ᪠஢   NAME1   ᫮ "mb".
                 ᯮ  ⫠稪  DEBUG   ஢ 楤,
                      ᮤন  ᥣ   
                 ॣ஢.
          
          11.3.   ᫥騥 ।:
          
                    DATASG    SEGMENT   PARA
                              CONAME    DB   'SPACE EXPLORERS INC.'
                              PRLINE    DB   20 DUP(' ')
          
                 ᯮ 楯 , 믮:
                 ) 뫪   CONAME  PRLINE ᫥ ࠢ;

          
          ᥬ  IBM PC.  11                           251


                 ) 뫪   CONAME  PRLINE ࠢ ;
                 ) 㧪 쥣  ⢥⮣ ⮢  
                 CONAME  ॣ AX;
                 ) ࠭ ᮤন ॣ AX   
                  PRLINE+5;
                 ) ࠢ    CONAME  PRLINE (
                    ࠢ);
                 ) ᪠஢ ⥩ CONAME  PRLINE,   
                  ᨬ ஡. ᫨ ᨬ 㤥 , 
                 ᫠   ॣ BH.
          
          11.4.  ।  楤 H10SCAS (.11.1)  ⠪, ⮡
                 믮﫮  ᪠஢  NAME1   ᨬ "er".
                  ,   ᨬ "er"   
                   NAME1      ᫮:  /As/se/mb/le/rs/. 
                 襭 ⮩ ஡   ਠ:
                 )  ᯮ짮  SCASW  , 祬 ࢠ
                   稭      NAME1,    - 
                  NAME1+1;
                 )  ᯮ짮  SCASB  ᪠ ᨬ ""
                  ࠢ ⥬ ᫥騩   ᨬ "r".
          
          11.5.  । ,  ᮤঠ饥 .祭 03, 04, 05
                   B4.  த㡫      20  ࠧ    뤠
                 १  ࠭.





























          
