home *** CD-ROM | disk | FTP | other *** search
/ For Beginners & Professional Hackers / cd.iso / docum / qc.doc / qc.prn < prev    next >
Encoding:
Text File  |  1979-12-31  |  29.4 KB  |  703 lines

  1.  
  2.  
  3.  
  4.  
  5.                              ÅÉêïÄåàìêà æ.
  6.  
  7.  
  8.                 ê¡ΓÑαΣÑ⌐ß ∩ºδ¬á æê ß ∩ºδ¬«¼ ÇßßѼí½Ñα.
  9.  
  10. æ.1.  ìỿßá¡¿Ñ áßßѼí½Ñα¡«⌐ »α«µÑñπαδ.
  11.       æ.1.1. æ«ºñá¡¿Ñ »α«µÑñπαδ.
  12.       æ.1.2. éó«ñ »α«µÑñπαδ.
  13.       æ.1.3. ÉẼÑΘÑ¡¿Ñ ½«¬á½∞¡δσ ñá¡¡δσ (¡Ñ«í∩ºáΓѽ∞¡«).
  14.       æ.1.4. ÉѺÑαó¿α«óá¡¿Ñ º¡áτÑ¡¿⌐ αÑú¿ßΓα«ó.
  15.       æ.1.5. Åáαá¼ÑΓαδ ñ«ßΓπ»á.
  16.       æ.1.6. é«ºóαáΘáѼ«Ñ º¡áτÑ¡¿Ñ (¡Ñ«í∩ºáΓѽ∞¡«).
  17.       æ.1.7. éδσ«ñ ¿º »α«µÑñπαδ.
  18. æ.2.  é맮ó »α«µÑñπα ¡á ∩ºδ¬Ñ ÇßßѼí½Ñα ¿º æê-»α«úαá¼¼δ.
  19. æ.3.  é맮ó æê ¿º ∩ºδ¬á ÇßßѼí½Ñα.
  20. æ.4.  æÑú¼Ñ¡Γ¡á∩ ¼«ñѽ∞ Σ¿α¼δ Microsoft.
  21.  
  22.  
  23.     Åα«úαá¼¼¿α«óá¡¿Ñ ß« ß¼ÑΦÑ¡¿Ñ¼ ∩ºδ¬«ó-φΓ« »α«µÑßß ß«ºñá¡¿∩  »α«úαá¼¼,
  24. ¿ß»«½∞ºπεΘ¿σ ñóá ¿½¿ í«½ÑÑ ¿ßσ«ñ¡δσ ∩ºδ¬á. äá¡¡«Ñ ßαÑñßΓó« »«ºó«½¿Γ  óá¼
  25. ¿ß»«½∞º«óáΓ∞ π¡¿¬á½∞¡δѠ󫺼«ª¡«ßΓ¿ ∩ºδ¬«ó  BASIC, C, FORTRAN, Pascal  ¿
  26. Macro  Assembler  (MASM)  Σ¿α¼δ  Microsoft.  ïεí«⌐  ¿º φΓ¿σ ∩ºδ¬«ó (ó ¿σ
  27. »«ß½Ññ¡¿σ óÑαß¿∩σ) ¼«ªÑΓ óδºδóáΓ∞ ½εí«⌐ ñαπú«⌐.
  28.  
  29.     öá¬Γ¿τÑ߬¿,  óßÑ  »α«µÑñπαδ  ¬áªñ«⌐  ¿º  ñá¡¡δσ  ∩ºδ¬«óδσ  í¿í½¿«ΓѬ
  30. ñ«ßΓπ»¡δ  ñ½∩   »α«úαá¼¼  ß«   ß¼ÑΦÑ¡¿Ñ¼  ∩ºδ¬«ó.   ìá»α¿¼Ñα,  ß¼ÑΦá¡¡«Ñ
  31. »α«úαá¼¼¿α«óá¡¿Ñ  »«¼«ªÑΓ  óá¼  φΣΣÑ¬Γ¿ó¡«  ¿ß»«½∞º«óáΓ∞ îá¬α« ÇßßѼí½Ñα
  32. (MASM).  éδ  ¼«ªÑΓÑ  íδßΓα«  αáºαáí«ΓáΓ∞  í«½∞Φ¿¡ßΓó«  óáΦ¿σ  »α«úαá¼¼ ß
  33. »«¼«Θ∞ε  Microsoft  C  ¿½¿  FORTRAN,  á  ºáΓѼ ¿ß»«½∞º«óáΓ∞ MASM ñ½∩ ΓÑσ
  34. ¡Ñ߬«½∞¬¿σ  »α«µÑñπα,  ¬«Γ«αδÑ  τáßΓ«  óδ»«½¡∩εΓß∩  ¿  ñ«½ª¡δ αáí«ΓáΓ∞ ß
  35. í«½∞Φ«⌐ ß¬«α«ßΓ∞ε.
  36.  
  37.     æ¼ÑΦá¡¡«Ñ »α«úαá¼¼¿α«óá¡¿Ñ, ¬α«¼Ñ Γ«ú«, «í½ÑúτáÑΓ »ÑαÑσ«ñ «Γ  «ñ¡«ú«
  38. ∩ºδ¬á ¬ ñαπú«¼π.  ìá»α¿¼Ñα, óδ ¼«ªÑΓÑ  ¿¼ÑΓ∞ í«½∞Φπε »α«úαá¼¼π  ¡á ∩ºδ¬Ñ
  39. FORTRAN, á ºáΓѼ ¬«¡óÑαΓ¿α«óáΓ∞ ÑÑ ó æê.
  40.  
  41.     éδ ¼«ªÑΓÑ ºá¼Ñ¡¿Γ∞ óáΦ¿ »α«µÑñπαδ ¡á ∩ºδ¬Ñ FORTRAN «ñ¿¡ ¬ «ñ¡«¼π  ¡á
  42. ß««ΓóÑΓßΓóπεΘ¿Ñ æê-Σπ¡¬µ¿¿. æê-¬«ñ íπñÑΓ ßúÑ¡Ñα¿α«óá¡, ¬á¬ Γ«½∞¬« ¬áªñá∩
  43. Σπ¡¬µ¿∩ íπñÑΓ ¡á»¿ßá¡á.
  44.  
  45.     ìᬫ¡Ñµ,  ß¼ÑΦá¡¡«Ñ  »α«úαá¼¼¿α«óá¡¿Ñ  íπñÑΓ  óá¼  »«½Ñº¡«,  Ñß½¿ óδ
  46. »«ßΓáó½∩ÑΓÑ ¡á  αδ¡«¬ óáΦ¿  ß«íßΓóÑ¡¡δÑ í¿í½¿«ΓѬ¿.  æ »«¼«Θ∞ε «»¿ßá¡¡δσ
  47. ºñÑß∞ ßαÑñßΓó óδ  ¼«ªÑΓÑ ú«Γ«ó¿Γ∞ í¿í½¿«ΓѬ¿  ñ½∩ ½εíδσ π»«¼∩¡πΓδσ  óδΦÑ
  48. ∩ºδ¬«ó, »α¿τѼ τáßΓ« ß ¡Ñº¡áτ¿Γѽ∞¡δ¼¿ ¿º¼Ñ¡Ñ¡¿∩¼¿.
  49.  
  50.     Å«ñα«í¡«  ß¼ÑΦá¡¡«Ñ  »α«úαá¼¼¿α«óá¡¿Ñ  ñ½∩  óßÑσ  «ßΓá½∞¡δσ   ∩ºδ¬«ó
  51. «»¿ßá¡« ó ñ«¬π¼Ñ¡ΓÑ "Microsoft Mixed-Language Programming Guide". äá¡¡«Ñ
  52. απ¬«ó«ñßΓó«  ß«ñÑαª¿Γ  «»¿ßá¡¿Ñ  ß¼ÑΦá¡¡«ú«  »α«úαá¼¼¿α«óá¡¿∩ ñ½∩ ∩ºδ¬«ó
  53. Microsoft FORTRAN(óÑαß¿∩ 4.0  ¿ óδΦÑ),Microsoft Macro  Assembler (éÑαß¿∩
  54. 5.0 ¿ óδΦÑ),  Microsoft Pascal (éÑαß¿∩  3.3 ¿ óδΦÑ),  Microsoft C(óÑαß¿∩
  55. 5.0 ¿ óδΦÑ).
  56.  
  57.     äá¡¡«Ñ ªÑ  »α¿½«ªÑ¡¿Ñ ó  «ß¡«ó¡«¼ ¬áßáÑΓß∩  ¼ÑΓ«ñ«ó »α«úαá¼¼¿α«óá¡¿∩
  58. ¡Ñ«íσ«ñ¿¼δσ  ñ½∩  ¡á»¿ßá¡¿∩   »α«µÑñπα  ¡á  ÇßßѼí½ÑαÑ,   »α¿ú«ñ¡δσ  ñ½∩
  59. ¿ß»«½∞º«óá¡¿∩ ó æê-»α«úαá¼¼áσ. Å«ñα«í¡«ßΓ¿ «í ¿¡ΓÑαΣÑ⌐ßáσ ¼Ñªñπ  ñαπú¿¼¿
  60. ∩ºδ¬á¼¿ óδß«¬«ú« πα«ó¡∩  ß¼«Γα¿ΓÑ ó ñ«¬π¼Ñ¡ΓÑ  "Microsoft Mixed-Language
  61. Programming Guide" ("Éπ¬«ó«ñßΓó« »« »α«úαá¼¼¿α«óá¡¿ε ß« ß¼ÑΦÑ¡¿Ñ¼ ∩ºδ¬«ó
  62. Σ¿α¼δ Microsoft").
  63.  
  64.  
  65.     Ä»αÑñѽѡ¿∩.
  66.  
  67.     ÆÑନ¡«½«ú¿τÑ߬¿Ñ  ß«ú½áΦÑ¡¿∩,  ¿ß»«½∞ºπѼδÑ  ó  ñá¡¡«¼   »α¿½«ªÑ¡¿¿
  68. ß«ó»áñáεΓ  ß  ß«ú½áΦ¿¡¿∩¼¿,  «»¿ßá¡¡δ¼¿  ó  απ¬«ó«ñßΓóÑ »«½∞º«óáΓѽ∩ ñ½∩
  69. ¬áªñ«ú« ∩ºδ¬á Σ¿α¼δ Microsoft. Äñ¡á¬«, ß½ÑñπεΘ¿Ñ ΓÑନ¡δ ¿ß»«½∞ºπεΓß∩  ó
  70. «ß«í«¼ ß¼δß½Ñ:
  71.  
  72. ÆÑନ¡      Ä»αÑñѽѡ¿∩
  73.  
  74.  
  75. Åα«µÑñπαá   ïεíá∩ Σπ¡¬µ¿∩, »«ñ»α«úαá¼¼á, »α«µÑñπαá, ¬«Γ«αá∩ ¼«ªÑΓ
  76.             íδΓ∞ óδºóá¡á ¿º ñαπú«ú« ∩ºδ¬á. äá¡¡«Ñ »«¡∩Γ¿Ñ á¡á½«ú¿τ¡«
  77.             »α«µÑñπαÑ ó ∩ºδ¬Ñ ÇßßѼí½Ñα; «ñ¡á¬« ßá¼ ΓÑନ¡
  78.             "»α«µÑñπαá" ¿ß»«½∞ºπÑΓß∩ ó αạδσ ß½πτá∩σ, Ñú« ¡Ñ
  79.             ß½ÑñπÑΓ ß¼ÑΦ¿óáΓ∞ ß ¬½ετÑóδ¼ ß½«ó«¼ ∩ºδ¬á Pascal
  80.             "procedure".
  81. Åáαá¼ÑΓα    ùáßΓ∞ ñá¡¡δσ, »ÑαÑñáóáѼá∩ ¡Ñ»«ßαÑñßΓóÑ¡¡« ¼Ñªñπ ñóπ¼∩
  82.             »α«µÑñπαἿ. (é¡ÑΦ¡¿¼¿ ñá¡¡δ¼¿ »«½∞ºπεΓß∩ óßÑ »α«µÑñπαδ,
  83.             ¡« »α« ¡¿σ ¡Ñ½∞º∩ ß¬áºáΓ∞, τΓ« «¡¿ "»ÑαÑñáεΓß∩"). ò«Γ∩
  84.             »«óßεñπ ΓÑନ¡ "áαúπ¼Ñ¡Γ" ¿ß»«½∞ºπÑΓß∩ »«»ÑαѼѡ¡« ß ΓÑα-
  85.             ¼¿¡«¼ "»áαá¼ÑΓα", ó ñá¡¡«¼ »α¿½«ªÑ¡¿¿ ΓÑନ¡ "áαúπ¼Ñ¡Γ"
  86.             ¿ß»«½∞ºπÑΓß∩ ñ½∩ «í«º¡áτÑ¡¿∩ «»αÑñѽѡ¡δσ º¡áτÑ¡¿⌐ ¿½¿
  87.             óδαáªÑ¡¿⌐, »αÑñ½áúáѼδσ ñ½∩ »áαá¼ÑΓα«ó.
  88. ê¡ΓÑαΣÑ⌐ß   îÑΓ«ñ, «íÑß»Ñτ¿óáεΘ¿⌐ φΣΣÑ¬Γ¿ó¡πε ßó∩º∞ ¼Ñªñπ αẽ¿τ¡δ¼¿
  89.             Σ«α¼áΓἿ. é óδß«¬«πα«ó¡Ñóδσ ∩ºδ¬áσ ¿¡ΓÑαΣÑ⌐ß τáßΓ« πß-
  90.             Γá¡áó½¿óáÑΓß∩ ¡Ñ¬«Γ«α묨 ó¿ñἿ Σ«α¼á½∞¡«ú« «íΩ∩ó½Ñ¡¿∩.
  91. ö«α¼á½∞¡δ⌐  ö«α¼á½∞¡δ⌐ »áαá¼ÑΓα-φΓ« »áαá¼ÑΓα, «»¿ßá¡¡δ⌐ ó ¿¡ΓÑαΣÑ⌐-
  92. »áαá¼ÑΓα    ß¡«¼ «»ÑαáΓ«αÑ ¿½¿ «íΩ∩ó½Ñ¡¿¿. ƒºδ¬ æê ¿ß»«½∞ºπÑΓ «»¿ßá-
  93.               ¡¿∩ Γ¿»á »áαá¼ÑΓαá, á ¡Ñ Σ«α¼á½∞¡δÑ »áαá¼ÑΓαδ.
  94.  
  95.  
  96.  
  97.                 æ.1. ìỿßá¡¿Ñ áßßѼí½Ñα¡«⌐ »α«µÑñπαδ.
  98.  
  99.     éδß«¬«πα«ó¡ÑóδÑ  ∩ºδ¬¿  Σ¿α¼δ  Microsoft  ¿ß»«½∞ºπεΓ ñ½∩ »α«µÑñπα¡δσ
  100. ó맮ó«ó »α¿í½¿º¿Γѽ∞¡« «ñ¿¡ ¿ Γ«Γ ªÑ ¿¡ΓÑαΣÑ⌐ß. äá¡¡δ⌐ αáºñѽ  «»¿ßδóáÑΓ
  101. ¿¡ΓÑαΣÑ⌐ß, »«ºó«½∩εΘ¿⌐ óá¼ óδºδóáΓ∞ áßßѼí½Ñα¡πε »α«µÑñπαπ ß »«¼«Θ∞ε ΓÑσ
  102. ªÑ  ßá¼δσ  ¼ÑΓ«ñ«ó,  ¬«Γ«αδÑ  óδ  »α¿¼Ñ¡∩½¿  ñ½∩  ¬«ñá, ßúÑ¡Ñα¿α«óá¡¡«ú«
  103. ¬«¼»¿½∩Γ«αἿ Σ¿α¼δ  Microsoft. Åα«µÑñπαδ,  ¡á»¿ßá¡¡δÑ ß  »«¼«Θ∞ε ñá¡¡δσ
  104. ¼ÑΓ«ñ«ó,   ¼«úπΓ   óδºδóáΓ∞ß∩   αѬπα߿󡫠  ¿   ¼«úπΓ   íδΓ∞ φΣΣÑ¬Γ¿ó¡«
  105. ¿ß»«½∞º«óáΓ∞ß∩  ß«  ßαÑñßΓó«¼  Stack  Trace ¼¡«ú««¬«¡¡«ú« «Γ½áñτ¿¬á Code
  106. View Σ¿α¼δ  Microsoft. æΓá¡ñáαΓ¡δ⌐  ¼ÑΓ«ñ »«½πτÑ¡¿∩  ¿¡ΓÑαΣÑ⌐ßá ß ∩ºδ¬«¼
  107. ÇßßѼí½Ñα ß«ßΓ«¿Γ ¿º ß½ÑñπεΘ¿σ Φáú«ó:
  108.  
  109.     1.櫺ñá¡¿Ñ »α«µÑñπαδ.
  110.  
  111.     2.éó«ñ »α«µÑñπαδ.
  112.  
  113.     3.ÉẼÑΘÑ¡¿Ñ ½«¬á½∞¡δσ ñá¡¡δσ (¡Ñ«í∩ºáΓѽ∞¡«).
  114.  
  115.     4.ÉѺÑαó¿α«óá¡¿Ñ º¡áτÑ¡¿⌐ αÑú¿ßΓα«ó.
  116.  
  117.     5.Åáαá¼ÑΓαδ ñ«ßΓπ»á.
  118.  
  119.     6.髺óαáΘÑ¡¿Ñ º¡áτÑ¡¿∩ (¡Ñ«í∩ºáΓѽ∞¡«).
  120.  
  121.     7.éδσ«ñ ¿º »α«µÑñπαδ.
  122.  
  123.     èáªñδ⌐ ¿º ß½ÑñπεΘ¿σ Φáú«ó «»¿ßδóáÑΓß∩ ó Éáºñѽáσ æ.1.1-æ.1.7.
  124.  
  125.  
  126.                       æ.1.1. ìỿßá¡¿Ñ »α«µÑñπαδ.
  127.  
  128.     è«¼»á¡«óΘ¿¬ ¡Ñ ß¼«ªÑΓ «íΩÑñ¿¡¿Γ∞ áßßѼí½Ñα¡πε »α«µÑñπαπ ß óδºδóáεΘÑ⌐
  129. »α«µÑñπα«⌐,  Ñß½¿   ¿ß»«½∞ºπεΓß∩  ¡Ñß«ó¼ÑßΓ¿¼δÑ   ßÑú¼Ñ¡Γδ,  ½¿í«   ßá¼á
  130. »α«µÑñπαá  «»¿ßá¡á  ¡Ñ»αáó¿½∞¡«.  î«úπΓ  «¬áºáΓ∞ß∩  »«½Ñº¡δ¼¿  ß½ÑñπεΘ¿Ñ
  131. »«½«ªÑ¡¿∩:
  132.  
  133.     -àß½¿ óδ ¿¼ÑÑΓÑ Macro Assembler óÑαß¿¿ 5.0, ó ¡áτá½Ñ ¿ßσ«ñ¡«ú« Σá⌐½á
  134. ¿ß»«½∞ºπ⌐ΓÑ ñ¿αÑ¬Γ¿óπ .MODEL. äá¡¡á∩ ñ¿αÑ¬Γ¿óá áóΓ«¼áΓ¿τÑ߬¿  úÑ¡Ñα¿απÑΓ
  135. ß««ΓóÑΓßΓóπεΘ¿⌐  Γ¿»  ó«ºóαáΘáѼ«ú«  º¡áτÑ¡¿∩  ("near"  ñ½∩  ¼á½«⌐   ¿½¿
  136. ¬«¼»á¬Γ¡«⌐ ¼«ñѽ¿, "far"-ó  »α«Γ¿ó¡«¼ ß½πτáÑ). àß½¿  π óáß í«½ÑÑ  αá¡¡∩∩
  137. óÑαß¿∩ áßßѼí½Ñαá,  «»¿Φ¿ΓÑ »α«µÑñπαπ  ß áΓα¿íπΓ«¼  "far" (½¿í«  "near",
  138. Ñß½¿  óδºδóáεΘá∩  »α«úαἼᠠαáí«ΓáÑΓ  ó  ¼á½«⌐  ¿½¿  ¬«¼»á¬Γ¡«⌐  ¼«ñѽ¿
  139. Quick-C).
  140.  
  141.     -àß½¿  π  óáß  Microsoft  Macro  Assembler  óÑαß¿¿ 5.0 ¿½¿ óδΦÑ, ñ½∩
  142. «íΩ∩ó½Ñ¡¿∩ ¬«ñ«ó«ú«  ßÑú¼Ñ¡Γá ¿ß»«½∞ºπ⌐ΓÑ  π»α«ΘÑ¡¡πε ñ¿αÑ¬Γ¿óπ  .CODE ¿
  143. ñ¿αÑ¬Γ¿óπ  .DATA  ñ½∩  «íΩ∩ó½Ñ¡¿∩  ßÑú¼Ñ¡Γá  ñá¡¡δσ.   (àß½¿  π  óáß ¡ÑΓ
  144. «íΩ∩ó½Ñ¡¿⌐  ñá¡¡δσ,  ñ«ßΓáΓ«τ¡«  Γ«½∞¬«  ¬«ñ«ó«ú«  ßÑú¼Ñ¡Γá).  àß½¿   óδ
  145. ¿ß»«½∞ºπÑΓÑ  í«½ÑÑ  αá¡¡εε  óÑαß¿ε  áßßѼí½Ñαá,  αáßß¼«Γα¿ΓÑ   ñ¿αÑ¬Γ¿óδ
  146. SEGMENT,  GROUP  ¿  ASSUME  ó  ÉáºñѽѠ æ.4  "æÑú¼Ñ¡Γ¡á∩  ¼«ñѽ∞   Σ¿α¼δ
  147. Microsoft".
  148.  
  149.     -îÑΓ¬á  »α«µÑñπαδ  ñ«½ª¡á  íδΓ∞  «íΩ∩ó½Ñ¡á,  ¬á¬  "public" ß »«¼«Θ∞ε
  150. ñ¿αÑ¬Γ¿óδ  PUBLIC.  äá¡¡«Ñ  «íΩ∩ó½Ñ¡¿Ñ  ñѽáÑΓ  »α«µÑñπαπ  ñ«ßΓπ»¡«⌐ ñ½∩
  151. ó맮ó«ó ¿º ñαπú¿σ ¼«ñπ½Ñ⌐. èα«¼Ñ  Γ«ú«, ½εíδÑ ñá¡¡δÑ, ¬«Γ«αδÑ óδ  σ«Γ¿ΓÑ
  152. ßñѽáΓ∞  ñ«ßΓπ»¡δ¼¿  ñ½∩  ñαπú¿σ  ¼«ñπ½Ñ⌐,  ñ«½ª¡δ  íδΓ∞  «íΩ∩ó½Ñ¡δ, ¬á¬
  153. PUBLIC.
  154.  
  155.     -⽫íá½∞¡δÑ ñá¡¡δÑ ¿½¿ »α«µÑñπαδ, ¬ ¬«Γ«αδ¼ «ßπΘÑßΓó½∩ÑΓß∩ ñ«ßΓπ» ¿º
  156. óáΦÑ⌐ »α«µÑñπαδ, ñ«½ª¡δ íδΓ∞  «íΩ∩ó½Ñ¡δ, ¬á¬ EXTRN. ìá¿í«½ÑÑ  íѺ«»áß¡δ⌐
  157. »πΓ∞  ¿ß»«½∞º«óá¡¿∩  EXTRN-φΓ«  »«¼ÑΘÑ¡¿Ñ  ñ¿αÑ¬Γ¿óδ  ó¡Ñ   ßÑú¼Ñ¡Γ«¡«ú«
  158. «»αÑñѽѡ¿∩ (ΓѼ ¡Ñ ¼Ñ¡ÑÑ, "í½¿ª¡¿Ñ" ñ
  159.  
  160.  
  161.                        æ.1.2. éσ«ñ ó »α«µÑñπαπ.
  162.  
  163.     Åα«µÑñπαá ¡áτ¿¡áÑΓß∩ ß ñóπσ ¿¡ßΓαπ¬µ¿⌐:
  164.  
  165. push    bp
  166. mov     bp,sp
  167.  
  168.     äá¡¡á∩  »«ß½Ññ«óáΓѽ∞¡«ßΓ∞  ¬«¼á¡ñ  πßΓá¡áó½¿óáÑΓ  αÑú¿ßΓα  BP,  ¬á¬
  169. π¬áºáΓѽ∞ ¡á ºá»¿ß∞ á¬Γ¿óᵿ¿. äá¡¡δ⌐ π¬áºáΓѽ∞ ¿ß»«½∞ºπÑΓß∩ ñ½∩ ñ«ßΓπ»á
  170. ¬ »áαá¼ÑΓαá¼ ¿  ½«¬á½∞¡δ¼ ñá¡¡δ¼, αáß»«½«ªÑ¡¡δ¼  ó ßΓѬÑ. ÉÑú¿ßΓα  SP ¡Ñ
  171. ¼«ªÑΓ  íδΓ∞  ¿ß»«½∞º«óá¡  ñ½∩  ñá¡¡«⌐  µÑ½¿,  »«ß¬«½∞¬π  «¡  ¡Ñ ∩ó½∩ÑΓß∩
  172. ¿¡ñÑ¬ß¡δ¼ ¿½¿ íẫóδ¼ αÑú¿ßΓα«¼. èα«¼Ñ Γ«ú«, º¡áτÑ¡¿Ñ αÑú¿ßΓαá SP  ¼«ªÑΓ
  173. ¿º¼Ñ¡∩Γ∞ß∩  »α¿  ñ«íáó½Ñ¡¿¿  ñá¡¡δσ  ó  ßΓѬ.  ç¡áτÑ¡¿Ñ  ªÑ  αÑú¿ßΓαá BP
  174. «ßΓáÑΓß∩ »«ßΓ«∩¡¡δ¼ ¡á »α«Γ∩ªÑ¡¿¿ óßÑ⌐ »α«µÑñπαδ, ß««ΓóÑΓßΓóÑ¡¡«, ¬áªñδ⌐
  175. »áαá¼ÑΓα ¼«ªÑΓ íδΓ∞ áñαÑß«óá¡, ¬á¬ Σ¿¬ß¿α«óá¡¡«Ñ ß¼ÑΘÑ¡¿Ñ,  «Γ¡«ß¿Γѽ∞¡«
  176. º¡áτÑ¡¿∩ BP.
  177.  
  178.     Å«ß½Ññ«óáΓѽ∞¡«ßΓ∞ ¿¡ßΓαπ¬µ¿⌐,  »α¿óÑñÑ¡¡á∩ óδΦÑ,  ß¡áτá½á ß«σαá¡∩ÑΓ
  179. º¡áτÑ¡¿Ñ BP, »«ß¬«½∞¬π «¡« »«ΓαÑíπÑΓß∩ óδºδóáεΘÑ⌐ »α«µÑñπαÑ, ¬á¬  Γ«½∞¬«
  180. ºá¬«¡τ¿Γß∩ ΓѬπΘá∩ »α«µÑñπαá. çáΓѼ ó αÑú¿ßΓα BP ºá¡«ß¿Γß∩ º¡áτÑ¡¿Ñ  SP,
  181. τΓ«íδ ¿¼ÑΓ∞ º¡áτÑ¡¿Ñ π¬áºáΓѽ∩ ßΓѬᠻÑαÑñ óσ«ñ«¼ ó »α«µÑñπαπ.
  182.  
  183.  
  184.           æ.1.3. ÉẼÑΘÑ¡¿Ñ ½«¬á½∞¡δσ ñá¡¡δσ (¡Ñ«í∩ºáΓѽ∞¡«).
  185.  
  186.     ÇßßѼí½Ñα¡á∩ »α«µÑñπαá ¿ß»«½∞ºπÑΓ ñ½∩ αẼÑΘÑ¡¿∩ ½«¬á½∞¡δσ ñá¡¡δσ ΓÑ
  187. ªÑ ßá¼δÑ ßαÑñßΓóá, τΓ« ¿ óδß«¬«πα«ó¡ÑóδÑ ∩ºδ¬¿. ùΓ«íδ πßΓá¡«ó¿Γ∞ αẼÑαδ
  188. »á¼∩Γ¿  ñ½∩  αẼÑΘÑ¡¿∩  ½«¬á½∞¡δσ  ñá¡¡δσ,  »α«ßΓ« π¼Ñ¡∞Φ¿ΓÑ ß«ñÑন¼«Ñ
  189. αÑú¿ßΓαá SP ó ΓαÑΓ∞Ñ⌐  ¿¡ßΓαπ¬µ¿¿ »α«µÑñπαδ.  (ä½∩ úáαá¡Γ¿¿  ¬«ααÑ¬Γ¡«ú«
  190. óδ»«½¡Ñ¡¿∩ óá¼ ß½ÑñπÑΓ óßÑúñá πóѽ¿τ¿óáΓ∞ ¿½¿ π¼Ñ¡∞ΦáΓ∞ ß«ñÑন¼«Ñ SP ¡á
  191. τÑΓ¡«Ñ   τ¿ß½«).   ô¼Ñ¡∞ΦÑ¡¿Ñ   ß«ñÑন¼«ú«   αÑú¿ßΓαá   SP  αѺÑαó¿απÑΓ
  192. »α«ßΓαá¡ßΓó« ßΓѬᠠñ½∩ ½«¬á½∞¡δσ  ñá¡¡δσ. äá¡¡á∩  »á¼∩Γ∞ ñ«½ª¡á  íδΓ∞ ó
  193. ¬«¡µÑ »α«µÑñπαδ ó«ßßΓá¡«ó½Ñ¡á.
  194.  
  195.     é ß½ÑñπεΘ¿σ ¿¡ßΓαπ¬µ¿∩σ,  "space"-φΓ« «íΘ¿⌐ αẼÑα  íá⌐Γ«ó ½«¬á½∞¡δσ
  196. ñá¡¡δσ.  ä«ßΓπ»  ¬   ½«¬á½∞¡δ¼  »ÑαѼѡ¡δ¼  «ßπΘÑßΓó½∩ÑΓß∩   »«ßαÑñßΓó«¼
  197. Σ¿¬ß¿α«óá¡¡δσ «Γα¿µáΓѽ∞¡δσ ß¼ÑΘÑ¡¿⌐ BP.
  198.  
  199. push    bp
  200. mov     bp,sp
  201.         sub     sp,space
  202.  
  203. -Åα¿¼Ñα:
  204. push     bp
  205. mov      bp,sp
  206. sub      sp,4
  207. .
  208. .
  209. .
  210. mov     WORD PTR [bp-2],0
  211. mov     WORD PTR [bp-4],0
  212.  
  213.     Åα¿óÑñÑ¡¡δ⌐ óδΦÑ »α¿¼Ñα ¿ß»«½∞ºπÑΓ ñóÑ ½«¬á½∞¡δÑ »ÑαѼѡ¡δÑ,  ¬áªñá∩
  214. ¿º ¬«Γ«αδσ ¿¼ÑÑΓ  αẼÑα 2 íá⌐Γá.   SP π¼Ñ¡∞ΦáÑΓß∩ ¡á  τÑΓδαÑ, »«ß¬«½∞¬π
  215. ñ½∩ ½«¬á½∞¡δσ  ñá¡¡δσ ΓαÑíπÑΓß∩  τÑΓδαÑ íá⌐Γá.  Å«ºªÑ, ¬áªñá∩  ¿º ñá¡¡δσ
  216. »ÑαѼѡ¡δσ ¿¡¿µ¿á½¿º¿απÑΓß∩ 0. äá¡¡δÑ »ÑαѼѡ¡δÑ ¡¿¬«úñá ¡Ñ  «íΩ∩ó½∩εΓß∩
  217. Σ«α¼á½∞¡«   ¬á¬«⌐-½¿í«   ñ¿αÑ¬Γ¿ó«⌐   áßßѼí½Ñαá;   »α«úαá¼¼¿ßΓ   ñ«½ªÑ¡
  218. «Γ߽Ѫ¿óáΓ∞ ¿σ ßἫßΓ«∩Γѽ∞¡«
  219.  
  220.     ï«¬á½∞¡δÑ »ÑαѼѡ¡δÑ ¡áºδóáεΓß∩  ΓᬪѠñ¿¡á¼¿τÑ߬¿¼¿, ßΓѬ«ó묨  ¿½¿
  221. áóΓ«¼áΓ¿τÑ߬¿¼¿ »ÑαѼѡ¡δÑ.
  222.  
  223.  
  224.                æ.1.4. ÉѺÑαó¿α«óá¡¿Ñ º¡áτÑ¡¿⌐ αÑú¿ßΓα«ó.
  225.  
  226.     ÇßßѼí½Ñα¡δÑ »α«µÑñπαδ,  óδºδóáѼδÑ ¿º  ½εí«ú« óδß«¬«πα«ó¡Ñú«  ∩ºδ¬á
  227. Σ¿α¼δ Microsoft ñ«½ª¡δ ºáαѺÑαó¿α«óáΓ∞  º¡áτÑ¡¿Ñ αÑú¿ßΓα«ó SI, DI,  SS ¿
  228. DS ( ó  ñ«»«½¡Ñ¡¿Ñ ¬ αÑú¿ßΓαπ  BP, ¬«Γ«αδ⌐ πªÑ  íδ½ ß«σαá¡Ñ¡). Æ«  ÑßΓ∞,
  229. ß½ÑñπÑΓ  ß«σαá¡¿Γ∞  ß«ñÑন¼«Ñ  ΓÑσ  αÑú¿ßΓα«ó,  ¬«Γ«αδÑ »α«úαἼᠼ«ªÑΓ
  230. ¿º¼Ñ¡¿Γ∞. àß½¿  »α«úαἼᠡѠ ¿º¼Ñ¡∩ÑΓ ß«ñÑন¼«Ñ  ¬á¬«ú«-½¿í« αÑú¿ßΓαá,
  231. φëàαÑú¿ßΓα ¡ÑΓ ¡πªñδ ºá»«¼¿¡áΓ∞.
  232.  
  233.     ÆÑ αÑú¿ßΓαδ, ¬«Γ«αδÑ óδ ºá»«¼¡¿½¿ »ÑαÑñ óσ«ñ«¼ ó »α«µÑñπαπ,  ß½ÑñπÑΓ
  234. ºáΓѼ ó«ßßΓá¡«ó¿Γ∞ »ÑαÑñ óδσ«ñ«¼ ¿º »α«µÑñπαδ (¬á¬ «íΩ∩ß¡∩ÑΓß∩ ó ÉáºñѽÑ
  235. æ.1.7 "éδσ«ñ ¿º »α«µÑñπαδ").
  236.  
  237.     ÉѬ«¼Ñ¡ñπѼδ⌐  ¼ÑΓ«ñ  (¿ß»«½∞ºπѼδ⌐  óßѼ¿ óδß«¬«πα«ó¡Ñó묨 ∩ºδ¬á¼¿)
  238. ß«ßΓ«¿Γ  ó  Γ«¼,  τΓ«íδ  ºá»«¼¿¡áΓ∞  αÑú¿ßΓαδ »«ß½Ñ Γ«ú«, ¬á¬ πßΓá¡«ó½Ñ¡
  239. π¬áºáΓѽ∞ ¡á  ºá»¿ß∞ á¬Γ¿óᵿ¿  ¿ αẼÑΘÑ¡δ  ½«¬á½∞¡δÑ ñá¡¡δÑ  (Ñß½¿ «¡¿
  240. ßπΘÑßΓóπεΓ). é ß½ÑñπεΘѼ Σαáú¼Ñ¡ΓÑ »α«úαá¼¼δ αÑú¿ßΓαδ DI ¿ SI (ó  ñá¡¡«¼
  241. »«α∩ñ¬Ñ) ñ«½ª¡δ íδΓ∞ ó«ßßΓá¡«ó½Ñ¡δ »ÑαÑñ óδσ«ñ«¼ ¿º »α«µÑñπαδ.
  242.  
  243. push     bp    ;çừ¼¿¡á¡¿Ñ ßΓáα«ú« π¬áºáΓѽ∩ ºá»¿ß¿ á¬Γ¿óᵿ¿
  244. mov      bp,sp ;ôßΓá¡«ó¬á ΓѬπΘÑú« π¬áºáΓѽ∩ ºá»¿ß¿ á¬Γ¿óᵿ¿
  245. sub      sp,4  ;ÉẼÑΘÑ¡¿Ñ »á¼∩Γ¿ ñ½∩ ½«¬á½∞¡δσ ñá¡¡δσ
  246. push     si    ;æ«σαá¡Ñ¡¿Ñ SI ¿ DI
  247. puih     di
  248. .
  249. .
  250. .
  251.  
  252.  
  253.                       æ.1.5. ä«ßΓπ» ¬ »áαá¼ÑΓαá¼.
  254.  
  255.     èá¬ Γ«½∞¬« óδ πßΓᡫ󿽿 ó »α«µÑñπαÑ π¬áºáΓѽ∞ ¡á ºá»¿ß∞  á¬Γ¿óᵿ¿,
  256. αẼÑßΓ¿½¿  ½«¬á½∞¡δÑ  ñá¡¡δÑ  (Ñß½¿  ΓαÑíπÑΓß∩)  ¿  ß«σαá¡¿½¿  º¡áτÑ¡¿∩
  257. αÑú¿ßΓα«ó,  óδ  ¼«ªÑΓÑ  ¡á»¿ßáΓ∞  «ß¡«ó¡«Ñ  Γѽ«  »α«µÑñπαδ.  é »α«µÑßßÑ
  258. ¡á»¿ßá¡¿∩ ¿¡ßΓαπ¬µ¿⌐,  «ßπΘÑßΓó½∩εΘ¿σ ñ«ßΓπ»  ¬ »áαá¼ÑΓαá¼,  αáßß¼«Γα¿ΓÑ
  259. ßσѼπ ºá»¿ß¿ á¬Γ¿óᵿ¿ »«ß½Ñ ó맮óá »α«µÑñπαδ, ¿º«íαáªÑ- ¡¡πε ¡á α¿ßπ¡¬Ñ
  260. æ.1.
  261.  
  262. æΓáαΦ¿Ñ    |»áαá¼ÑΓα       |
  263. áñαÑßá     |»áαá¼ÑΓα       |
  264.            |   .           |
  265.            |   .           |
  266.            |   .           |
  267.            |               |
  268.            |»áαá¼ÑΓα       |
  269.            |áñαÑß ó«ºóαáΓá |
  270.            | ºá»«¼¡Ñ¡¡«Ñ   |   ºñÑß∞ σαá¡¿Γß∩ π¬áºáΓѽ∞ ¡á ºá»¿ß∞
  271.            | BP            |   á¬Γ¿óᵿ¿ (BP)
  272.            |»á¼∩Γ∞ ñ½∩ ½«- |
  273.            |¬á½∞¡δσ ñá¡¡δσ |
  274.            |ºá»«¼¡Ñ¡¡δ⌐ SI |
  275.            |ºá»«¼¡Ñ¡¡δ⌐    |   SP π¬áºδóáÑΓ ¡á »«ß½Ññ¡¿⌐ φ½Ñ¼Ñ¡Γ,
  276.            | DI            |   »«¼ÑΘÑ¡¡δ⌐ ó ßΓѬ.
  277. î½áñΦ¿Ñ
  278. áñαÑßá
  279.  
  280.                     É¿ßπ¡«¬ æ.1. çỿß∞ á¬Γ¿óᵿ¿.
  281.  
  282.  
  283.     çỿß∞     á¬Γ¿óᵿ¿     »α«µÑñπαδ     πßΓá¡áó½¿óáÑΓß∩     ß½ÑñπεΘÑ⌐
  284. »«ß½Ññ«óáΓѽ∞¡«ßΓ∞ε ñÑ⌐ßΓó¿⌐:
  285.  
  286.     1.éδºδóáεΘá∩ »α«úαἼᠻ«¼ÑΘáÑΓ ¬áªñδ⌐  »áαá¼ÑΓα ó ßΓѬ, »«ß½Ñ  τÑú«
  287. αÑú¿ßΓα SP π¬áºδóáÑΓ ¡á »«ß½Ññ¡¿⌐ αẼÑΘÑ¡¡δ⌐ »áαá¼ÑΓα.
  288.  
  289.     2.éδºδóáεΘá∩   »α«úαἼᠠ ¿¡¿µ¿¿απÑΓ   ¿¡ßΓαπ¬µ¿ε   CALL,   ¬«Γ«αá∩
  290. πßΓá¡áó½¿óáÑΓ áñαÑß ó«ºóαáΓá (¼ÑßΓ«  ó óδºδóáεΘÑ⌐ »α«úαá¼¼Ñ, ¡á  ¬«Γ«α«Ñ
  291. ó«ºóαáΘáÑΓß∩ π»αáó½Ñ¡¿Ñ »«ß½Ñ «¬«¡τá¡¿∩ αáí«Γδ »α«µÑñπαδ) ¿ »«¼ÑΘáÑΓ Ñú«
  292. ó ßΓѬ. äá¡¡δ⌐  áñαÑß ¼«ªÑΓ íδΓ∞  ½¿í« ñδá íá⌐Γá  ñ½¿¡¡«⌐ (ñ½∩ "í½¿ª¡¿σ"
  293. ó맮ó«ó),  ½¿í«  τÑΓδαÑ  íá⌐Γá  ñ½¿¡¡«⌐  (ñ½∩ "ñá½∞¡¿σ" ó맮ó«ó). ÆÑ»Ñα∞
  294. αÑú¿ßΓα SP π¬áºδóáÑΓ ¡á ñá¡¡δ⌐ áñαÑß.
  295.  
  296.     3.ÅÑαóá∩ ¿¡ßΓαπ¬µ¿∩ óδºóá¡¡«⌐ »α«µÑñπαδ ß«σαá¡∩ÑΓ ßΓáα«Ñ º¡áτÑ¡¿Ñ BP
  297. (push bp). ÉÑú¿ßΓα SP ΓÑ»Ñα∞ π¬áºδóáÑΓ ¡á ß«σαá¡Ñ¡¡πε ¬«»¿ε BP.
  298.  
  299.     4.êß»«½∞ºπ⌐ΓÑ αÑú¿ßΓα BP ñ½∩ ºáσóáΓá ΓѬπΘÑú« º¡áτÑ¡¿∩ αÑú¿ßΓαá SP ß
  300. »«¼«Θ∞ε ¿¡ßΓαπ¬µ¿¿ mov  bp, sp. ÆÑ»Ñα∞  BP π¬áºδóáÑΓ ¡á  ßΓáα«Ñ º¡áτÑ¡¿Ñ
  301. BP.
  302.  
  303.     5.ū߬«½∞¬π BP «ßΓáÑΓß∩ »«ßΓ«∩¡¡δ¼ ¡á »α«Γ∩ªÑ¡¿¿ óßÑ⌐ »α«µÑñπαδ,  SP
  304. ¼«ªÑΓ  íδΓ∞  π¼Ñ¡∞ΦÑ¡«  ñ½∩  Γ«ú«,  τΓ«íδ  «ßó«í«ñ¿Γ∞  ¼ÑßΓ« ó ßΓѬѠñ½∩
  305. ½«¬á½∞¡δσ ñá¡¡δσ ¿½¿ ºáαѺÑαó¿α«óá¡¡δσ αÑú¿ßΓα«ó.
  306.  
  307.     é «ß¡«ó¡«¼, ß¼ÑΘÑ¡¿Ñ («Γ¡«ß¿Γѽ∞¡« BP) ñ½∩ »áαá¼ÑΓαá X αáó¡«:
  308.  
  309. 2 + αẼÑα áñαÑßá ó«ºóαáΓá
  310. + «íΘ¿⌐ αẼÑα »áαá¼ÑΓα«ó ¼Ñªñπ X ¿ BP.
  311.  
  312.     ìá»α¿¼Ñα,  »αÑñ»«½«ª¿¼,  τΓ«  »α«µÑñπαá  FAR »«½πτáÑΓ «ñ¿¡ »áαá¼ÑΓα,
  313. ñóπσíá⌐Γ«óδ⌐ áñαÑß. æ¼ÑΘÑ¡¿Ñ ñ½∩ φΓ«ú« »áαá¼ÑΓαá íπñÑΓ αáó¡«:
  314.  
  315. ß¼ÑΘÑ¡¿Ñ áαúπ¼Ñ¡Γá = 2 + αẼÑα áñαÑßá ó«ºóαáΓá
  316.                    = 2 + 4
  317.                    = 6
  318.  
  319.     Çαúπ¼Ñ¡Γ ¼«ªÑΓ ó Γᬫ¼ ß½πτáÑ  íδΓ∞ ºáúαπªÑ¡ ó αÑú¿ßΓα BP  ß »«¼«Θ∞ε
  320. ß½ÑñπεΘÑ⌐ ¿¡ßΓαπ¬µ¿¿:
  321.  
  322.     mov bx,[bp+6]
  323.  
  324.     àß½¿ óδ «ñ¡áªñδ «»αÑñѽ¿½¿ ß¼ÑΘÑ¡¿Ñ ñ½∩ ¬áªñ«ú« »áαá¼ÑΓαá, óá¼ ¼«úπΓ
  325. »«¡áñ«í¿Γ∞ß∩  ßΓ᫬«óδÑ  παáó¡Ñ¡¿∩  ¿½¿  ßΓαπ¬Γπαδ,  τΓ«íδ ¬ »áαá¼ÑΓαπ ó
  326. óáΦѼ ¿ßσ«ñ¡«¼ áßßѼí½Ñα¡«¼ ¬«ñÑ ¼«ª¡« í佫 «íαáΓ¿Γ∞ß∩ »«  Ññ¿¡ßΓóÑ¡¡«¼π
  327. ¿ñÑ¡Γ¿Σ¿µ¿απεΘÑ¼π ¿¼Ñ¡¿. ìá»α¿¼Ñα,  ¬ »áαá¼ÑΓαπ, ¡áσ«ñ∩ΘѼπß∩  »« áñαÑßπ
  328. BP+6  íπñÑΓ  πñ«í¡«  «íαáΘáΓ∞ß∩,  Ñß½¿  ó ¡áτá½Ñ ¿ßσ«ñ¡«ú« áßßѼí½Ñα¡«ú«
  329. Σá⌐½á óδ »«¼ÑßΓ¿ΓÑ ß½ÑñπεΘ¿⌐ «»ÑαáΓ«α:
  330.  
  331.     Arg1 EQU [bp+6]
  332.  
  333.     Å«ß½Ñ φΓ«ú« ó ½εí«⌐ ¿¡ßΓαπ¬µ¿¿ ¡á ñá¡¡δ⌐ »áαá¼ÑΓα ¼«ª¡« ßßδ½áΓ∞ß∩ »«
  334. ¿ñÑ¡Γ¿Σ¿¬áΓ«απ  Arg1.  êß»«½∞ºπ⌐ΓÑ  φΓ«  ßαÑñßΓó«  ó  ¬áτÑßΓóÑ »«½Ñº¡«ú«
  335. ñ«»«½¡Ñ¡¿∩.
  336.  
  337. ---------------------------------------------------------------------
  338.  
  339.     Åα¿¼Ñτá¡¿Ñ:
  340.  
  341.     éδß«¬«πα«ó¡ÑóδÑ  ∩ºδ¬¿  Σ¿α¼δ  Microsoft  óßÑúñá  αẼÑΘáεΓ   áñαÑßá
  342. ßÑú¼Ñ¡Γ«ó  »ÑαÑñ  áñαÑßἿ  ß¼ÑΘÑ¡¿⌐.  Å«φΓ«¼π,  Ñß½¿  ó ßΓѬ «»π߬áεΓß∩
  343. áαúπ¼Ñ¡Γδ  í«½∞ΦÑ  2-σ  íá⌐Γ«ó,  ßΓáαΦ¿Ñ  ß½«óá  óßÑúñá «»π߬áεΓß∩ »ÑαÑñ
  344. ¼½áñΦ¿¼ ß½«ó«¼.
  345.  
  346. ---------------------------------------------------------------------
  347.  
  348.  
  349.  
  350.                æ.1.6. é«ºóαáΓ º¡áτÑ¡¿⌐ (¡Ñ«í∩ºáΓѽ∞¡«).
  351.  
  352.     éδß«¬«πα«ó¡ÑóδÑ ∩ºδ¬¿ Microsoft ñ½∩ »«½πτÑ¡¿∩ ó«ºóαáΘáѼδσ  º¡áτÑ¡¿⌐
  353. »«½∞ºπεΓß∩ á¡á½«ú¿τ¡δ¼¿ ß«ú½áΦÑ¡¿∩¼¿. äá¡¡δÑ ß«ú½áΦÑ¡¿∩ ß«ó»áñáεΓ,  Ñß½¿
  354. ó«ºóαáΘáѼδ⌐  Γ¿»  ñá¡¡δσ  ¡Ñ  ∩ó½∩ÑΓß∩  ß½«ª¡δ¼  (¡á»α¿¼Ñα ¼áß߿󫼠¿½¿
  355. ßΓαπ¬Γπα«⌐) ¿ ¿¼ÑÑΓ ñ½¿¡π ¡Ñ  í«½ÑÑ τÑΓδαÑσ íá⌐Γ«ó. ¥Γ« ó¬½ετáÑΓ  ó ßÑí∩
  356. óßÑ "í½¿ª¡¿¿" ¿ "ñá½∞¡¿Ñ" áñαÑßá (Γ« ÑßΓ∞ óßÑ π¬áºáΓѽ¿ ¿ óßÑ »áαá¼ÑΓαδ,
  357. »ÑαÑñáóáѼδÑ »« ßß佬Ñ).
  358.  
  359. ÉẼÑα ñá¡¡δσ          é«ºóαáΘáѼ«Ñ º¡áτÑ¡¿Ñ
  360.  
  361.  
  362. 1 íá⌐Γ                 AL
  363. 2 íá⌐Γá                AX
  364. 4 íá⌐Γá                ßΓáαΦá∩ τáßΓ∞ (¿½¿ áñαÑß ßÑú¼Ñ¡Γá) ó DX
  365.                        ¼½áñΦá∩ τáßΓ∞ (¿½¿ áñαÑß ß¼ÑΘÑ¡¿∩) ó AX
  366.  
  367.  
  368.     àß½¿  ó«ºóαáΘáѼ«Ñ   º¡áτÑ¡¿Ñ  í«½∞ΦÑ   τÑΓδαÑσ  íá⌐Γ«ó,   »α«µÑñπαá
  369. óδºδóáѼá∩  ¿º  ∩ºδ¬á  æê,  ñ«½ª¡á  «ΓóÑßΓ¿  »á¼∩Γ∞  ñ½∩   ó«ºóαáΘáѼ«ú«
  370. º¡áτÑ¡¿∩,  á  ºáΓѼ  »«¼ÑßΓ¿Γ∞  φëà áñαÑß  ó  DX:AX.  ôñ«í¡δ¼ ß»«ß«í«¼
  371. αáß»αÑñѽѡ¿∩  »á¼∩Γ¿  ñ½∩   ó«ºóαáΘáѼ«ú«  º¡áτÑ¡¿∩  ∩ó½∩ÑΓß∩   »α«ßΓ«Ñ
  372. «íΩ∩ó½Ñ¡¿Ñ Ñú« ó ßÑú¼Ñ¡ΓÑ ñá¡¡δσ.
  373.  
  374.  
  375.                       æ.1.8. éδσ«ñ ¿º »α«µÑñπαδ.
  376.  
  377.     Åα¿ ºáóÑαΦÑ¡¿¿ »α«µÑñπαδ ñ«½ª¡δ íδΓ∞ óδ»«½¡Ñ¡δ ß½ÑñπεΘ¿Ñ Φáú¿:
  378.  
  379.     1.àß½¿ ¬á¬¿Ñ-½¿í« ¿º αÑú¿ßΓα«ó SS, DS, SI ¿ DI í뫨 ß«σαá¡Ñ¡δ, »ÑαÑñ
  380. óδσ«ñ«¼  ¿º  »α«µÑñπαδ  «¡¿  ñ«½ª¡δ  íδΓ∞  ¿ºó½ÑτÑ¡δ ¿º ßΓѬá ó »«α∩ñ¬Ñ,
  381. «íαáΓ¡«¼ ¿σ αẼÑΘÑ¡¿ε.
  382.  
  383.     2.àß½¿ ½«¬á½∞¡δÑ  ñá¡¡δÑ αẼÑΘÑ¡δ  ó ¡áτá½Ñ  »α«µÑñπαδ, αÑú¿ßΓα  SP
  384. ñ«½ªÑ¡ íδΓ∞ ó«ßßΓá¡«ó½Ñ¡ ß »«¼«Θ∞ε ¿¡ßΓαπ¬µ¿¿ mov sp, bp.
  385.  
  386.     3.é«ßßΓá¡«ó¿ΓÑ  αÑú¿ßΓα  BP  ß  »«¼«Θ∞ε  pop  bp.  äá¡¡δ⌐ Φáú óßÑúñá
  387. ¡Ñ«íσ«ñ¿¼.
  388.  
  389.     4.ìᬫ¡Ñµ,  óÑα¡¿ΓÑß∞   ó  óδºδóáεΘπε   »α«úαá¼¼π  ß   »«¼«Θ∞ε  ret.
  390. éδºδóáεΘ¿⌐  ¼«ñπ½∞  ¡á  ∩ºδ¬Ñ  æê  áóΓ«¼áΓ¿τÑ߬¿  «ΓαÑúπ½¿απÑΓ  ßΓѬ  »«
  391. «Γ¡«ΦÑ¡¿ε ¬ »áαá¼ÑΓαá¼, ¬«Γ«αδÑ í뫨 «»πΘÑ¡δ »α¿ ó맮óÑ.
  392.  
  393. -Åα¿¼Ñαδ:
  394. pop     bp
  395. ret
  396.  
  397.     Åα¿óÑñÑ¡¡δ⌐  óδΦÑ  »α¿¼Ñα  »«¬áºδóáÑΓ  »α«ßΓÑ⌐Φπε »«ß½Ññ«óáΓѽ∞¡«ßΓ∞
  398. óδσ«ñá.  ì¿¬á¬¿Ñ  αÑú¿ßΓαδ  ¡Ñ  í뫨  ºáαѺÑαó¿α«óá¡δ, ¡Ñ í뫨 αẼÑΘÑ¡δ
  399. ½«¬á½∞¡δÑ ñá¡¡δÑ, ¿ ¿ß»«½∞º«óá¡δ ß«ú½áΦÑ¡¿∩ « ßó∩º∩σ ∩ºδ¬á æê.
  400.  
  401. pop     di     ;é«ßßΓá¡«ó½Ñ¡¿Ñ ºáαѺÑαó¿α«óá¡¡δσ αÑú¿ßΓα«ó
  402. pop     si
  403. mov     sp, bp ;Äßó«í«ªñÑ¡¿Ñ »α«ßΓαá¡ßΓóá, ºá¡∩Γ«ú« ½«¬á½∞¡δ¼¿ ñá¡-
  404.                 ¡δ¼¿
  405. pop     bp     ;é«ßßΓá¡«ó½Ñ¡¿Ñ ßΓáα«ú« π¬áºáΓѽ∩ ¡á ºá»¿ß∞ á¬Γ¿óᵿ¿
  406. ret     6      ;éδσ«ñ ¿ ó«ßßΓá¡«ó½Ñ¡¿Ñ 6 íá⌐Γ«ó, ºá¡∩Γδσ áαúπ¼Ñ¡ΓἿ
  407.  
  408.     é ñá¡¡«¼ »α¿¼ÑαÑ  »«¬áºá¡á »«ß½Ññ«óáΓѽ∞¡«ßΓ∞ óδσ«ñá  ñ½∩ »α«µÑñπαδ,
  409. ¬«Γ«αá∩  »αÑñóáα¿Γѽ∞¡«  ºáαѺÑαó¿α«óá½á  º¡áτÑ¡¿∩  αÑú¿ßΓα«ó  SI  ¿ DI,
  410. αẼÑßΓ¿½á  ½«¬á½∞¡δÑ  ñá¡¡δÑ  ¿  ¿ß»«½∞º«óá½á  ß«ú½áΦÑ¡¿∩  «  ßó∩º∩σ ¡Ñ
  411. «Γ¡«ß∩Θ¿Ñß∩  ¬   ∩ºδ¬π  æê.   Å«φΓ«¼π,  »α«µÑñπαá   ñ«½ª¡á  ¿ß»«½∞º«óáΓ∞
  412. ¿¡ßΓαπ¬µ¿ε ret  6, τΓ«íδ  ó«ßßΓá¡«ó¿Γ∞ 6  íá⌐Γ«ó, ºá¡∩Γδσ  »áαá¼ÑΓαἿ ó
  413. ßΓѬÑ.
  414.  
  415.  
  416.           æ.2. é맮ó »α«µÑñπα ¡á ∩ºδ¬Ñ ÇßßѼí½Ñα ¿º ∩ºδ¬á æê.
  417.  
  418.     Åα«úαἼᠡá ∩ºδ¬Ñ  æê ¼«ªÑΓ óδºóáΓ∞  »α«µÑñπαπ ¡á ∩ºδ¬Ñ  ÇßßѼí½Ñα,
  419. ¡áσ«ñ∩Θπεß∩ ó ñαπú«¼ ¼«ñπ½Ñ, ¬á¬ ¿ »α¿ ó맮óÑ æê-Σπ¡¬µ¿¿. é ñ«»«½¡Ñ¡¿Ñ ¬
  420. Φáúá¼, «»¿ßá¡¡δ¼ ó ÉáºñѽѠæ.1 "ìỿßá¡¿Ñ »α«µÑñπαδ ¡á ∩ºδ¬Ñ ÇßßѼí½Ñα",
  421. ¼«úπΓ «¬áºáΓ∞ß∩ »«½Ñº¡δ¼¿ ß½ÑñπεΘ¿Ñ »αáó¿½á:
  422.  
  423.     1.Ä»¿ßδóá⌐ΓÑ »α«µÑñπαδ, óδºδóáѼδÑ ¿º æê-»α«úαá¼¼ ß ¬½ετÑóδ¼  ß½«ó«¼
  424. far,  Ñß½¿  æê-¼«ñπ½∞  íδ½  ß¬«¼»¿½¿α«óá¡  ó  í«½∞Φ«⌐,  ßóÑασí«½∞Φ«⌐ ¿½¿
  425. ßαÑñ¡Ñ⌐ ¼«ñѽ¿  »á¼∩Γ¿, ¿  ß ¬½ετÑóδ¼  ß½«ó«¼ near,  Ñß½¿ æê-¼«ñπ½∞  íδ½
  426. ߬«¼»¿½¿α«óá¡ ó ¼á½«⌐ ¿½¿ ¬«¼»á¬Γ¡«⌐ ¼«ñѽ¿. è½ετÑóδÑ ß½«óá far ¿½¿ near
  427. «Γ¼Ñ¡∩εΓ  ½εíδÑ  ßΓá¡ñáαΓ¡δÑ  ¡áº¡áτÑ¡¿∩.  àß½¿ óδ ¿ß»«½∞ºπÑΓÑ ñ¿αÑ¬Γ¿óπ
  428. .MODEL, ¿¼ÑεΘπεß∩ ó  Micro soft Macro  Assembler óÑαß¿¿ 5.0,  «íΩ∩ó½Ñ¡¿Ñ
  429. ¼«ñѽ¿ »á¼∩Γ¿ ñ½∩ »α«µÑñπαδ ñѽáÑΓß∩ ∩ó¡«.
  430.  
  431.     2.Äíº«α  ß«ú½áΦÑ¡¿⌐  «  ßó∩º∩σ  ∩ºδ¬á  æê.  Å«  ß«ú½áΦÑ¡¿∩¼ ∩ºδ¬á æê
  432. »áαá¼ÑΓαδ  «»π߬áεΓß∩  ó  ßΓѬ  ó  Γ«¼  »«α∩ñ¬Ñ, ó ¬á¬«¼ «¡¿ ¡áσ«ñ∩Γß∩ ó
  433. ¿ßσ«ñ¡«¼ ¬«ñÑ. ìá»α¿¼Ñα, ó맮ó Σπ¡¬µ¿¿  æê calc(a,b); «»π߬áÑΓ b ó  ßΓѬ
  434. αá¡∞ΦÑ  a.  é  »α«Γ¿ó«»«½«ª¡«ßΓ∞  «ßΓá½∞¡δ¼  óδß«¬«πα«ó¡Ñóδ¼  ∩ºδ¬á¼,  ó
  435. ß«ú½áΦÑ¡¿∩σ  «  ßó∩º∩σ  ∩ºδ¬á  æê  »«½«ªÑ¡«,  τΓ«íδ óδºδóáεΘá∩ »α«µÑñπαá
  436. óßÑúñá ó«ßßΓá¡áó½¿óá½á ßΓφ¬ ¡Ñ»«ßαÑñßΓóÑ¡¡« »«ß½Ñ ó«ºóαáΘÑ¡¿∩ π»αáó½Ñ¡¿∩
  437. ¿º óδºδóáѼ«⌐ »α«úαá¼¼δ. æ«ú½áΦÑ¡¿∩  « ßó∩º∩σ ∩ºδ¬á æê  ñѽáεΓ ó«º¼«ª¡δ¼
  438. ó맮ó »ÑαѼѡ¡δ¼ τ¿ß½«¼  »áαá¼ÑΓα«ó.  (ū߬«½∞¬π »Ñαóδ⌐  »áαá¼ÑΓα óßÑúñá
  439. «»π߬áÑΓß∩ ó ßΓѬ »«ß½Ññ¡¿¼,  «¡ ¿¼ÑÑΓ «Γ¡«ß¿Γѽ∞¡« π¬áºáΓѽ∩  ¡á ºá»¿ß∞
  440. á¬Γ¿óᵿ¿  «ñ¿¡  ¿  Γ«Γ  ªÑ  áñαÑß.  ìѺáó¿ß¿¼« «Γ ¬«½¿τÑßΓóá »ÑαÑñá¡¡δσ
  441. τ¿ß½«¼ »áαá¼ÑΓα«ó »α¿¼Ñ¡∩εΓß∩ ß½ÑñπεΘ¿Ñ φΓá»δ:
  442.  
  443.     á)髺óαáΓ  »α«¿ºó«ñ¿Γß∩  »«ßαÑñßΓó«¼  »α«ßΓ«⌐  ¿¡ßΓαπ¬µ¿Ñ⌐  ret.  ìÑ
  444. ó«ßßΓá¡áó½¿óá⌐ΓÑ  ßΓѬ  »«ßαÑñßΓó«¼   ¿¡ßΓαπ¬µ¿¿  ret  size,   »«ß¬«½∞¬π
  445. óδºδóáεΘá∩  æê-»α«µÑñπαá  ßá¼á  ó«ßßΓá¡«ó¿Γ  ßΓѬ,  ¬á¬  Γ«½∞¬« Ñ⌐ íπñÑΓ
  446. »ÑαÑñá¡« π»αáó½Ñ¡¿Ñ.
  447.  
  448.     í)Åáαá¼ÑΓαδ  »«¼ÑΘáεΓß∩  ó  ßΓѬ  ó  »«α∩ñ¬Ñ, «íαáΓ¡«¼ Γ«¼π, ¬á¬ «¡¿
  449. »«∩ó½∩½¿ß∞ ó ¿ßσ«ñ¡«¼ ¬«ñÑ ¡á ∩ºδ¬Ñ æê. ÅÑαóδ⌐ »áαá¼ÑΓα íπñÑΓ ¡áσ«ñ¿Γ∞ß∩
  450. »« ¼½áñΦ¿¼  áñαÑßá¼ »á¼∩Γ¿  (»«ß¬«½∞¬π-φΓ« »«ß½Ññ¡¿⌐  »«¼ÑΘáѼδ⌐ ó  ßΓφ¬
  451. »áαá¼ÑΓα, Γ« ÑßΓ∞ ßΓφ¬ αáßΓÑΓ ó¡¿º).
  452.  
  453.     ß)æΓá¡ñáαΓ¡«,  »áαá¼ÑΓαδ  ∩ºδ¬á  æê  »ÑαÑñáεΓß∩  º¡áτÑ¡¿Ñ¼, ¿ß¬½ετá∩
  454. ¼áßß¿óδ, »ÑαÑñáóáѼδÑ »« áñαÑß¡«⌐ ßß佬Ñ.
  455.  
  456.     3.Äíº«α ß«ú½áΦÑ¡¿⌐ « ¡á¿¼Ñ¡«óá¡¿∩σ ∩ºδ¬á æê.
  457.  
  458.     ì὿τ¿Ñ  »«ñτÑનóá¡¿∩  »ÑαÑñ  ½εíδ¼  ¿¼Ñ¡Ñ¼  ó  ∩ºδ¬Ñ æê ñѽáÑΓ Ñú«
  459. ú½«íá½∞¡δ¼.  é  ∩ºδ¬Ñ  æê  αáß»«º¡áεΓß∩  Γ«½∞¬«  »ÑαóδÑ ó«ßѼ∞ ß¿¼ó«½«ó,
  460. »«φΓ«¼π  ¡Ñ  ñѽá⌐ΓÑ  ¿¼Ñ¡á,  ¿ß»«½∞ºπѼδÑ  æê,  ñ½¿¡¡«⌐  í«½ÑÑ   ó«ß∞¼¿
  461. ß¿¼ó«½«ó.  èα«¼Ñ  Γ«ú«,  Ñß½¿  óδ  íπñÑΓÑ  óδ»«½¡∩Γ∞ ¬«¼»á¡«ó¬π ß «»µ¿Ñ⌐
  462. /NOIGNORECASE, »«¼¡¿ΓÑ, τΓ« ∩ºδ¬ æê τπóßΓó¿Γѽѡ ¬ íπ¬óÑ¡¡δ¼  αÑú¿ßΓαá¼,
  463. ¿ ¡Ñ »αÑ«íαáºπ⌐ΓÑ ¿¼Ñ¡á ¬ óÑασ¡Ñ¼π αÑú¿ßΓαπ.
  464.  
  465.     é  ß½ÑñπεΘѼ  »α¿¼ÑαÑ  »α«úαἼᠠ¡á  ∩ºδ¬Ñ æê óδºδóáÑΓ áßßѼí½Ñα¡πε
  466. »α«µÑñπαπ,  ¬«Γ«αá∩  óδτ¿ß½∩ÑΓ  Ç*2**B,  úñÑ  Ç  ¿  é-»Ñαóδ⌐  ¿   óΓ«α«⌐
  467. »áαá¼ÑΓαδ,  ß««ΓóÑΓßΓóÑ¡¡«.  éδτ¿ß½Ñ¡¿∩  óδ»«½¡∩εΓß∩  »πΓѼ ßñó¿úá ó½Ñó«
  468. αáºα∩ñ«ó ó Ç é αáº.
  469.  
  470.     Åα«úαἼᠠ¡á  ∩ºδ¬Ñ  æê   ¿ß»«½∞ºπÑΓ  ñ½∩  ß«ºñá¡¿∩  ¿¡ΓÑαΣÑ⌐ßá   ß
  471. áßßѼí½Ñα¡«⌐ »α«µÑñπα«⌐ «»¿ßá¡¿Ñ  extern. ìÑ ΓαÑíπÑΓß∩  ¡¿¬á¬¿σ ¬½ετÑóδσ
  472. ß½«ó, »«ß¬«½∞¬π áßßѼí½Ñα¡á∩  »α«µÑñπαá íπñÑΓ ¿ß»«½∞º«óáΓ∞  ß«ú½áΦÑ¡¿∩ «
  473. ßó∩º∩σ ∩ºδ¬á æê.
  474.  
  475. extern int power2(int, int);
  476. main()
  477. {
  478.      printf("3 times 2 to the power of 5 is %d\n", power2(3,5));
  479. }
  480.  
  481.  
  482.  
  483.     ùΓ«íδ  »«¡∩Γ∞,  ¬á¬  »¿ΦÑΓß∩  áßßѼí½Ñα¡á∩  »α«µÑñπαá,   αáßß¼«Γα¿ΓÑ
  484. α¿ßπ¡«¬ æ.2, ¡á ¬«Γ«α«¼ »«¬áºá¡á ßσѼá αẼÑΘÑ¡¿∩ »áαá¼ÑΓα«ó ó ßΓѬÑ.
  485.  
  486. æΓáαΦ¿Ñ áñαÑßá         | B | Arg<-2              |    BP+6
  487. (æ ¬áªñδ¼ «»π߬᡿Ѽ   | A | Arg<-1              |    BP+4
  488. áαúπ¼Ñ¡Γá ¿½¿ ¬áªñδ¼   |     ÇñαÑß ó«ºóαáΓá      |    BP+2
  489. óδº«ó«¼ ßΓѬ αáßΓÑΓ    |     çáαѺÑαó¿α«óá¡¡δ⌐   |    BP
  490. 󡿺)                  |      BP                 |
  491. î½áñΦ¿Ñ áñαÑßá
  492.  
  493.                    É¿ßπ¡«¬ æ.2. çỿß∞ á¬Γ¿óᵿ¿ æê.
  494.  
  495.     ÇñαÑß ó«ºóαáΓá ¿¼ÑÑΓ ó  ñ½¿¡π íá⌐Γá, »αÑñ»«½áúá∩, τΓ«  æê-¼«ñπ½∞ íδ½
  496. ߬«¼»¿½¿α«óá¡  ó  ¼á½«⌐  ¿½¿   ¬«¼»á¬Γ¡«⌐  ¼«ñѽ¿.  àß½¿  ªÑ   æê-¼«ñπ½∞
  497. ¬«¼»¿½¿απÑΓß∩  ó  í«½∞Φ«⌐,  ßóÑασí«½∞Φ«⌐  ¿½¿  ßαÑñ¡Ñ⌐ ¼«ñѽ¿, Γ« áñαÑßá
  498. Arg<-1 ¿ Arg<-2-¬áªñδ⌐ πóѽ¿τ¿óáεΓß∩ ¡á 2 íá⌐Γá, Γ« ÑßΓ∞, ß««ΓóÑΓßΓóÑ¡¡«
  499. ßΓá¡«ó∩Γß∩ BP+6 ¿ BP+8, »«ß¬«½∞¬π áñαÑß ó«ºóαáΓá ºñÑß∞ 4 íá⌐Γá ñ½¿¡«⌐.
  500.  
  501.     ÅÑαóδ⌐  »áαá¼ÑΓα  Arg<-1  αáß»«½«ªÑ¡  »«  áñαÑßá¼ í«½ÑÑ ¼½áñΦ¿¼, τѼ
  502. Arg<-2,»«ß¬«½∞¬π ∩ºδ¬ æê «»π߬áÑΓ  áαúπ¼Ñ¡Γδ ó ßΓѬ ó  «íαáΓ¡«¼ »«α∩ñ¬Ñ.
  503. èáªñδ⌐ áαúπ¼Ñ¡Γ »ÑαÑñáÑΓß∩ º¡áτÑ¡¿Ñ¼. ÇßßѼí½Ñα¡á∩ »α«µÑñπαá ¼«ªÑΓ  íδΓ∞
  504. ¡á»¿ßá¡á ß½ÑñπεΘ¿¼ «íαẫ¼:
  505.  
  506. .MODEL SMALL
  507. .CODE
  508.         PUBLIC _power2
  509. _power2 PROC
  510.         push     bp     ;éσ«ñ¡á∩ »«ß½Ññ«óáΓѽ∞¡«ßΓ∞-ß«σαá¡Ñ¡¿Ñ ßΓáα«-
  511.                          ú« BP
  512.  
  513.  
  514.         mov      bp,sp  ;ôßΓá¡«ó¬á π¬áºáΓѽ∩ ¡á ºá»¿ß∞ á¬Γ¿óᵿ¿
  515.  
  516.         mov      ax,[bp+4]   ;çáúαπº¬á Arg 1 ó AX
  517.         mov      cx,[bp+6]   ;çáúαπº¬á Arg 2 ó CX
  518.         shl      ax,cl       ;AX = AX*(2 ó ßΓѻѡ¿ CX)
  519.                              ;髺óαáΘáѼ«Ñ º¡áτÑ¡¿Ñ «ßΓáÑΓß∩ ó AX
  520.         pop      bp          ;éδσ«ñ¡á∩ »«ß½Ññ«óáΓѽ∞¡«ßΓ∞-ó«ßΓá¡«ó-
  521.                               ½Ñ¡¿Ñ ßΓáα«ú« BP
  522.         ret                  ;éδσ«ñ
  523. _power2 ENDP
  524.         END
  525.  
  526.     Åα¿óÑñÑ¡¡δ⌐ óδΦÑ »α¿¼Ñα »αÑñ»«½áúáÑΓ, τΓ« æê-¼«ñπ½∞ ¬«¼»¿½¿απÑΓß∩  ó
  527. ¼á½«⌐ ¼«ñѽ¿ »á¼∩Γ¿. æ¼ÑΘÑ¡¿Ñ »áαá¼ÑΓαá ¿ ñ¿αÑ¬Γ¿óá .MODEL ¿º¼Ñ¡∩Γß∩ ñ½∩
  528. ñαπú¿σ ¼«ñѽÑ⌐ »á¼∩Γ¿.
  529.  
  530.     ÄíαáΓ¿ΓѠ󡿼᡿Ñ,  τΓ« ¿¡ßΓαπ¬µ¿∩  ret ¿ß»«½∞ºπÑΓß∩  íѺ »ÑαѼѡ¡«⌐
  531. size, »«ß¬«½∞¬π óδºδóáεΘá∩ »α«úαἼᠻ«ß½Ñ ó«ºóαáΘÑ¡¿∩ ¿º »α«µÑñπαδ ßá¼á
  532. óδαáó¡¿óáÑΓ ßΓѬ.
  533.  
  534.  
  535.                 æ.3. é맮ó ∩ºδ¬á æê ¿º ∩ºδ¬á ÇßßѼí½Ñα.
  536.  
  537.     Åα«µÑñπαδ  óδß«¬«πα«ó¡Ñóδσ  ∩ºδ¬«ó  »αÑñ»«½áúáεΓ, τΓ« »αÑñóáα¿Γѽ∞¡«
  538. íδ½ óδ»«½¡Ñ¡ ¡Ñ¬«Γ«αδ⌐ ¿¡¿µ¿á½¿º¿απεΘ¿⌐ ¬«ñ; óδ ñ«½ª¡δ íδΓ∞ πóÑαÑ¡δ, τΓ«
  539. »α¿   ßΓáαΓÑ   ¼«ñπ½∩   óδß«¬«πα«ó¡Ñóδσ   ∩ºδ¬«ó   óδ»«½¡Ñ¡á  ¬«ααÑ¬Γ¡á∩
  540. ¿¡¿µ¿á½¿ºáµ¿∩,  á  ºáΓѼ  óδºóáΓ∞  áßßѼí½Ñα¡πε  »α«µÑñπαπ. ÇßßѼí½Ñα¡á∩
  541. »α«µÑñπαá ¼«ªÑΓ ºáΓѼ ßá¼á óδºδóáΓ∞ óδß«¬«πα«ó¡ÑóδÑ ∩ºδ¬«óδÑ  »α«µÑñπαδ,
  542. ¬á¬ »«¬áºá¡« ¡á α¿ßπ¡¬Ñ æ.3.
  543.  
  544.  
  545.        æê-¬«ñ                 è«ñ ¡á ÇßßѼí½ÑαÑ
  546. (¡áτὫ »α«úαá¼¼δ ¡á æê)     |
  547. main(){                      |
  548.        asub();               |
  549. }                            | PROC asub
  550.                              |   .
  551. (C termination)              |   .
  552.                              |   .
  553.                              |       call ctest
  554. ctest(){                     |   .
  555.    .                         |   .
  556.    .                         |
  557.                              |       ret
  558.    .                         | ENDP asub
  559. }                            |
  560.  
  561.                  É¿ßπ¡«¬ æ.3. é맮ó æê ¿º ÇßßѼí½Ñαá.
  562.  
  563.     ä½∩ ó맮óá  óδß«¬«πα«ó¡Ñóδσ ∩ºδ¬«ó  ¿º ∩ºδ¬á  ÇßßѼí½Ñα óá¼  ß½ÑñπÑΓ
  564. ß«í½εñáΓ∞ ß½ÑñπεΘ¿Ñ »αáó¿½á:
  565.  
  566.     -èáªñδ⌐  »áαá¼ÑΓα  «»π߬á⌐ΓÑ  ó  ßΓѬ,  ß«í½εñá∩ ß«ú½áΦÑ¡¿∩ « ßó∩º∩σ
  567. óδß«¬«πα«ó¡Ñóδσ ∩ºδ¬«ó.  è«¡ßΓá¡Γδ, ΓᬿÑ,  ¬á¬ áñαÑßá  ß¼ÑΘÑ¡¿⌐, ñ«½ª¡δ
  568. íδΓ∞ ºáúαπªÑ¡δ ó αÑú¿ßΓα ñ« ½εíδσ «»π߬᡿⌐ ó ßΓѬ.
  569.  
  570.     -Åα¿ ñ½¿¡¡δσ  »áαá¼ÑΓαáσ, óßÑúñá  «»π߬á⌐ΓÑ ó  ßΓφ¬ »Ñαó묨 ßÑú¼Ñ¡Γ,
  571. ½¿í« ßΓáαΦπε τáßΓ∞ »áαá¼ÑΓαá, ¡Ñºáó¿ß¿¼« «Γ ß«ú½áΦÑ¡¿⌐ « ßó∩º∩σ.
  572.  
  573.     -éδ»«½¡∩⌐ΓÑ  ó맮ó.  éδº«ó   ñ«½ªÑ¡  íδΓ∞  "ñá½∞¡¿¼",   Ñß½¿  Γ«½∞¬«
  574. óδß«¬«πα«ó¡Ñóá∩ »α«µÑñπαá ¡Ñ «Γ¡«ß¿Γß∩ ¬ ¼á½«⌐ ¼«ñѽ¿ »á¼∩Γ¿.
  575.  
  576.     -àß½¿  »α«µÑñπαá  ¿ß»«½∞º«óá½á  ß«ú½áΦÑ¡¿∩  «  ßó∩º∩σ  ∩ºδ¬á  æê, Γ«
  577. ¡Ñ»«ßαÑñßΓóÑ¡¡« ßαáºπ »«ß½Ñ ó맮óá «τ¿ßΓ¿ΓÑ ßΓѬ «Γ »áαá¼ÑΓα«ó ß »«¼«Θ∞ε
  578. ¿¡ßΓαπ¬µ¿¿:  add  sp,  size,  úñÑ  size-φΓ«  «íΘ¿⌐  αẼÑα ó íá⌐Γáσ óßÑσ
  579. »áαá¼ÑΓα«ó, «»πΘÑ¡¡δσ ó ßΓѬ.
  580.  
  581.  
  582.                 æ.4. æÑú¼Ñ¡Γ¡á∩ ¼«ñѽ∞ Σ¿α¼δ Microsoft.
  583.  
  584.     àß½¿  óδ   »α¿¼Ñ¡∩ÑΓÑ  »α«ßΓÑ⌐Φ¿Ñ   ßÑú¼Ñ¡Γ¡δÑ  ñ¿αÑ¬Γ¿óδ,   óá¼  ¡Ñ
  585. »«ΓαÑíπÑΓß∩ º¡áΓ∞  ¿¼Ñ¡á, ¡áº¡áτÑ¡¡δÑ  ¬áªñ«¼π ßÑú¼Ñ¡Γπ.  Äñ¡á¬«, óÑαß¿¿
  586. Macro  Assembler  »αÑñΦÑßΓóπεΘ¿Ñ  óÑαß¿¿  5.0  ¡Ñ  »«ññÑনóáεΓ   ñá¡¡δÑ
  587. ñ¿αÑ¬Γ¿óδ.  é  ßΓáαΦ¿σ  óÑαß¿∩σ  áßßѼí½Ñαá  óá¼  ß½ÑñπÑΓ   ¿ß»«½∞º«óáΓ∞
  588. ñ¿αÑ¬Γ¿óδ  SEGMENT,  GROUP,   ASSUME,  ENDS,  φ¬ó¿óá½Ñ¡Γ¡δÑ   π»α«ΘÑ¡¡δ¼
  589. ßÑú¼Ñ¡Γ¡δ¼ ñ¿αÑ¬Γ¿óá¼.
  590.  
  591.     é  Æáí½¿µÑ  æ.1  »«¬áºá¡δ  ßΓá¡ñáαΓ¡δÑ  ¿¼Ñ¡á ßÑú¼Ñ¡Γ«ó, ß«ºñáóáѼδÑ
  592. ¬áªñ«⌐   ñ¿αÑ¬Γ¿ó«⌐.   êß»«½∞º«óá¡¿Ñ   ñá¡¡δσ   ßÑú¼Ñ¡Γ«ó    úáαá¡Γ¿απÑΓ
  593. ß«ó¼ÑßΓ¿¼«ßΓ∞ ß ∩ºδ¬á¼¿ Σ¿α¼δ Microsoft ¿ »«¼«ªÑΓ óá¼ »«½πτ¿Γ∞ ñ«ßΓπ»  ¬
  594. ó¡ÑΦ¡¿¼ ¿¼Ñ¡á¼.
  595.  
  596.     çá  Γáí½¿µÑ⌐  ß½ÑñπÑΓ  «»¿ßá¡¿Ñ  ΓαÑσ  Φáú«ó ¿½½εßΓα¿απεΘ¿σ αÑá½∞¡δÑ
  597. «íΩ∩ó½Ñ¡¿∩, ¿ »α¿¼Ñα »α«úαá¼¼δ.
  598.  
  599.                                                  Æáí½¿µá æ.1.
  600.       æΓá¡ñáαΓ¡δÑ ßÑú¼Ñ¡Γδ ¿ Γ¿»δ ñ½∩ ßΓá¡ñáαΓ¡δσ ¼«ñѽÑ⌐ »á¼∩Γ¿.
  601.  
  602. î«ñѽ∞    ä¿αÑ¬Γ¿óá ê¼∩       éδαáó¡¿-  æ»«ß«í «íΩ è½áßß   âαπ»»á
  603.                               óá¡¿Ñ     Ññ¿¡Ñ¡¿∩
  604.  
  605.  
  606. îá½á∩     .CODE     _TEXT     WORD      PUBLIC     'CODE'
  607.           .DATA     _DATA     WORD      PUBLIC     'DATA'  DGROUP
  608.           .CONST    CONST     WORD      PUBLIC     'CONST' DGROUP
  609.           .DATA?    _BSS      WORD      PUBLIC     'BSS'   DGROUP
  610.           .STACK    STACK     PARA      STACK      'STACK' DGROUP
  611.  
  612. æαÑñ¡∩∩   .CODE     name_TEXT WORD      PUBLIC     'CODE'
  613.           .DATA     _DATA     WORD      PUBLIC     'DATA'  DGROUP
  614.           .CONST    CONST     WORD      PUBLIC     'CONST' DGROUP
  615.           .DATA?    _BSS      WORD      PUBLIC     'BSS'   DGROUP
  616.           .STACK    STACK     PARA      STACK      'STACK' DGROUP
  617.  
  618. 諼»á¬Γ-  .CODE     _TEXT     WORD      PUBLIC     'CODE'
  619. ¡á∩       .FARDATA  FAR_DATA  PARA      Private    'FAR_DATA'
  620.           .FARDATA? FAR_BSS   PARA      Private    'FAR_BSS'
  621.           .DATA     _DATA     WORD      PUBLIC     'DATA'  DGROUP
  622.           .CONST    CONST     WORD      PUBLIC     'CONST' DGROUP
  623.           .DATA?    _BSS      WORD      PUBLIC     'BSS'   DGROUP
  624.           .STACK    STACK     PARA      STACK      'STACK' DGROUP
  625.  
  626. ü«½∞Φá∩   .CODE     name_TEXT WORD      PUBLIC     'CODE'
  627.           .FARDATA  FAR_DATA  PARA      Private    'FAR_DATA'
  628.           .FARDATA? FAR_BSS   PARA      Private    'FAR_BSS'
  629.           .DATA     _DATA     WORD      PUBLIC     'DATA'  DGROUP
  630.           .CONST    CONST     WORD      PUBLIC     'CONST' DGROUP
  631.           .DATA?    _BSS      WORD      PUBLIC     'BSS'   DGROUP
  632.           .STACK    STACK     PARA      STACK      'STACK' DGROUP
  633.  
  634.  
  635.     ä¿αÑ¬Γ¿óδ Æáí½¿µδ æ.1 «Γ¡«ß∩Γß∩ ¬ ß½ÑñπεΘ¿¼ Γ¿»á¼ ßÑú¼Ñ¡Γ«ó:
  636.  
  637.  
  638. ä¿αÑ¬Γ¿óá              Ä»¿ßá¡¿Ñ ßÑú¼Ñ¡Γá
  639.  
  640.  
  641. .CODE                  æÑú¼Ñ¡Γ, ß«ñÑαªáΘ¿⌐ óÑß∞ ¬«ñ ¼«ñπ½∩.
  642. .DATA                  Åα«¿¡¿µ¿á½¿º¿α«óá¡¡δÑ ñá¡¡δÑ.
  643. .DATA?                 ìÑ¿¡¿µ¿á½¿º¿α«óá¡¡δÑ ñá¡¡δÑ. è«¼»¿½∩Γ«αδ Σ¿α-
  644.                        ¼δ Microsoft σαá¡∩Γ ¡Ñ¿¡¿µ¿á½¿º¿α«óá¡¡δÑ ñá¡-
  645.                        ¡δÑ «Γñѽ∞¡«, »«ß¬«½∞¬π ΓᬿѠñá¡¡δÑ ¼«ª¡« αáº
  646.                        ¼ÑßΓ¿Γ∞ í«½ÑÑ φΣΣÑ¬Γ¿ó¡«, τѼ »α«¿¡¿µ¿á½¿º¿α«-
  647.                        óá¡¡δÑ ñá¡¡δÑ.
  648. .FARDATA ¿ .FARDATA?   äá¡¡δÑ, ¬«Γ«αδÑ ¡Ñ íπñπΓ «íΩÑñ¿¡∩Γ∞ß∩ ß ß««Γ-
  649.                        óÑΓßΓóπεΘ¿¼¿ ßÑú¼Ñ¡ΓἿ ñαπú¿σ ¼«ñπ½Ñ⌐. æÑú-
  650.                        ¼Ñ¡Γ αẼÑΘÑ¡¡δσ ºñÑß∞ ñá¡¡δσ, ΓѼ ¡Ñ ¼Ñ¡ÑÑ,
  651.                        óßÑúñá ¼«ªÑΓ íδΓ∞ «»αÑñѽѡ ß »«¼«Θ∞ε «»ÑαáΓ«-
  652.                        αá áßßѼí½Ñαá SEG.
  653. .CONST                 Å«ßΓ«∩¡¡δÑ ñá¡¡δÑ. è«¼»¿½∩Γ«αδ Σ¿α¼δ Microsoft
  654.                        ¿ß»«½∞ºπεΓ ñá¡¡δ⌐ ßÑú¼Ñ¡Γ ñ½∩ φ½Ñ¼Ñ¡Γ«ó, Γá-
  655.                        ¬¿σ, ¬á¬ ßΓ᫬«óδÑ ¬«¡ßΓá¡Γδ ¿ ¬«¡ßΓá¡Γδ ß
  656.                        »½áóáεΘÑ⌐ Γ«τ¬«⌐.
  657. .STACK                 æΓѬ. Äíδτ¡«, ñá¡¡δ⌐ ßÑú¼Ñ¡Γ «íΩ∩ó½∩ÑΓß∩ ó
  658.                        ú½áó¡«¼ ¼«ñπ½Ñ ¿ ¡Ñ ñ«½ªÑ¡ íδΓ∞ »ÑαÑ«»αÑñѽѡ.
  659.  
  660.     ä½∩ ß«ºñá¡¿∩  αÑá½∞¡δσ ñ¿αÑ¬Γ¿ó  ß »«¼«Θ∞ε  Æáí½¿µδ æ.1  ¿ß»«½∞ºπ⌐ΓÑ
  661. ß½ÑñπεΘ¿Ñ Φáú¿:
  662.  
  663.     1.é «»αÑñѽѡ¿¿ ßÑú¼Ñ¡Γá ß½ÑñπÑΓ  ºáñáΓ∞ ¿¼∩, Γ¿» óδαáó¡¿óá¡¿∩,  Γ¿»
  664. «íΩÑñ¿¡Ñ¡¿∩, ¬½áßß. Æá¬¿¼ «íαẫ¼, ßÑú¼Ñ¡Γ ¬«ñá ñ½∩ ¼á½«⌐ ¼«ñѽ¿  »á¼∩Γ¿
  665. ñ«½ªÑ¡ íδΓ∞ «íΩ∩ó½Ñ¡ ß½ÑñπεΘ¿¼ «íαẫ¼:
  666.  
  667.     _TEXT SEGMENT WORD PUBLIC 'CODE'
  668.  
  669.     àß½¿ Γ¿» «íΩÑñ¿¡Ñ¡¿∩ "private", »α«ßΓ« ¡Ñ ¿ß»«½∞ºπ⌐ΓÑ ¡¿¬á¬«ú«  Γ¿»á
  670. «íΩÑñ¿¡Ñ¡¿∩.
  671.  
  672.     2.àß½¿ π óáß ÑßΓ∞ ßÑú¼Ñ¡Γδ ó DGROUP, »«¼ÑßΓ¿ΓÑ ¿σ ó DGROUP ß »«¼«Θ∞ε
  673. ñ¿αÑ¬Γ¿óδ GROUP, ¬á¬ ó »α¿¼ÑαÑ:
  674.  
  675.     GROUP DGROUP _DATA _BSS
  676.  
  677.     3.ä¿αÑ¬Γ¿óδ ASSUME ¿ ENDS ¿ß»«½∞ºπ⌐ΓÑ, ¬á¬ «íδτ¡«. Å«¼¡¿ΓÑ, τΓ«  »α¿
  678. óó«ñÑ, αÑú¿ßΓαδ DS ¿ SS, «íá π¬áºδóáεΓ ¡á DGROUP.
  679.  
  680.     æ½ÑñπεΘ¿⌐ »α¿¼Ñα »«¬áºδóáÑΓ »α«úαá¼¼π "æê-ÇßßѼí½Ñα" ¿º ÉáºñÑ½á æ.3,
  681. ¡«  íѺ  π»α«ΘÑ¡¡δσ  ßÑú¼Ñ¡Γ¡δσ  ñ¿αÑ¬Γ¿ó  ¿º óÑαß¿¿ 5.0 îá¬α«áßßѼí½Ñαá
  682. Σ¿α¼δ Microsoft.
  683.  
  684. _TEXT   SEGMENT WORD PUBLIC 'CODE'
  685.         ASSUME  cs: TEXT
  686.         PUBLIC   Power2
  687. _Power2 PROC
  688.         push    bp     ;éσ«ñ¡á∩ »«ß½Ññ«óáΓѽ∞¡«ßΓ∞-ß«σαá¡Ñ¡¿∩ αÑú¿ß-
  689.                         Γαá BP.
  690.         mov     bp,sp  ;ôßΓá¡«ó¬á ºá»¿ß¿ á¬Γ¿óᵿ¿.
  691.  
  692.         mov     ax,[bp+4]  ;çáúαπº¬á Arg1 ó AX.
  693.         mov     cx,[bp+6]  ;çáúαπº¬á Arg2 ó CX.
  694.         shl     ax,cl      ;AX = AX+(2 ó ßΓѻѡ¿ CX).
  695.                            ;ç¡áτÑ¡¿Ñ ó«ºóαáΓá «ßΓáÑΓß∩ ó AX.
  696.         pop     bp   ;éδσ«ñ¡á∩ »«ß½Ññ«óáΓѽ∞¡«ßΓ∞-ó«ßßΓá¡«ó½Ñ¡¿Ñ αÑ-
  697.                       ú¿ßΓαá BP.
  698.         ret          ;éδσ«ñ.
  699. _Power2 ENDP
  700. _TEXT   ENDS
  701.        END
  702.  
  703.