home *** CD-ROM | disk | FTP | other *** search
-
-
-
-
- ÅÉêïÄåàìêà æ.
-
-
- ê¡ΓÑαΣÑ⌐ß ∩ºδ¬á æê ß ∩ºδ¬«¼ ÇßßѼí½Ñα.
-
- æ.1. ìỿßá¡¿Ñ áßßѼí½Ñα¡«⌐ »α«µÑñπαδ.
- æ.1.1. 櫺ñá¡¿Ñ »α«µÑñπαδ.
- æ.1.2. éó«ñ »α«µÑñπαδ.
- æ.1.3. ÉẼÑΘÑ¡¿Ñ ½«¬á½∞¡δσ ñá¡¡δσ (¡Ñ«í∩ºáΓѽ∞¡«).
- æ.1.4. ÉѺÑαó¿α«óá¡¿Ñ º¡áτÑ¡¿⌐ αÑú¿ßΓα«ó.
- æ.1.5. Åáαá¼ÑΓαδ ñ«ßΓπ»á.
- æ.1.6. 髺óαáΘáѼ«Ñ º¡áτÑ¡¿Ñ (¡Ñ«í∩ºáΓѽ∞¡«).
- æ.1.7. éδσ«ñ ¿º »α«µÑñπαδ.
- æ.2. é맮ó »α«µÑñπα ¡á ∩ºδ¬Ñ ÇßßѼí½Ñα ¿º æê-»α«úαá¼¼δ.
- æ.3. é맮ó æê ¿º ∩ºδ¬á ÇßßѼí½Ñα.
- æ.4. æÑú¼Ñ¡Γ¡á∩ ¼«ñѽ∞ Σ¿α¼δ Microsoft.
-
-
- Åα«úαá¼¼¿α«óá¡¿Ñ ß« ß¼ÑΦÑ¡¿Ñ¼ ∩ºδ¬«ó-φΓ« »α«µÑßß ß«ºñá¡¿∩ »α«úαá¼¼,
- ¿ß»«½∞ºπεΘ¿σ ñóá ¿½¿ í«½ÑÑ ¿ßσ«ñ¡δσ ∩ºδ¬á. äá¡¡«Ñ ßαÑñßΓó« »«ºó«½¿Γ óá¼
- ¿ß»«½∞º«óáΓ∞ π¡¿¬á½∞¡δÑ ó«º¼«ª¡«ßΓ¿ ∩ºδ¬«ó BASIC, C, FORTRAN, Pascal ¿
- Macro Assembler (MASM) Σ¿α¼δ Microsoft. ïεí«⌐ ¿º φΓ¿σ ∩ºδ¬«ó (ó ¿σ
- »«ß½Ññ¡¿σ óÑαß¿∩σ) ¼«ªÑΓ óδºδóáΓ∞ ½εí«⌐ ñαπú«⌐.
-
- öá¬Γ¿τÑ߬¿, óßÑ »α«µÑñπαδ ¬áªñ«⌐ ¿º ñá¡¡δσ ∩ºδ¬«óδσ í¿í½¿«ΓѬ
- ñ«ßΓπ»¡δ ñ½∩ »α«úαá¼¼ ß« ß¼ÑΦÑ¡¿Ñ¼ ∩ºδ¬«ó. ìá»α¿¼Ñα, ß¼ÑΦá¡¡«Ñ
- »α«úαá¼¼¿α«óá¡¿Ñ »«¼«ªÑΓ óá¼ φΣΣÑ¬Γ¿ó¡« ¿ß»«½∞º«óáΓ∞ îá¬α« ÇßßѼí½Ñα
- (MASM). éδ ¼«ªÑΓÑ íδßΓα« αáºαáí«ΓáΓ∞ í«½∞Φ¿¡ßΓó« óáΦ¿σ »α«úαá¼¼ ß
- »«¼«Θ∞ε Microsoft C ¿½¿ FORTRAN, á ºáΓѼ ¿ß»«½∞º«óáΓ∞ MASM ñ½∩ ΓÑσ
- ¡Ñ߬«½∞¬¿σ »α«µÑñπα, ¬«Γ«αδÑ τáßΓ« óδ»«½¡∩εΓß∩ ¿ ñ«½ª¡δ αáí«ΓáΓ∞ ß
- í«½∞Φ«⌐ ߬«α«ßΓ∞ε.
-
- æ¼ÑΦá¡¡«Ñ »α«úαá¼¼¿α«óá¡¿Ñ, ¬α«¼Ñ Γ«ú«, «í½ÑúτáÑΓ »ÑαÑσ«ñ «Γ «ñ¡«ú«
- ∩ºδ¬á ¬ ñαπú«¼π. ìá»α¿¼Ñα, óδ ¼«ªÑΓÑ ¿¼ÑΓ∞ í«½∞Φπε »α«úαá¼¼π ¡á ∩ºδ¬Ñ
- FORTRAN, á ºáΓѼ ¬«¡óÑαΓ¿α«óáΓ∞ ÑÑ ó æê.
-
- éδ ¼«ªÑΓÑ ºá¼Ñ¡¿Γ∞ óáΦ¿ »α«µÑñπαδ ¡á ∩ºδ¬Ñ FORTRAN «ñ¿¡ ¬ «ñ¡«¼π ¡á
- ß««ΓóÑΓßΓóπεΘ¿Ñ æê-Σπ¡¬µ¿¿. æê-¬«ñ íπñÑΓ ßúÑ¡Ñα¿α«óá¡, ¬á¬ Γ«½∞¬« ¬áªñá∩
- Σπ¡¬µ¿∩ íπñÑΓ ¡á»¿ßá¡á.
-
- ìᬫ¡Ñµ, ß¼ÑΦá¡¡«Ñ »α«úαá¼¼¿α«óá¡¿Ñ íπñÑΓ óá¼ »«½Ñº¡«, Ñß½¿ óδ
- »«ßΓáó½∩ÑΓÑ ¡á αδ¡«¬ óáΦ¿ ß«íßΓóÑ¡¡δÑ í¿í½¿«ΓѬ¿. æ »«¼«Θ∞ε «»¿ßá¡¡δσ
- ºñÑß∞ ßαÑñßΓó óδ ¼«ªÑΓÑ ú«Γ«ó¿Γ∞ í¿í½¿«ΓѬ¿ ñ½∩ ½εíδσ π»«¼∩¡πΓδσ óδΦÑ
- ∩ºδ¬«ó, »α¿τѼ τáßΓ« ß ¡Ñº¡áτ¿Γѽ∞¡δ¼¿ ¿º¼Ñ¡Ñ¡¿∩¼¿.
-
- Å«ñα«í¡« ß¼ÑΦá¡¡«Ñ »α«úαá¼¼¿α«óá¡¿Ñ ñ½∩ óßÑσ «ßΓá½∞¡δσ ∩ºδ¬«ó
- «»¿ßá¡« ó ñ«¬π¼Ñ¡ΓÑ "Microsoft Mixed-Language Programming Guide". äá¡¡«Ñ
- απ¬«ó«ñßΓó« ß«ñÑαª¿Γ «»¿ßá¡¿Ñ ß¼ÑΦá¡¡«ú« »α«úαá¼¼¿α«óá¡¿∩ ñ½∩ ∩ºδ¬«ó
- Microsoft FORTRAN(óÑαß¿∩ 4.0 ¿ óδΦÑ),Microsoft Macro Assembler (éÑαß¿∩
- 5.0 ¿ óδΦÑ), Microsoft Pascal (éÑαß¿∩ 3.3 ¿ óδΦÑ), Microsoft C(óÑαß¿∩
- 5.0 ¿ óδΦÑ).
-
- äá¡¡«Ñ ªÑ »α¿½«ªÑ¡¿Ñ ó «ß¡«ó¡«¼ ¬áßáÑΓß∩ ¼ÑΓ«ñ«ó »α«úαá¼¼¿α«óá¡¿∩
- ¡Ñ«íσ«ñ¿¼δσ ñ½∩ ¡á»¿ßá¡¿∩ »α«µÑñπα ¡á ÇßßѼí½ÑαÑ, »α¿ú«ñ¡δσ ñ½∩
- ¿ß»«½∞º«óá¡¿∩ ó æê-»α«úαá¼¼áσ. Å«ñα«í¡«ßΓ¿ «í ¿¡ΓÑαΣÑ⌐ßáσ ¼Ñªñπ ñαπú¿¼¿
- ∩ºδ¬á¼¿ óδß«¬«ú« πα«ó¡∩ ß¼«Γα¿ΓÑ ó ñ«¬π¼Ñ¡ΓÑ "Microsoft Mixed-Language
- Programming Guide" ("Éπ¬«ó«ñßΓó« »« »α«úαá¼¼¿α«óá¡¿ε ß« ß¼ÑΦÑ¡¿Ñ¼ ∩ºδ¬«ó
- Σ¿α¼δ Microsoft").
-
-
- Ä»αÑñѽѡ¿∩.
-
- ÆÑନ¡«½«ú¿τÑ߬¿Ñ ß«ú½áΦÑ¡¿∩, ¿ß»«½∞ºπѼδÑ ó ñá¡¡«¼ »α¿½«ªÑ¡¿¿
- ß«ó»áñáεΓ ß ß«ú½áΦ¿¡¿∩¼¿, «»¿ßá¡¡δ¼¿ ó απ¬«ó«ñßΓóÑ »«½∞º«óáΓѽ∩ ñ½∩
- ¬áªñ«ú« ∩ºδ¬á Σ¿α¼δ Microsoft. Äñ¡á¬«, ß½ÑñπεΘ¿Ñ ΓÑନ¡δ ¿ß»«½∞ºπεΓß∩ ó
- «ß«í«¼ ß¼δß½Ñ:
-
- ÆÑନ¡ Ä»αÑñѽѡ¿∩
-
-
- Åα«µÑñπαá ïεíá∩ Σπ¡¬µ¿∩, »«ñ»α«úαá¼¼á, »α«µÑñπαá, ¬«Γ«αá∩ ¼«ªÑΓ
- íδΓ∞ óδºóá¡á ¿º ñαπú«ú« ∩ºδ¬á. äá¡¡«Ñ »«¡∩Γ¿Ñ á¡á½«ú¿τ¡«
- »α«µÑñπαÑ ó ∩ºδ¬Ñ ÇßßѼí½Ñα; «ñ¡á¬« ßá¼ ΓÑନ¡
- "»α«µÑñπαá" ¿ß»«½∞ºπÑΓß∩ ó αạδσ ß½πτá∩σ, Ñú« ¡Ñ
- ß½ÑñπÑΓ ß¼ÑΦ¿óáΓ∞ ß ¬½ετÑóδ¼ ß½«ó«¼ ∩ºδ¬á Pascal
- "procedure".
- Åáαá¼ÑΓα ùáßΓ∞ ñá¡¡δσ, »ÑαÑñáóáѼá∩ ¡Ñ»«ßαÑñßΓóÑ¡¡« ¼Ñªñπ ñóπ¼∩
- »α«µÑñπαἿ. (é¡ÑΦ¡¿¼¿ ñá¡¡δ¼¿ »«½∞ºπεΓß∩ óßÑ »α«µÑñπαδ,
- ¡« »α« ¡¿σ ¡Ñ½∞º∩ ߬áºáΓ∞, τΓ« «¡¿ "»ÑαÑñáεΓß∩"). ò«Γ∩
- »«óßεñπ ΓÑନ¡ "áαúπ¼Ñ¡Γ" ¿ß»«½∞ºπÑΓß∩ »«»ÑαѼѡ¡« ß ΓÑα-
- ¼¿¡«¼ "»áαá¼ÑΓα", ó ñá¡¡«¼ »α¿½«ªÑ¡¿¿ ΓÑନ¡ "áαúπ¼Ñ¡Γ"
- ¿ß»«½∞ºπÑΓß∩ ñ½∩ «í«º¡áτÑ¡¿∩ «»αÑñѽѡ¡δσ º¡áτÑ¡¿⌐ ¿½¿
- óδαáªÑ¡¿⌐, »αÑñ½áúáѼδσ ñ½∩ »áαá¼ÑΓα«ó.
- ê¡ΓÑαΣÑ⌐ß îÑΓ«ñ, «íÑß»Ñτ¿óáεΘ¿⌐ φΣΣÑ¬Γ¿ó¡πε ßó∩º∞ ¼Ñªñπ αẽ¿τ¡δ¼¿
- Σ«α¼áΓἿ. é óδß«¬«πα«ó¡Ñóδσ ∩ºδ¬áσ ¿¡ΓÑαΣÑ⌐ß τáßΓ« πß-
- Γá¡áó½¿óáÑΓß∩ ¡Ñ¬«Γ«α묨 ó¿ñἿ Σ«α¼á½∞¡«ú« «íΩ∩ó½Ñ¡¿∩.
- ö«α¼á½∞¡δ⌐ ö«α¼á½∞¡δ⌐ »áαá¼ÑΓα-φΓ« »áαá¼ÑΓα, «»¿ßá¡¡δ⌐ ó ¿¡ΓÑαΣÑ⌐-
- »áαá¼ÑΓα ß¡«¼ «»ÑαáΓ«αÑ ¿½¿ «íΩ∩ó½Ñ¡¿¿. ƒºδ¬ æê ¿ß»«½∞ºπÑΓ «»¿ßá-
- ¡¿∩ Γ¿»á »áαá¼ÑΓαá, á ¡Ñ Σ«α¼á½∞¡δÑ »áαá¼ÑΓαδ.
-
-
-
- æ.1. ìỿßá¡¿Ñ áßßѼí½Ñα¡«⌐ »α«µÑñπαδ.
-
- éδß«¬«πα«ó¡ÑóδÑ ∩ºδ¬¿ Σ¿α¼δ Microsoft ¿ß»«½∞ºπεΓ ñ½∩ »α«µÑñπα¡δσ
- ó맮ó«ó »α¿í½¿º¿Γѽ∞¡« «ñ¿¡ ¿ ëà ªÑ ¿¡ΓÑαΣÑ⌐ß. äá¡¡δ⌐ αáºñѽ «»¿ßδóáÑΓ
- ¿¡ΓÑαΣÑ⌐ß, »«ºó«½∩εΘ¿⌐ óá¼ óδºδóáΓ∞ áßßѼí½Ñα¡πε »α«µÑñπαπ ß »«¼«Θ∞ε ΓÑσ
- ªÑ ßá¼δσ ¼ÑΓ«ñ«ó, ¬«Γ«αδÑ óδ »α¿¼Ñ¡∩½¿ ñ½∩ ¬«ñá, ßúÑ¡Ñα¿α«óá¡¡«ú«
- ¬«¼»¿½∩Γ«αἿ Σ¿α¼δ Microsoft. Åα«µÑñπαδ, ¡á»¿ßá¡¡δÑ ß »«¼«Θ∞ε ñá¡¡δσ
- ¼ÑΓ«ñ«ó, ¼«úπΓ óδºδóáΓ∞ß∩ αѬπαß¿ó¡« ¿ ¼«úπΓ íδΓ∞ φΣΣÑ¬Γ¿ó¡«
- ¿ß»«½∞º«óáΓ∞ß∩ ß« ßαÑñßΓó«¼ Stack Trace ¼¡«ú««¬«¡¡«ú« «Γ½áñτ¿¬á Code
- View Σ¿α¼δ Microsoft. æΓá¡ñáαΓ¡δ⌐ ¼ÑΓ«ñ »«½πτÑ¡¿∩ ¿¡ΓÑαΣÑ⌐ßá ß ∩ºδ¬«¼
- ÇßßѼí½Ñα ß«ßΓ«¿Γ ¿º ß½ÑñπεΘ¿σ Φáú«ó:
-
- 1.櫺ñá¡¿Ñ »α«µÑñπαδ.
-
- 2.éó«ñ »α«µÑñπαδ.
-
- 3.ÉẼÑΘÑ¡¿Ñ ½«¬á½∞¡δσ ñá¡¡δσ (¡Ñ«í∩ºáΓѽ∞¡«).
-
- 4.ÉѺÑαó¿α«óá¡¿Ñ º¡áτÑ¡¿⌐ αÑú¿ßΓα«ó.
-
- 5.Åáαá¼ÑΓαδ ñ«ßΓπ»á.
-
- 6.髺óαáΘÑ¡¿Ñ º¡áτÑ¡¿∩ (¡Ñ«í∩ºáΓѽ∞¡«).
-
- 7.éδσ«ñ ¿º »α«µÑñπαδ.
-
- èáªñδ⌐ ¿º ß½ÑñπεΘ¿σ Φáú«ó «»¿ßδóáÑΓß∩ ó Éáºñѽáσ æ.1.1-æ.1.7.
-
-
- æ.1.1. ìỿßá¡¿Ñ »α«µÑñπαδ.
-
- 諼»á¡«óΘ¿¬ ¡Ñ ß¼«ªÑΓ «íΩÑñ¿¡¿Γ∞ áßßѼí½Ñα¡πε »α«µÑñπαπ ß óδºδóáεΘÑ⌐
- »α«µÑñπα«⌐, Ñß½¿ ¿ß»«½∞ºπεΓß∩ ¡Ñß«ó¼ÑßΓ¿¼δÑ ßÑú¼Ñ¡Γδ, ½¿í« ßá¼á
- »α«µÑñπαá «»¿ßá¡á ¡Ñ»αáó¿½∞¡«. î«úπΓ «¬áºáΓ∞ß∩ »«½Ñº¡δ¼¿ ß½ÑñπεΘ¿Ñ
- »«½«ªÑ¡¿∩:
-
- -àß½¿ óδ ¿¼ÑÑΓÑ Macro Assembler óÑαß¿¿ 5.0, ó ¡áτá½Ñ ¿ßσ«ñ¡«ú« Σá⌐½á
- ¿ß»«½∞ºπ⌐ΓÑ ñ¿αÑ¬Γ¿óπ .MODEL. äá¡¡á∩ ñ¿αÑ¬Γ¿óá áóΓ«¼áΓ¿τÑ߬¿ úÑ¡Ñα¿απÑΓ
- ß««ΓóÑΓßΓóπεΘ¿⌐ Γ¿» ó«ºóαáΘáѼ«ú« º¡áτÑ¡¿∩ ("near" ñ½∩ ¼á½«⌐ ¿½¿
- ¬«¼»á¬Γ¡«⌐ ¼«ñѽ¿, "far"-ó »α«Γ¿ó¡«¼ ß½πτáÑ). àß½¿ π óáß í«½ÑÑ αá¡¡∩∩
- óÑαß¿∩ áßßѼí½Ñαá, «»¿Φ¿ΓÑ »α«µÑñπαπ ß áΓα¿íπΓ«¼ "far" (½¿í« "near",
- Ñß½¿ óδºδóáεΘá∩ »α«úαá¼¼á αáí«ΓáÑΓ ó ¼á½«⌐ ¿½¿ ¬«¼»á¬Γ¡«⌐ ¼«ñѽ¿
- Quick-C).
-
- -àß½¿ π óáß Microsoft Macro Assembler óÑαß¿¿ 5.0 ¿½¿ óδΦÑ, ñ½∩
- «íΩ∩ó½Ñ¡¿∩ ¬«ñ«ó«ú« ßÑú¼Ñ¡Γá ¿ß»«½∞ºπ⌐ΓÑ π»α«ΘÑ¡¡πε ñ¿αÑ¬Γ¿óπ .CODE ¿
- ñ¿αÑ¬Γ¿óπ .DATA ñ½∩ «íΩ∩ó½Ñ¡¿∩ ßÑú¼Ñ¡Γá ñá¡¡δσ. (àß½¿ π óáß ¡ÑΓ
- «íΩ∩ó½Ñ¡¿⌐ ñá¡¡δσ, ñ«ßΓáΓ«τ¡« Γ«½∞¬« ¬«ñ«ó«ú« ßÑú¼Ñ¡Γá). àß½¿ óδ
- ¿ß»«½∞ºπÑΓÑ í«½ÑÑ αá¡¡εε óÑαß¿ε áßßѼí½Ñαá, αáßß¼«Γα¿ΓÑ ñ¿αÑ¬Γ¿óδ
- SEGMENT, GROUP ¿ ASSUME ó ÉáºñÑ½Ñ æ.4 "æÑú¼Ñ¡Γ¡á∩ ¼«ñѽ∞ Σ¿α¼δ
- Microsoft".
-
- -îÑΓ¬á »α«µÑñπαδ ñ«½ª¡á íδΓ∞ «íΩ∩ó½Ñ¡á, ¬á¬ "public" ß »«¼«Θ∞ε
- ñ¿αÑ¬Γ¿óδ PUBLIC. äá¡¡«Ñ «íΩ∩ó½Ñ¡¿Ñ ñѽáÑΓ »α«µÑñπαπ ñ«ßΓπ»¡«⌐ ñ½∩
- ó맮ó«ó ¿º ñαπú¿σ ¼«ñπ½Ñ⌐. èα«¼Ñ Γ«ú«, ½εíδÑ ñá¡¡δÑ, ¬«Γ«αδÑ óδ σ«Γ¿ΓÑ
- ßñѽáΓ∞ ñ«ßΓπ»¡δ¼¿ ñ½∩ ñαπú¿σ ¼«ñπ½Ñ⌐, ñ«½ª¡δ íδΓ∞ «íΩ∩ó½Ñ¡δ, ¬á¬
- PUBLIC.
-
- -⽫íá½∞¡δÑ ñá¡¡δÑ ¿½¿ »α«µÑñπαδ, ¬ ¬«Γ«αδ¼ «ßπΘÑßΓó½∩ÑΓß∩ ñ«ßΓπ» ¿º
- óáΦÑ⌐ »α«µÑñπαδ, ñ«½ª¡δ íδΓ∞ «íΩ∩ó½Ñ¡δ, ¬á¬ EXTRN. ìá¿í«½ÑÑ íѺ«»áß¡δ⌐
- »πΓ∞ ¿ß»«½∞º«óá¡¿∩ EXTRN-φΓ« »«¼ÑΘÑ¡¿Ñ ñ¿αÑ¬Γ¿óδ ó¡Ñ ßÑú¼Ñ¡Γ«¡«ú«
- «»αÑñѽѡ¿∩ (ΓѼ ¡Ñ ¼Ñ¡ÑÑ, "í½¿ª¡¿Ñ" ñ
-
-
- æ.1.2. éσ«ñ ó »α«µÑñπαπ.
-
- Åα«µÑñπαá ¡áτ¿¡áÑΓß∩ ß ñóπσ ¿¡ßΓαπ¬µ¿⌐:
-
- push bp
- mov bp,sp
-
- äá¡¡á∩ »«ß½Ññ«óáΓѽ∞¡«ßΓ∞ ¬«¼á¡ñ πßΓá¡áó½¿óáÑΓ αÑú¿ßΓα BP, ¬á¬
- π¬áºáΓѽ∞ ¡á ºá»¿ß∞ á¬Γ¿óᵿ¿. äá¡¡δ⌐ π¬áºáΓѽ∞ ¿ß»«½∞ºπÑΓß∩ ñ½∩ ñ«ßΓπ»á
- ¬ »áαá¼ÑΓαá¼ ¿ ½«¬á½∞¡δ¼ ñá¡¡δ¼, αáß»«½«ªÑ¡¡δ¼ ó ßΓѬÑ. ÉÑú¿ßΓα SP ¡Ñ
- ¼«ªÑΓ íδΓ∞ ¿ß»«½∞º«óá¡ ñ½∩ ñá¡¡«⌐ µÑ½¿, »«ß¬«½∞¬π «¡ ¡Ñ ∩ó½∩ÑΓß∩
- ¿¡ñÑ¬ß¡δ¼ ¿½¿ íẫóδ¼ αÑú¿ßΓα«¼. èα«¼Ñ Γ«ú«, º¡áτÑ¡¿Ñ αÑú¿ßΓαá SP ¼«ªÑΓ
- ¿º¼Ñ¡∩Γ∞ß∩ »α¿ ñ«íáó½Ñ¡¿¿ ñá¡¡δσ ó ßΓѬ. ç¡áτÑ¡¿Ñ ªÑ αÑú¿ßΓαá BP
- «ßΓáÑΓß∩ »«ßΓ«∩¡¡δ¼ ¡á »α«Γ∩ªÑ¡¿¿ óßÑ⌐ »α«µÑñπαδ, ß««ΓóÑΓßΓóÑ¡¡«, ¬áªñδ⌐
- »áαá¼ÑΓα ¼«ªÑΓ íδΓ∞ áñαÑß«óá¡, ¬á¬ Σ¿¬ß¿α«óá¡¡«Ñ ß¼ÑΘÑ¡¿Ñ, «Γ¡«ß¿Γѽ∞¡«
- º¡áτÑ¡¿∩ BP.
-
- ū߽Ññ«óáΓѽ∞¡«ßΓ∞ ¿¡ßΓαπ¬µ¿⌐, »α¿óÑñÑ¡¡á∩ óδΦÑ, ß¡áτá½á ß«σαá¡∩ÑΓ
- º¡áτÑ¡¿Ñ BP, »«ß¬«½∞¬π «¡« »«ΓαÑíπÑΓß∩ óδºδóáεΘÑ⌐ »α«µÑñπαÑ, ¬á¬ Γ«½∞¬«
- ºá¬«¡τ¿Γß∩ ΓѬπΘá∩ »α«µÑñπαá. çáΓѼ ó αÑú¿ßΓα BP ºá¡«ß¿Γß∩ º¡áτÑ¡¿Ñ SP,
- τΓ«íδ ¿¼ÑΓ∞ º¡áτÑ¡¿Ñ π¬áºáΓѽ∩ ßΓÑ¬á »ÑαÑñ óσ«ñ«¼ ó »α«µÑñπαπ.
-
-
- æ.1.3. ÉẼÑΘÑ¡¿Ñ ½«¬á½∞¡δσ ñá¡¡δσ (¡Ñ«í∩ºáΓѽ∞¡«).
-
- ÇßßѼí½Ñα¡á∩ »α«µÑñπαá ¿ß»«½∞ºπÑΓ ñ½∩ αẼÑΘÑ¡¿∩ ½«¬á½∞¡δσ ñá¡¡δσ ΓÑ
- ªÑ ßá¼δÑ ßαÑñßΓóá, τΓ« ¿ óδß«¬«πα«ó¡ÑóδÑ ∩ºδ¬¿. ùΓ«íδ πßΓá¡«ó¿Γ∞ αẼÑαδ
- »á¼∩Γ¿ ñ½∩ αẼÑΘÑ¡¿∩ ½«¬á½∞¡δσ ñá¡¡δσ, »α«ßΓ« π¼Ñ¡∞Φ¿ΓÑ ß«ñÑন¼«Ñ
- αÑú¿ßΓαá SP ó ΓαÑΓ∞Ñ⌐ ¿¡ßΓαπ¬µ¿¿ »α«µÑñπαδ. (ä½∩ úáαá¡Γ¿¿ ¬«ααÑ¬Γ¡«ú«
- óδ»«½¡Ñ¡¿∩ óá¼ ß½ÑñπÑΓ óßÑúñá πóѽ¿τ¿óáΓ∞ ¿½¿ π¼Ñ¡∞ΦáΓ∞ ß«ñÑন¼«Ñ SP ¡á
- τÑΓ¡«Ñ τ¿ß½«). ô¼Ñ¡∞ΦÑ¡¿Ñ ß«ñÑন¼«ú« αÑú¿ßΓαá SP αѺÑαó¿απÑΓ
- »α«ßΓαá¡ßΓó« ßΓѬá ñ½∩ ½«¬á½∞¡δσ ñá¡¡δσ. äá¡¡á∩ »á¼∩Γ∞ ñ«½ª¡á íδΓ∞ ó
- ¬«¡µÑ »α«µÑñπαδ ó«ßßΓá¡«ó½Ñ¡á.
-
- é ß½ÑñπεΘ¿σ ¿¡ßΓαπ¬µ¿∩σ, "space"-φΓ« «íΘ¿⌐ αẼÑα íá⌐Γ«ó ½«¬á½∞¡δσ
- ñá¡¡δσ. ä«ßΓπ» ¬ ½«¬á½∞¡δ¼ »ÑαѼѡ¡δ¼ «ßπΘÑßΓó½∩ÑΓß∩ »«ßαÑñßΓó«¼
- Σ¿¬ß¿α«óá¡¡δσ «Γα¿µáΓѽ∞¡δσ ß¼ÑΘÑ¡¿⌐ BP.
-
- push bp
- mov bp,sp
- sub sp,space
-
- -Åα¿¼Ñα:
- push bp
- mov bp,sp
- sub sp,4
- .
- .
- .
- mov WORD PTR [bp-2],0
- mov WORD PTR [bp-4],0
-
- Åα¿óÑñÑ¡¡δ⌐ óδΦÑ »α¿¼Ñα ¿ß»«½∞ºπÑΓ ñóÑ ½«¬á½∞¡δÑ »ÑαѼѡ¡δÑ, ¬áªñá∩
- ¿º ¬«Γ«αδσ ¿¼ÑÑΓ αẼÑα 2 íá⌐Γá. SP π¼Ñ¡∞ΦáÑΓß∩ ¡á τÑΓδαÑ, »«ß¬«½∞¬π
- ñ½∩ ½«¬á½∞¡δσ ñá¡¡δσ ΓαÑíπÑΓß∩ τÑΓδαÑ íá⌐Γá. Å«ºªÑ, ¬áªñá∩ ¿º ñá¡¡δσ
- »ÑαѼѡ¡δσ ¿¡¿µ¿á½¿º¿απÑΓß∩ 0. äá¡¡δÑ »ÑαѼѡ¡δÑ ¡¿¬«úñá ¡Ñ «íΩ∩ó½∩εΓß∩
- Σ«α¼á½∞¡« ¬á¬«⌐-½¿í« ñ¿αÑ¬Γ¿ó«⌐ áßßѼí½Ñαá; »α«úαá¼¼¿ßΓ ñ«½ªÑ¡
- «Γ߽Ѫ¿óáΓ∞ ¿σ ßἫßΓ«∩Γѽ∞¡«
-
- 﫬á½∞¡δÑ »ÑαѼѡ¡δÑ ¡áºδóáεΓß∩ Γá¬ªÑ ñ¿¡á¼¿τÑ߬¿¼¿, ßΓѬ«ó묨 ¿½¿
- áóΓ«¼áΓ¿τÑ߬¿¼¿ »ÑαѼѡ¡δÑ.
-
-
- æ.1.4. ÉѺÑαó¿α«óá¡¿Ñ º¡áτÑ¡¿⌐ αÑú¿ßΓα«ó.
-
- ÇßßѼí½Ñα¡δÑ »α«µÑñπαδ, óδºδóáѼδÑ ¿º ½εí«ú« óδß«¬«πα«ó¡Ñú« ∩ºδ¬á
- Σ¿α¼δ Microsoft ñ«½ª¡δ ºáαѺÑαó¿α«óáΓ∞ º¡áτÑ¡¿Ñ αÑú¿ßΓα«ó SI, DI, SS ¿
- DS ( ó ñ«»«½¡Ñ¡¿Ñ ¬ αÑú¿ßΓαπ BP, ¬«Γ«αδ⌐ πªÑ íδ½ ß«σαá¡Ñ¡). Æ« ÑßΓ∞,
- ß½ÑñπÑΓ ß«σαá¡¿Γ∞ ß«ñÑন¼«Ñ ΓÑσ αÑú¿ßΓα«ó, ¬«Γ«αδÑ »α«úαá¼¼á ¼«ªÑΓ
- ¿º¼Ñ¡¿Γ∞. àß½¿ »α«úαá¼¼á ¡Ñ ¿º¼Ñ¡∩ÑΓ ß«ñÑন¼«Ñ ¬á¬«ú«-½¿í« αÑú¿ßΓαá,
- φëà αÑú¿ßΓα ¡ÑΓ ¡πªñδ ºá»«¼¿¡áΓ∞.
-
- ÆÑ αÑú¿ßΓαδ, ¬«Γ«αδÑ óδ ºá»«¼¡¿½¿ »ÑαÑñ óσ«ñ«¼ ó »α«µÑñπαπ, ß½ÑñπÑΓ
- ºáΓѼ ó«ßßΓá¡«ó¿Γ∞ »ÑαÑñ óδσ«ñ«¼ ¿º »α«µÑñπαδ (¬á¬ «íΩ∩ß¡∩ÑΓß∩ ó ÉáºñѽÑ
- æ.1.7 "éδσ«ñ ¿º »α«µÑñπαδ").
-
- ÉѬ«¼Ñ¡ñπѼδ⌐ ¼ÑΓ«ñ (¿ß»«½∞ºπѼδ⌐ óßѼ¿ óδß«¬«πα«ó¡Ñó묨 ∩ºδ¬á¼¿)
- ß«ßΓ«¿Γ ó Γ«¼, τΓ«íδ ºá»«¼¿¡áΓ∞ αÑú¿ßΓαδ »«ß½Ñ Γ«ú«, ¬á¬ πßΓá¡«ó½Ñ¡
- π¬áºáΓѽ∞ ¡á ºá»¿ß∞ á¬Γ¿óᵿ¿ ¿ αẼÑΘÑ¡δ ½«¬á½∞¡δÑ ñá¡¡δÑ (Ñß½¿ «¡¿
- ßπΘÑßΓóπεΓ). é ß½ÑñπεΘѼ Σαáú¼Ñ¡ΓÑ »α«úαá¼¼δ αÑú¿ßΓαδ DI ¿ SI (ó ñá¡¡«¼
- »«α∩ñ¬Ñ) ñ«½ª¡δ íδΓ∞ ó«ßßΓá¡«ó½Ñ¡δ »ÑαÑñ óδσ«ñ«¼ ¿º »α«µÑñπαδ.
-
- push bp ;çừ¼¿¡á¡¿Ñ ßΓáα«ú« π¬áºáΓѽ∩ ºá»¿ß¿ á¬Γ¿óᵿ¿
- mov bp,sp ;ôßΓá¡«ó¬á ΓѬπΘÑú« π¬áºáΓѽ∩ ºá»¿ß¿ á¬Γ¿óᵿ¿
- sub sp,4 ;ÉẼÑΘÑ¡¿Ñ »á¼∩Γ¿ ñ½∩ ½«¬á½∞¡δσ ñá¡¡δσ
- push si ;æ«σαá¡Ñ¡¿Ñ SI ¿ DI
- puih di
- .
- .
- .
-
-
- æ.1.5. ä«ßΓπ» ¬ »áαá¼ÑΓαá¼.
-
- èá¬ Γ«½∞¬« óδ πßΓᡫ󿽿 ó »α«µÑñπαÑ π¬áºáΓѽ∞ ¡á ºá»¿ß∞ á¬Γ¿óᵿ¿,
- αẼÑßΓ¿½¿ ½«¬á½∞¡δÑ ñá¡¡δÑ (Ñß½¿ ΓαÑíπÑΓß∩) ¿ ß«σαá¡¿½¿ º¡áτÑ¡¿∩
- αÑú¿ßΓα«ó, óδ ¼«ªÑΓÑ ¡á»¿ßáΓ∞ «ß¡«ó¡«Ñ Γѽ« »α«µÑñπαδ. é »α«µÑßßÑ
- ¡á»¿ßá¡¿∩ ¿¡ßΓαπ¬µ¿⌐, «ßπΘÑßΓó½∩εΘ¿σ ñ«ßΓπ» ¬ »áαá¼ÑΓαá¼, αáßß¼«Γα¿ΓÑ
- ßσѼπ ºá»¿ß¿ á¬Γ¿óᵿ¿ »«ß½Ñ ó맮óá »α«µÑñπαδ, ¿º«íαáªÑ- ¡¡πε ¡á α¿ßπ¡¬Ñ
- æ.1.
-
- æΓáαΦ¿Ñ |»áαá¼ÑΓα |
- áñαÑßá |»áαá¼ÑΓα |
- | . |
- | . |
- | . |
- | |
- |»áαá¼ÑΓα |
- |áñαÑß ó«ºóαáΓá |
- | ºá»«¼¡Ñ¡¡«Ñ | ºñÑß∞ σαá¡¿Γß∩ π¬áºáΓѽ∞ ¡á ºá»¿ß∞
- | BP | á¬Γ¿óᵿ¿ (BP)
- |»á¼∩Γ∞ ñ½∩ ½«- |
- |¬á½∞¡δσ ñá¡¡δσ |
- |ºá»«¼¡Ñ¡¡δ⌐ SI |
- |ºá»«¼¡Ñ¡¡δ⌐ | SP π¬áºδóáÑΓ ¡á »«ß½Ññ¡¿⌐ φ½Ñ¼Ñ¡Γ,
- | DI | »«¼ÑΘÑ¡¡δ⌐ ó ßΓѬ.
- î½áñΦ¿Ñ
- áñαÑßá
-
- É¿ßπ¡«¬ æ.1. çỿß∞ á¬Γ¿óᵿ¿.
-
-
- çỿß∞ á¬Γ¿óᵿ¿ »α«µÑñπαδ πßΓá¡áó½¿óáÑΓß∩ ß½ÑñπεΘÑ⌐
- »«ß½Ññ«óáΓѽ∞¡«ßΓ∞ε ñÑ⌐ßΓó¿⌐:
-
- 1.éδºδóáεΘá∩ »α«úαá¼¼á »«¼ÑΘáÑΓ ¬áªñδ⌐ »áαá¼ÑΓα ó ßΓѬ, »«ß½Ñ τÑú«
- αÑú¿ßΓα SP π¬áºδóáÑΓ ¡á »«ß½Ññ¡¿⌐ αẼÑΘÑ¡¡δ⌐ »áαá¼ÑΓα.
-
- 2.éδºδóáεΘá∩ »α«úαá¼¼á ¿¡¿µ¿¿απÑΓ ¿¡ßΓαπ¬µ¿ε CALL, ¬«Γ«αá∩
- πßΓá¡áó½¿óáÑΓ áñαÑß ó«ºóαáΓá (¼ÑßΓ« ó óδºδóáεΘÑ⌐ »α«úαá¼¼Ñ, ¡á ¬«Γ«α«Ñ
- ó«ºóαáΘáÑΓß∩ π»αáó½Ñ¡¿Ñ »«ß½Ñ «¬«¡τá¡¿∩ αáí«Γδ »α«µÑñπαδ) ¿ »«¼ÑΘáÑΓ Ñú«
- ó ßΓѬ. äá¡¡δ⌐ áñαÑß ¼«ªÑΓ íδΓ∞ ½¿í« ñδá íá⌐Γá ñ½¿¡¡«⌐ (ñ½∩ "í½¿ª¡¿σ"
- ó맮ó«ó), ½¿í« τÑΓδαÑ íá⌐Γá ñ½¿¡¡«⌐ (ñ½∩ "ñá½∞¡¿σ" ó맮ó«ó). ÆÑ»Ñα∞
- αÑú¿ßΓα SP π¬áºδóáÑΓ ¡á ñá¡¡δ⌐ áñαÑß.
-
- 3.ÅÑαóá∩ ¿¡ßΓαπ¬µ¿∩ óδºóá¡¡«⌐ »α«µÑñπαδ ß«σαá¡∩ÑΓ ßΓáα«Ñ º¡áτÑ¡¿Ñ BP
- (push bp). ÉÑú¿ßΓα SP ΓÑ»Ñα∞ π¬áºδóáÑΓ ¡á ß«σαá¡Ñ¡¡πε ¬«»¿ε BP.
-
- 4.êß»«½∞ºπ⌐ΓÑ αÑú¿ßΓα BP ñ½∩ ºáσóáΓá ΓѬπΘÑú« º¡áτÑ¡¿∩ αÑú¿ßΓαá SP ß
- »«¼«Θ∞ε ¿¡ßΓαπ¬µ¿¿ mov bp, sp. ÆÑ»Ñα∞ BP π¬áºδóáÑΓ ¡á ßΓáα«Ñ º¡áτÑ¡¿Ñ
- BP.
-
- 5.ū߬«½∞¬π BP «ßΓáÑΓß∩ »«ßΓ«∩¡¡δ¼ ¡á »α«Γ∩ªÑ¡¿¿ óßÑ⌐ »α«µÑñπαδ, SP
- ¼«ªÑΓ íδΓ∞ π¼Ñ¡∞ΦÑ¡« ñ½∩ Γ«ú«, τΓ«íδ «ßó«í«ñ¿Γ∞ ¼ÑßΓ« ó ßΓÑ¬Ñ ñ½∩
- ½«¬á½∞¡δσ ñá¡¡δσ ¿½¿ ºáαѺÑαó¿α«óá¡¡δσ αÑú¿ßΓα«ó.
-
- é «ß¡«ó¡«¼, ß¼ÑΘÑ¡¿Ñ («Γ¡«ß¿Γѽ∞¡« BP) ñ½∩ »áαá¼ÑΓαá X αáó¡«:
-
- 2 + αẼÑα áñαÑßá ó«ºóαáΓá
- + «íΘ¿⌐ αẼÑα »áαá¼ÑΓα«ó ¼Ñªñπ X ¿ BP.
-
- ìá»α¿¼Ñα, »αÑñ»«½«ª¿¼, τΓ« »α«µÑñπαá FAR »«½πτáÑΓ «ñ¿¡ »áαá¼ÑΓα,
- ñóπσíá⌐Γ«óδ⌐ áñαÑß. æ¼ÑΘÑ¡¿Ñ ñ½∩ φΓ«ú« »áαá¼ÑΓαá íπñÑΓ αáó¡«:
-
- ß¼ÑΘÑ¡¿Ñ áαúπ¼Ñ¡Γá = 2 + αẼÑα áñαÑßá ó«ºóαáΓá
- = 2 + 4
- = 6
-
- Çαúπ¼Ñ¡Γ ¼«ªÑΓ ó Γᬫ¼ ß½πτáÑ íδΓ∞ ºáúαπªÑ¡ ó αÑú¿ßΓα BP ß »«¼«Θ∞ε
- ß½ÑñπεΘÑ⌐ ¿¡ßΓαπ¬µ¿¿:
-
- mov bx,[bp+6]
-
- àß½¿ óδ «ñ¡áªñδ «»αÑñѽ¿½¿ ß¼ÑΘÑ¡¿Ñ ñ½∩ ¬áªñ«ú« »áαá¼ÑΓαá, óá¼ ¼«úπΓ
- »«¡áñ«í¿Γ∞ß∩ ßΓ᫬«óδÑ παáó¡Ñ¡¿∩ ¿½¿ ßΓαπ¬Γπαδ, τΓ«íδ ¬ »áαá¼ÑΓαπ ó
- óáΦѼ ¿ßσ«ñ¡«¼ áßßѼí½Ñα¡«¼ ¬«ñÑ ¼«ª¡« í佫 «íαáΓ¿Γ∞ß∩ »« Ññ¿¡ßΓóÑ¡¡«¼π
- ¿ñÑ¡Γ¿Σ¿µ¿απεΘÑ¼π ¿¼Ñ¡¿. ìá»α¿¼Ñα, ¬ »áαá¼ÑΓαπ, ¡áσ«ñ∩ΘѼπß∩ »« áñαÑßπ
- BP+6 íπñÑΓ πñ«í¡« «íαáΘáΓ∞ß∩, Ñß½¿ ó ¡áτá½Ñ ¿ßσ«ñ¡«ú« áßßѼí½Ñα¡«ú«
- Σá⌐½á óδ »«¼ÑßΓ¿ΓÑ ß½ÑñπεΘ¿⌐ «»ÑαáΓ«α:
-
- Arg1 EQU [bp+6]
-
- Å«ß½Ñ φΓ«ú« ó ½εí«⌐ ¿¡ßΓαπ¬µ¿¿ ¡á ñá¡¡δ⌐ »áαá¼ÑΓα ¼«ª¡« ßßδ½áΓ∞ß∩ »«
- ¿ñÑ¡Γ¿Σ¿¬áΓ«απ Arg1. êß»«½∞ºπ⌐ΓÑ φΓ« ßαÑñßΓó« ó ¬áτÑßΓóÑ »«½Ñº¡«ú«
- ñ«»«½¡Ñ¡¿∩.
-
- ---------------------------------------------------------------------
-
- Åα¿¼Ñτá¡¿Ñ:
-
- éδß«¬«πα«ó¡ÑóδÑ ∩ºδ¬¿ Σ¿α¼δ Microsoft óßÑúñá αẼÑΘáεΓ áñαÑßá
- ßÑú¼Ñ¡Γ«ó »ÑαÑñ áñαÑßἿ ß¼ÑΘÑ¡¿⌐. Å«φΓ«¼π, Ñß½¿ ó ßΓѬ «»π߬áεΓß∩
- áαúπ¼Ñ¡Γδ í«½∞ΦÑ 2-σ íá⌐Γ«ó, ßΓáαΦ¿Ñ ß½«óá óßÑúñá «»π߬áεΓß∩ »ÑαÑñ
- ¼½áñΦ¿¼ ß½«ó«¼.
-
- ---------------------------------------------------------------------
-
-
-
- æ.1.6. 髺óαáΓ º¡áτÑ¡¿⌐ (¡Ñ«í∩ºáΓѽ∞¡«).
-
- éδß«¬«πα«ó¡ÑóδÑ ∩ºδ¬¿ Microsoft ñ½∩ »«½πτÑ¡¿∩ ó«ºóαáΘáѼδσ º¡áτÑ¡¿⌐
- »«½∞ºπεΓß∩ á¡á½«ú¿τ¡δ¼¿ ß«ú½áΦÑ¡¿∩¼¿. äá¡¡δÑ ß«ú½áΦÑ¡¿∩ ß«ó»áñáεΓ, Ñß½¿
- ó«ºóαáΘáѼδ⌐ Γ¿» ñá¡¡δσ ¡Ñ ∩ó½∩ÑΓß∩ ß½«ª¡δ¼ (¡á»α¿¼Ñα ¼áßß¿ó«¼ ¿½¿
- ßΓαπ¬Γπα«⌐) ¿ ¿¼ÑÑΓ ñ½¿¡π ¡Ñ í«½ÑÑ τÑΓδαÑσ íá⌐Γ«ó. ¥Γ« ó¬½ετáÑΓ ó ßÑí∩
- óßÑ "í½¿ª¡¿¿" ¿ "ñá½∞¡¿Ñ" áñαÑßá (Γ« ÑßΓ∞ óßÑ π¬áºáΓѽ¿ ¿ óßÑ »áαá¼ÑΓαδ,
- »ÑαÑñáóáѼδÑ »« ßß佬Ñ).
-
- ÉẼÑα ñá¡¡δσ 髺óαáΘáѼ«Ñ º¡áτÑ¡¿Ñ
-
-
- 1 íá⌐Γ AL
- 2 íá⌐Γá AX
- 4 íá⌐Γá ßΓáαΦá∩ τáßΓ∞ (¿½¿ áñαÑß ßÑú¼Ñ¡Γá) ó DX
- ¼½áñΦá∩ τáßΓ∞ (¿½¿ áñαÑß ß¼ÑΘÑ¡¿∩) ó AX
-
-
- àß½¿ ó«ºóαáΘáѼ«Ñ º¡áτÑ¡¿Ñ í«½∞ΦÑ τÑΓδαÑσ íá⌐Γ«ó, »α«µÑñπαá
- óδºδóáѼá∩ ¿º ∩ºδ¬á æê, ñ«½ª¡á «ΓóÑßΓ¿ »á¼∩Γ∞ ñ½∩ ó«ºóαáΘáѼ«ú«
- º¡áτÑ¡¿∩, á ºáΓѼ »«¼ÑßΓ¿Γ∞ φëà áñαÑß ó DX:AX. ôñ«í¡δ¼ ß»«ß«í«¼
- αáß»αÑñѽѡ¿∩ »á¼∩Γ¿ ñ½∩ ó«ºóαáΘáѼ«ú« º¡áτÑ¡¿∩ ∩ó½∩ÑΓß∩ »α«ßΓ«Ñ
- «íΩ∩ó½Ñ¡¿Ñ Ñú« ó ßÑú¼Ñ¡ΓÑ ñá¡¡δσ.
-
-
- æ.1.8. éδσ«ñ ¿º »α«µÑñπαδ.
-
- Åα¿ ºáóÑαΦÑ¡¿¿ »α«µÑñπαδ ñ«½ª¡δ íδΓ∞ óδ»«½¡Ñ¡δ ß½ÑñπεΘ¿Ñ Φáú¿:
-
- 1.àß½¿ ¬á¬¿Ñ-½¿í« ¿º αÑú¿ßΓα«ó SS, DS, SI ¿ DI í뫨 ß«σαá¡Ñ¡δ, »ÑαÑñ
- óδσ«ñ«¼ ¿º »α«µÑñπαδ «¡¿ ñ«½ª¡δ íδΓ∞ ¿ºó½ÑτÑ¡δ ¿º ßΓѬá ó »«α∩ñ¬Ñ,
- «íαáΓ¡«¼ ¿σ αẼÑΘÑ¡¿ε.
-
- 2.àß½¿ ½«¬á½∞¡δÑ ñá¡¡δÑ αẼÑΘÑ¡δ ó ¡áτá½Ñ »α«µÑñπαδ, αÑú¿ßΓα SP
- ñ«½ªÑ¡ íδΓ∞ ó«ßßΓá¡«ó½Ñ¡ ß »«¼«Θ∞ε ¿¡ßΓαπ¬µ¿¿ mov sp, bp.
-
- 3.é«ßßΓá¡«ó¿ΓÑ αÑú¿ßΓα BP ß »«¼«Θ∞ε pop bp. äá¡¡δ⌐ Φáú óßÑúñá
- ¡Ñ«íσ«ñ¿¼.
-
- 4.ìᬫ¡Ñµ, óÑα¡¿ΓÑß∞ ó óδºδóáεΘπε »α«úαá¼¼π ß »«¼«Θ∞ε ret.
- éδºδóáεΘ¿⌐ ¼«ñπ½∞ ¡á ∩ºδ¬Ñ æê áóΓ«¼áΓ¿τÑ߬¿ «ΓαÑúπ½¿απÑΓ ßΓѬ »«
- «Γ¡«ΦÑ¡¿ε ¬ »áαá¼ÑΓαá¼, ¬«Γ«αδÑ í뫨 «»πΘÑ¡δ »α¿ ó맮óÑ.
-
- -Åα¿¼Ñαδ:
- pop bp
- ret
-
- Åα¿óÑñÑ¡¡δ⌐ óδΦÑ »α¿¼Ñα »«¬áºδóáÑΓ »α«ßΓÑ⌐Φπε »«ß½Ññ«óáΓѽ∞¡«ßΓ∞
- óδσ«ñá. ì¿¬á¬¿Ñ αÑú¿ßΓαδ ¡Ñ í뫨 ºáαѺÑαó¿α«óá¡δ, ¡Ñ í뫨 αẼÑΘÑ¡δ
- ½«¬á½∞¡δÑ ñá¡¡δÑ, ¿ ¿ß»«½∞º«óá¡δ ß«ú½áΦÑ¡¿∩ « ßó∩º∩σ ∩ºδ¬á æê.
-
- pop di ;é«ßßΓá¡«ó½Ñ¡¿Ñ ºáαѺÑαó¿α«óá¡¡δσ αÑú¿ßΓα«ó
- pop si
- mov sp, bp ;Äßó«í«ªñÑ¡¿Ñ »α«ßΓαá¡ßΓóá, ºá¡∩Γ«ú« ½«¬á½∞¡δ¼¿ ñá¡-
- ¡δ¼¿
- pop bp ;é«ßßΓá¡«ó½Ñ¡¿Ñ ßΓáα«ú« π¬áºáΓѽ∩ ¡á ºá»¿ß∞ á¬Γ¿óᵿ¿
- ret 6 ;éδσ«ñ ¿ ó«ßßΓá¡«ó½Ñ¡¿Ñ 6 íá⌐Γ«ó, ºá¡∩Γδσ áαúπ¼Ñ¡ΓἿ
-
- é ñá¡¡«¼ »α¿¼ÑαÑ »«¬áºá¡á »«ß½Ññ«óáΓѽ∞¡«ßΓ∞ óδσ«ñá ñ½∩ »α«µÑñπαδ,
- ¬«Γ«αá∩ »αÑñóáα¿Γѽ∞¡« ºáαѺÑαó¿α«óá½á º¡áτÑ¡¿∩ αÑú¿ßΓα«ó SI ¿ DI,
- αẼÑßΓ¿½á ½«¬á½∞¡δÑ ñá¡¡δÑ ¿ ¿ß»«½∞º«óá½á ß«ú½áΦÑ¡¿∩ « ßó∩º∩σ ¡Ñ
- «Γ¡«ß∩Θ¿Ñß∩ ¬ ∩ºδ¬π æê. Å«φΓ«¼π, »α«µÑñπαá ñ«½ª¡á ¿ß»«½∞º«óáΓ∞
- ¿¡ßΓαπ¬µ¿ε ret 6, τΓ«íδ ó«ßßΓá¡«ó¿Γ∞ 6 íá⌐Γ«ó, ºá¡∩Γδσ »áαá¼ÑΓαἿ ó
- ßΓѬÑ.
-
-
- æ.2. é맮ó »α«µÑñπα ¡á ∩ºδ¬Ñ ÇßßѼí½Ñα ¿º ∩ºδ¬á æê.
-
- Åα«úαá¼¼á ¡á ∩ºδ¬Ñ æê ¼«ªÑΓ óδºóáΓ∞ »α«µÑñπαπ ¡á ∩ºδ¬Ñ ÇßßѼí½Ñα,
- ¡áσ«ñ∩Θπεß∩ ó ñαπú«¼ ¼«ñπ½Ñ, ¬á¬ ¿ »α¿ ó맮óÑ æê-Σπ¡¬µ¿¿. é ñ«»«½¡Ñ¡¿Ñ ¬
- Φáúá¼, «»¿ßá¡¡δ¼ ó ÉáºñÑ½Ñ æ.1 "ìỿßá¡¿Ñ »α«µÑñπαδ ¡á ∩ºδ¬Ñ ÇßßѼí½Ñα",
- ¼«úπΓ «¬áºáΓ∞ß∩ »«½Ñº¡δ¼¿ ß½ÑñπεΘ¿Ñ »αáó¿½á:
-
- 1.Ä»¿ßδóá⌐ΓÑ »α«µÑñπαδ, óδºδóáѼδÑ ¿º æê-»α«úαá¼¼ ß ¬½ετÑóδ¼ ß½«ó«¼
- far, Ñß½¿ æê-¼«ñπ½∞ íδ½ ß¬«¼»¿½¿α«óá¡ ó í«½∞Φ«⌐, ßóÑασí«½∞Φ«⌐ ¿½¿
- ßαÑñ¡Ñ⌐ ¼«ñѽ¿ »á¼∩Γ¿, ¿ ß ¬½ετÑóδ¼ ß½«ó«¼ near, Ñß½¿ æê-¼«ñπ½∞ íδ½
- ߬«¼»¿½¿α«óá¡ ó ¼á½«⌐ ¿½¿ ¬«¼»á¬Γ¡«⌐ ¼«ñѽ¿. è½ετÑóδÑ ß½«óá far ¿½¿ near
- «Γ¼Ñ¡∩εΓ ½εíδÑ ßΓá¡ñáαΓ¡δÑ ¡áº¡áτÑ¡¿∩. àß½¿ óδ ¿ß»«½∞ºπÑΓÑ ñ¿αÑ¬Γ¿óπ
- .MODEL, ¿¼ÑεΘπεß∩ ó Micro soft Macro Assembler óÑαß¿¿ 5.0, «íΩ∩ó½Ñ¡¿Ñ
- ¼«ñѽ¿ »á¼∩Γ¿ ñ½∩ »α«µÑñπαδ ñѽáÑΓß∩ ∩ó¡«.
-
- 2.Äíº«α ß«ú½áΦÑ¡¿⌐ « ßó∩º∩σ ∩ºδ¬á æê. Å« ß«ú½áΦÑ¡¿∩¼ ∩ºδ¬á æê
- »áαá¼ÑΓαδ «»π߬áεΓß∩ ó ßΓѬ ó Γ«¼ »«α∩ñ¬Ñ, ó ¬á¬«¼ «¡¿ ¡áσ«ñ∩Γß∩ ó
- ¿ßσ«ñ¡«¼ ¬«ñÑ. ìá»α¿¼Ñα, ó맮ó Σπ¡¬µ¿¿ æê calc(a,b); «»π߬áÑΓ b ó ßΓѬ
- αá¡∞ΦÑ a. é »α«Γ¿ó«»«½«ª¡«ßΓ∞ «ßΓá½∞¡δ¼ óδß«¬«πα«ó¡Ñóδ¼ ∩ºδ¬á¼, ó
- ß«ú½áΦÑ¡¿∩σ « ßó∩º∩σ ∩ºδ¬á æê »«½«ªÑ¡«, τΓ«íδ óδºδóáεΘá∩ »α«µÑñπαá
- óßÑúñá ó«ßßΓá¡áó½¿óá½á ßΓφ¬ ¡Ñ»«ßαÑñßΓóÑ¡¡« »«ß½Ñ ó«ºóαáΘÑ¡¿∩ π»αáó½Ñ¡¿∩
- ¿º óδºδóáѼ«⌐ »α«úαá¼¼δ. æ«ú½áΦÑ¡¿∩ « ßó∩º∩σ ∩ºδ¬á æê ñѽáεΓ ó«º¼«ª¡δ¼
- ó맮ó »ÑαѼѡ¡δ¼ τ¿ß½«¼ »áαá¼ÑΓα«ó. (ū߬«½∞¬π »Ñαóδ⌐ »áαá¼ÑΓα óßÑúñá
- «»π߬áÑΓß∩ ó ßΓѬ »«ß½Ññ¡¿¼, «¡ ¿¼ÑÑΓ «Γ¡«ß¿Γѽ∞¡« π¬áºáΓѽ∩ ¡á ºá»¿ß∞
- á¬Γ¿óᵿ¿ «ñ¿¡ ¿ ëà ªÑ áñαÑß. ìѺáó¿ß¿¼« «Γ ¬«½¿τÑßΓóá »ÑαÑñá¡¡δσ
- τ¿ß½«¼ »áαá¼ÑΓα«ó »α¿¼Ñ¡∩εΓß∩ ß½ÑñπεΘ¿Ñ φΓá»δ:
-
- á)髺óαáΓ »α«¿ºó«ñ¿Γß∩ »«ßαÑñßΓó«¼ »α«ßΓ«⌐ ¿¡ßΓαπ¬µ¿Ñ⌐ ret. ìÑ
- ó«ßßΓá¡áó½¿óá⌐ΓÑ ßΓѬ »«ßαÑñßΓó«¼ ¿¡ßΓαπ¬µ¿¿ ret size, »«ß¬«½∞¬π
- óδºδóáεΘá∩ æê-»α«µÑñπαá ßá¼á ó«ßßΓá¡«ó¿Γ ßΓѬ, ¬á¬ Γ«½∞¬« Ñ⌐ íπñÑΓ
- »ÑαÑñá¡« π»αáó½Ñ¡¿Ñ.
-
- í)Åáαá¼ÑΓαδ »«¼ÑΘáεΓß∩ ó ßΓѬ ó »«α∩ñ¬Ñ, «íαáΓ¡«¼ Γ«¼π, ¬á¬ «¡¿
- »«∩ó½∩½¿ß∞ ó ¿ßσ«ñ¡«¼ ¬«ñÑ ¡á ∩ºδ¬Ñ æê. ÅÑαóδ⌐ »áαá¼ÑΓα íπñÑΓ ¡áσ«ñ¿Γ∞ß∩
- »« ¼½áñΦ¿¼ áñαÑßá¼ »á¼∩Γ¿ (»«ß¬«½∞¬π-φΓ« »«ß½Ññ¡¿⌐ »«¼ÑΘáѼδ⌐ ó ßΓφ¬
- »áαá¼ÑΓα, Γ« ÑßΓ∞ ßΓφ¬ αáßΓÑΓ ó¡¿º).
-
- ß)æΓá¡ñáαΓ¡«, »áαá¼ÑΓαδ ∩ºδ¬á æê »ÑαÑñáεΓß∩ º¡áτÑ¡¿Ñ¼, ¿ß¬½ετá∩
- ¼áßß¿óδ, »ÑαÑñáóáѼδÑ »« áñαÑß¡«⌐ ßß佬Ñ.
-
- 3.Äíº«α ß«ú½áΦÑ¡¿⌐ « ¡á¿¼Ñ¡«óá¡¿∩σ ∩ºδ¬á æê.
-
- ì὿τ¿Ñ »«ñτÑનóá¡¿∩ »ÑαÑñ ½εíδ¼ ¿¼Ñ¡Ñ¼ ó ∩ºδ¬Ñ æê ñѽáÑΓ Ñú«
- ú½«íá½∞¡δ¼. é ∩ºδ¬Ñ æê αáß»«º¡áεΓß∩ Γ«½∞¬« »ÑαóδÑ ó«ßѼ∞ ß¿¼ó«½«ó,
- »«φΓ«¼π ¡Ñ ñѽá⌐ΓÑ ¿¼Ñ¡á, ¿ß»«½∞ºπѼδÑ æê, ñ½¿¡¡«⌐ í«½ÑÑ ó«ß∞¼¿
- ß¿¼ó«½«ó. èα«¼Ñ Γ«ú«, Ñß½¿ óδ íπñÑΓÑ óδ»«½¡∩Γ∞ ¬«¼»á¡«ó¬π ß «»µ¿Ñ⌐
- /NOIGNORECASE, »«¼¡¿ΓÑ, τΓ« ∩ºδ¬ æê τπóßΓó¿Γѽѡ ¬ íπ¬óÑ¡¡δ¼ αÑú¿ßΓαá¼,
- ¿ ¡Ñ »αÑ«íαáºπ⌐ΓÑ ¿¼Ñ¡á ¬ óÑασ¡Ñ¼π αÑú¿ßΓαπ.
-
- é ß½ÑñπεΘѼ »α¿¼ÑαÑ »α«úαá¼¼á ¡á ∩ºδ¬Ñ æê óδºδóáÑΓ áßßѼí½Ñα¡πε
- »α«µÑñπαπ, ¬«Γ«αá∩ óδτ¿ß½∩ÑΓ Ç*2**B, úñÑ Ç ¿ é-»Ñαóδ⌐ ¿ óΓ«α«⌐
- »áαá¼ÑΓαδ, ß««ΓóÑΓßΓóÑ¡¡«. éδτ¿ß½Ñ¡¿∩ óδ»«½¡∩εΓß∩ »πΓѼ ßñó¿úá ó½Ñó«
- αáºα∩ñ«ó ó Ç é αáº.
-
- Åα«úαá¼¼á ¡á ∩ºδ¬Ñ æê ¿ß»«½∞ºπÑΓ ñ½∩ ß«ºñá¡¿∩ ¿¡ΓÑαΣÑ⌐ßá ß
- áßßѼí½Ñα¡«⌐ »α«µÑñπα«⌐ «»¿ßá¡¿Ñ extern. ìÑ ΓαÑíπÑΓß∩ ¡¿¬á¬¿σ ¬½ετÑóδσ
- ß½«ó, »«ß¬«½∞¬π áßßѼí½Ñα¡á∩ »α«µÑñπαá íπñÑΓ ¿ß»«½∞º«óáΓ∞ ß«ú½áΦÑ¡¿∩ «
- ßó∩º∩σ ∩ºδ¬á æê.
-
- extern int power2(int, int);
- main()
- {
- printf("3 times 2 to the power of 5 is %d\n", power2(3,5));
- }
-
-
-
- ùΓ«íδ »«¡∩Γ∞, ¬á¬ »¿ΦÑΓß∩ áßßѼí½Ñα¡á∩ »α«µÑñπαá, αáßß¼«Γα¿ΓÑ
- α¿ßπ¡«¬ æ.2, ¡á ¬«Γ«α«¼ »«¬áºá¡á ßσѼá αẼÑΘÑ¡¿∩ »áαá¼ÑΓα«ó ó ßΓѬÑ.
-
- æΓáαΦ¿Ñ áñαÑßá | B | Arg<-2 | BP+6
- (æ ¬áªñδ¼ «»π߬᡿Ѽ | A | Arg<-1 | BP+4
- áαúπ¼Ñ¡Γá ¿½¿ ¬áªñδ¼ | ÇñαÑß ó«ºóαáΓá | BP+2
- óδº«ó«¼ ßΓѬ αáßΓÑΓ | çáαѺÑαó¿α«óá¡¡δ⌐ | BP
- 󡿺) | BP |
- î½áñΦ¿Ñ áñαÑßá
-
- É¿ßπ¡«¬ æ.2. çỿß∞ á¬Γ¿óᵿ¿ æê.
-
- ÇñαÑß ó«ºóαáΓá ¿¼ÑÑΓ ó ñ½¿¡π íá⌐Γá, »αÑñ»«½áúá∩, τΓ« æê-¼«ñπ½∞ íδ½
- ߬«¼»¿½¿α«óá¡ ó ¼á½«⌐ ¿½¿ ¬«¼»á¬Γ¡«⌐ ¼«ñѽ¿. àß½¿ ªÑ æê-¼«ñπ½∞
- ¬«¼»¿½¿απÑΓß∩ ó í«½∞Φ«⌐, ßóÑασí«½∞Φ«⌐ ¿½¿ ßαÑñ¡Ñ⌐ ¼«ñѽ¿, Γ« áñαÑßá
- Arg<-1 ¿ Arg<-2-¬áªñδ⌐ πóѽ¿τ¿óáεΓß∩ ¡á 2 íá⌐Γá, Γ« ÑßΓ∞, ß««ΓóÑΓßΓóÑ¡¡«
- ßΓá¡«ó∩Γß∩ BP+6 ¿ BP+8, »«ß¬«½∞¬π áñαÑß ó«ºóαáΓá ºñÑß∞ 4 íá⌐Γá ñ½¿¡«⌐.
-
- ÅÑαóδ⌐ »áαá¼ÑΓα Arg<-1 αáß»«½«ªÑ¡ »« áñαÑßá¼ í«½ÑÑ ¼½áñΦ¿¼, τѼ
- Arg<-2,»«ß¬«½∞¬π ∩ºδ¬ æê «»π߬áÑΓ áαúπ¼Ñ¡Γδ ó ßΓѬ ó «íαáΓ¡«¼ »«α∩ñ¬Ñ.
- èáªñδ⌐ áαúπ¼Ñ¡Γ »ÑαÑñáÑΓß∩ º¡áτÑ¡¿Ñ¼. ÇßßѼí½Ñα¡á∩ »α«µÑñπαá ¼«ªÑΓ íδΓ∞
- ¡á»¿ßá¡á ß½ÑñπεΘ¿¼ «íαẫ¼:
-
- .MODEL SMALL
- .CODE
- PUBLIC _power2
- _power2 PROC
- push bp ;éσ«ñ¡á∩ »«ß½Ññ«óáΓѽ∞¡«ßΓ∞-ß«σαá¡Ñ¡¿Ñ ßΓáα«-
- ú« BP
-
-
- mov bp,sp ;ôßΓá¡«ó¬á π¬áºáΓѽ∩ ¡á ºá»¿ß∞ á¬Γ¿óᵿ¿
-
- mov ax,[bp+4] ;çáúαπº¬á Arg 1 ó AX
- mov cx,[bp+6] ;çáúαπº¬á Arg 2 ó CX
- shl ax,cl ;AX = AX*(2 ó ßΓѻѡ¿ CX)
- ;髺óαáΘáѼ«Ñ º¡áτÑ¡¿Ñ «ßΓáÑΓß∩ ó AX
- pop bp ;éδσ«ñ¡á∩ »«ß½Ññ«óáΓѽ∞¡«ßΓ∞-ó«ßΓá¡«ó-
- ½Ñ¡¿Ñ ßΓáα«ú« BP
- ret ;éδσ«ñ
- _power2 ENDP
- END
-
- Åα¿óÑñÑ¡¡δ⌐ óδΦÑ »α¿¼Ñα »αÑñ»«½áúáÑΓ, τΓ« æê-¼«ñπ½∞ ¬«¼»¿½¿απÑΓß∩ ó
- ¼á½«⌐ ¼«ñѽ¿ »á¼∩Γ¿. æ¼ÑΘÑ¡¿Ñ »áαá¼ÑΓαá ¿ ñ¿αÑ¬Γ¿óá .MODEL ¿º¼Ñ¡∩Γß∩ ñ½∩
- ñαπú¿σ ¼«ñѽÑ⌐ »á¼∩Γ¿.
-
- ÄíαáΓ¿ΓÑ ó¡¿¼á¡¿Ñ, τΓ« ¿¡ßΓαπ¬µ¿∩ ret ¿ß»«½∞ºπÑΓß∩ íѺ »ÑαѼѡ¡«⌐
- size, »«ß¬«½∞¬π óδºδóáεΘá∩ »α«úαá¼¼á »«ß½Ñ ó«ºóαáΘÑ¡¿∩ ¿º »α«µÑñπαδ ßá¼á
- óδαáó¡¿óáÑΓ ßΓѬ.
-
-
- æ.3. é맮ó ∩ºδ¬á æê ¿º ∩ºδ¬á ÇßßѼí½Ñα.
-
- Åα«µÑñπαδ óδß«¬«πα«ó¡Ñóδσ ∩ºδ¬«ó »αÑñ»«½áúáεΓ, τΓ« »αÑñóáα¿Γѽ∞¡«
- íδ½ óδ»«½¡Ñ¡ ¡Ñ¬«Γ«αδ⌐ ¿¡¿µ¿á½¿º¿απεΘ¿⌐ ¬«ñ; óδ ñ«½ª¡δ íδΓ∞ πóÑαÑ¡δ, τΓ«
- »α¿ ßΓáαΓÑ ¼«ñπ½∩ óδß«¬«πα«ó¡Ñóδσ ∩ºδ¬«ó óδ»«½¡Ñ¡á ¬«ααÑ¬Γ¡á∩
- ¿¡¿µ¿á½¿ºáµ¿∩, á ºáΓѼ óδºóáΓ∞ áßßѼí½Ñα¡πε »α«µÑñπαπ. ÇßßѼí½Ñα¡á∩
- »α«µÑñπαá ¼«ªÑΓ ºáΓѼ ßá¼á óδºδóáΓ∞ óδß«¬«πα«ó¡ÑóδÑ ∩ºδ¬«óδÑ »α«µÑñπαδ,
- ¬á¬ »«¬áºá¡« ¡á α¿ßπ¡¬Ñ æ.3.
-
-
- æê-¬«ñ è«ñ ¡á ÇßßѼí½ÑαÑ
- (¡áτὫ »α«úαá¼¼δ ¡á æê) |
- main(){ |
- asub(); |
- } | PROC asub
- | .
- (C termination) | .
- | .
- | call ctest
- ctest(){ | .
- . | .
- . |
- | ret
- . | ENDP asub
- } |
-
- É¿ßπ¡«¬ æ.3. é맮ó æê ¿º ÇßßѼí½Ñαá.
-
- ä½∩ ó맮óá óδß«¬«πα«ó¡Ñóδσ ∩ºδ¬«ó ¿º ∩ºδ¬á ÇßßѼí½Ñα óá¼ ß½ÑñπÑΓ
- ß«í½εñáΓ∞ ß½ÑñπεΘ¿Ñ »αáó¿½á:
-
- -èáªñδ⌐ »áαá¼ÑΓα «»π߬á⌐ΓÑ ó ßΓѬ, ß«í½εñá∩ ß«ú½áΦÑ¡¿∩ « ßó∩º∩σ
- óδß«¬«πα«ó¡Ñóδσ ∩ºδ¬«ó. è«¡ßΓá¡Γδ, ΓᬿÑ, ¬á¬ áñαÑßá ß¼ÑΘÑ¡¿⌐, ñ«½ª¡δ
- íδΓ∞ ºáúαπªÑ¡δ ó αÑú¿ßΓα ñ« ½εíδσ «»π߬᡿⌐ ó ßΓѬ.
-
- -Åα¿ ñ½¿¡¡δσ »áαá¼ÑΓαáσ, óßÑúñá «»π߬á⌐ΓÑ ó ßΓφ¬ »Ñαó묨 ßÑú¼Ñ¡Γ,
- ½¿í« ßΓáαΦπε τáßΓ∞ »áαá¼ÑΓαá, ¡Ñºáó¿ß¿¼« «Γ ß«ú½áΦÑ¡¿⌐ « ßó∩º∩σ.
-
- -éδ»«½¡∩⌐ΓÑ ó맮ó. é맮ó ñ«½ªÑ¡ íδΓ∞ "ñá½∞¡¿¼", Ñß½¿ Γ«½∞¬«
- óδß«¬«πα«ó¡Ñóá∩ »α«µÑñπαá ¡Ñ «Γ¡«ß¿Γß∩ ¬ ¼á½«⌐ ¼«ñѽ¿ »á¼∩Γ¿.
-
- -àß½¿ »α«µÑñπαá ¿ß»«½∞º«óá½á ß«ú½áΦÑ¡¿∩ « ßó∩º∩σ ∩ºδ¬á æê, Γ«
- ¡Ñ»«ßαÑñßΓóÑ¡¡« ßαáºπ »«ß½Ñ ó맮óá «τ¿ßΓ¿ΓÑ ßΓѬ «Γ »áαá¼ÑΓα«ó ß »«¼«Θ∞ε
- ¿¡ßΓαπ¬µ¿¿: add sp, size, úñÑ size-φΓ« «íΘ¿⌐ αẼÑα ó íá⌐Γáσ óßÑσ
- »áαá¼ÑΓα«ó, «»πΘÑ¡¡δσ ó ßΓѬ.
-
-
- æ.4. æÑú¼Ñ¡Γ¡á∩ ¼«ñѽ∞ Σ¿α¼δ Microsoft.
-
- àß½¿ óδ »α¿¼Ñ¡∩ÑΓÑ »α«ßΓÑ⌐Φ¿Ñ ßÑú¼Ñ¡Γ¡δÑ ñ¿αÑ¬Γ¿óδ, óá¼ ¡Ñ
- »«ΓαÑíπÑΓß∩ º¡áΓ∞ ¿¼Ñ¡á, ¡áº¡áτÑ¡¡δÑ ¬áªñ«¼π ßÑú¼Ñ¡Γπ. Äñ¡á¬«, óÑαß¿¿
- Macro Assembler »αÑñΦÑßΓóπεΘ¿Ñ óÑαß¿¿ 5.0 ¡Ñ »«ññÑনóáεΓ ñá¡¡δÑ
- ñ¿αÑ¬Γ¿óδ. é ßΓáαΦ¿σ óÑαß¿∩σ áßßѼí½Ñαá óá¼ ß½ÑñπÑΓ ¿ß»«½∞º«óáΓ∞
- ñ¿αÑ¬Γ¿óδ SEGMENT, GROUP, ASSUME, ENDS, φ¬ó¿óá½Ñ¡Γ¡δÑ π»α«ΘÑ¡¡δ¼
- ßÑú¼Ñ¡Γ¡δ¼ ñ¿αÑ¬Γ¿óá¼.
-
- é Æáí½¿µÑ æ.1 »«¬áºá¡δ ßΓá¡ñáαΓ¡δÑ ¿¼Ñ¡á ßÑú¼Ñ¡Γ«ó, ß«ºñáóáѼδÑ
- ¬áªñ«⌐ ñ¿αÑ¬Γ¿ó«⌐. êß»«½∞º«óá¡¿Ñ ñá¡¡δσ ßÑú¼Ñ¡Γ«ó úáαá¡Γ¿απÑΓ
- ß«ó¼ÑßΓ¿¼«ßΓ∞ ß ∩ºδ¬á¼¿ Σ¿α¼δ Microsoft ¿ »«¼«ªÑΓ óá¼ »«½πτ¿Γ∞ ñ«ßΓπ» ¬
- ó¡ÑΦ¡¿¼ ¿¼Ñ¡á¼.
-
- çá Γáí½¿µÑ⌐ ß½ÑñπÑΓ «»¿ßá¡¿Ñ ΓαÑσ Φáú«ó ¿½½εßΓα¿απεΘ¿σ αÑá½∞¡δÑ
- «íΩ∩ó½Ñ¡¿∩, ¿ »α¿¼Ñα »α«úαá¼¼δ.
-
- Æáí½¿µá æ.1.
- æΓá¡ñáαΓ¡δÑ ßÑú¼Ñ¡Γδ ¿ Γ¿»δ ñ½∩ ßΓá¡ñáαΓ¡δσ ¼«ñѽÑ⌐ »á¼∩Γ¿.
-
- î«ñѽ∞ ä¿αÑ¬Γ¿óá ê¼∩ éδαáó¡¿- æ»«ß«í «íΩ è½áßß âαπ»»á
- óá¡¿Ñ Ññ¿¡Ñ¡¿∩
-
-
- îá½á∩ .CODE _TEXT WORD PUBLIC 'CODE'
- .DATA _DATA WORD PUBLIC 'DATA' DGROUP
- .CONST CONST WORD PUBLIC 'CONST' DGROUP
- .DATA? _BSS WORD PUBLIC 'BSS' DGROUP
- .STACK STACK PARA STACK 'STACK' DGROUP
-
- æαÑñ¡∩∩ .CODE name_TEXT WORD PUBLIC 'CODE'
- .DATA _DATA WORD PUBLIC 'DATA' DGROUP
- .CONST CONST WORD PUBLIC 'CONST' DGROUP
- .DATA? _BSS WORD PUBLIC 'BSS' DGROUP
- .STACK STACK PARA STACK 'STACK' DGROUP
-
- 諼»á¬Γ- .CODE _TEXT WORD PUBLIC 'CODE'
- ¡á∩ .FARDATA FAR_DATA PARA Private 'FAR_DATA'
- .FARDATA? FAR_BSS PARA Private 'FAR_BSS'
- .DATA _DATA WORD PUBLIC 'DATA' DGROUP
- .CONST CONST WORD PUBLIC 'CONST' DGROUP
- .DATA? _BSS WORD PUBLIC 'BSS' DGROUP
- .STACK STACK PARA STACK 'STACK' DGROUP
-
- ü«½∞Φá∩ .CODE name_TEXT WORD PUBLIC 'CODE'
- .FARDATA FAR_DATA PARA Private 'FAR_DATA'
- .FARDATA? FAR_BSS PARA Private 'FAR_BSS'
- .DATA _DATA WORD PUBLIC 'DATA' DGROUP
- .CONST CONST WORD PUBLIC 'CONST' DGROUP
- .DATA? _BSS WORD PUBLIC 'BSS' DGROUP
- .STACK STACK PARA STACK 'STACK' DGROUP
-
-
- ä¿αÑ¬Γ¿óδ Æáí½¿µδ æ.1 «Γ¡«ß∩Γß∩ ¬ ß½ÑñπεΘ¿¼ Γ¿»á¼ ßÑú¼Ñ¡Γ«ó:
-
-
- ä¿αÑ¬Γ¿óá Ä»¿ßá¡¿Ñ ßÑú¼Ñ¡Γá
-
-
- .CODE æÑú¼Ñ¡Γ, ß«ñÑαªáΘ¿⌐ óÑß∞ ¬«ñ ¼«ñπ½∩.
- .DATA Åα«¿¡¿µ¿á½¿º¿α«óá¡¡δÑ ñá¡¡δÑ.
- .DATA? ìÑ¿¡¿µ¿á½¿º¿α«óá¡¡δÑ ñá¡¡δÑ. 諼»¿½∩Γ«αδ Σ¿α-
- ¼δ Microsoft σαá¡∩Γ ¡Ñ¿¡¿µ¿á½¿º¿α«óá¡¡δÑ ñá¡-
- ¡δÑ «Γñѽ∞¡«, »«ß¬«½∞¬π Γá¬¿Ñ ñá¡¡δÑ ¼«ª¡« αáº
- ¼ÑßΓ¿Γ∞ í«½ÑÑ φΣΣÑ¬Γ¿ó¡«, τѼ »α«¿¡¿µ¿á½¿º¿α«-
- óá¡¡δÑ ñá¡¡δÑ.
- .FARDATA ¿ .FARDATA? äá¡¡δÑ, ¬«Γ«αδÑ ¡Ñ íπñπΓ «íΩÑñ¿¡∩Γ∞ß∩ ß ß««Γ-
- óÑΓßΓóπεΘ¿¼¿ ßÑú¼Ñ¡ΓἿ ñαπú¿σ ¼«ñπ½Ñ⌐. æÑú-
- ¼Ñ¡Γ αẼÑΘÑ¡¡δσ ºñÑß∞ ñá¡¡δσ, ΓѼ ¡Ñ ¼Ñ¡ÑÑ,
- óßÑúñá ¼«ªÑΓ íδΓ∞ «»αÑñѽѡ ß »«¼«Θ∞ε «»ÑαáΓ«-
- αá áßßѼí½Ñαá SEG.
- .CONST Å«ßΓ«∩¡¡δÑ ñá¡¡δÑ. 諼»¿½∩Γ«αδ Σ¿α¼δ Microsoft
- ¿ß»«½∞ºπεΓ ñá¡¡δ⌐ ßÑú¼Ñ¡Γ ñ½∩ φ½Ñ¼Ñ¡Γ«ó, Γá-
- ¬¿σ, ¬á¬ ßΓ᫬«óδÑ ¬«¡ßΓá¡Γδ ¿ ¬«¡ßΓá¡Γδ ß
- »½áóáεΘÑ⌐ Γ«τ¬«⌐.
- .STACK æΓѬ. Äíδτ¡«, ñá¡¡δ⌐ ßÑú¼Ñ¡Γ «íΩ∩ó½∩ÑΓß∩ ó
- ú½áó¡«¼ ¼«ñπ½Ñ ¿ ¡Ñ ñ«½ªÑ¡ íδΓ∞ »ÑαÑ«»αÑñѽѡ.
-
- ä½∩ ß«ºñá¡¿∩ αÑá½∞¡δσ ñ¿αÑ¬Γ¿ó ß »«¼«Θ∞ε Æáí½¿µδ æ.1 ¿ß»«½∞ºπ⌐ΓÑ
- ß½ÑñπεΘ¿Ñ Φáú¿:
-
- 1.é «»αÑñѽѡ¿¿ ßÑú¼Ñ¡Γá ß½ÑñπÑΓ ºáñáΓ∞ ¿¼∩, Γ¿» óδαáó¡¿óá¡¿∩, Γ¿»
- «íΩÑñ¿¡Ñ¡¿∩, ¬½áßß. Æá¬¿¼ «íαẫ¼, ßÑú¼Ñ¡Γ ¬«ñá ñ½∩ ¼á½«⌐ ¼«ñѽ¿ »á¼∩Γ¿
- ñ«½ªÑ¡ íδΓ∞ «íΩ∩ó½Ñ¡ ß½ÑñπεΘ¿¼ «íαẫ¼:
-
- _TEXT SEGMENT WORD PUBLIC 'CODE'
-
- àß½¿ Γ¿» «íΩÑñ¿¡Ñ¡¿∩ "private", »α«ßΓ« ¡Ñ ¿ß»«½∞ºπ⌐ΓÑ ¡¿¬á¬«ú« Γ¿»á
- «íΩÑñ¿¡Ñ¡¿∩.
-
- 2.àß½¿ π óáß ÑßΓ∞ ßÑú¼Ñ¡Γδ ó DGROUP, »«¼ÑßΓ¿ΓÑ ¿σ ó DGROUP ß »«¼«Θ∞ε
- ñ¿αÑ¬Γ¿óδ GROUP, ¬á¬ ó »α¿¼ÑαÑ:
-
- GROUP DGROUP _DATA _BSS
-
- 3.ä¿αÑ¬Γ¿óδ ASSUME ¿ ENDS ¿ß»«½∞ºπ⌐ΓÑ, ¬á¬ «íδτ¡«. Å«¼¡¿ΓÑ, τΓ« »α¿
- óó«ñÑ, αÑú¿ßΓαδ DS ¿ SS, «íá π¬áºδóáεΓ ¡á DGROUP.
-
- æ½ÑñπεΘ¿⌐ »α¿¼Ñα »«¬áºδóáÑΓ »α«úαá¼¼π "æê-ÇßßѼí½Ñα" ¿º ÉáºñÑ½á æ.3,
- ¡« íѺ π»α«ΘÑ¡¡δσ ßÑú¼Ñ¡Γ¡δσ ñ¿αÑ¬Γ¿ó ¿º óÑαß¿¿ 5.0 îá¬α«áßßѼí½Ñαá
- Σ¿α¼δ Microsoft.
-
- _TEXT SEGMENT WORD PUBLIC 'CODE'
- ASSUME cs: TEXT
- PUBLIC Power2
- _Power2 PROC
- push bp ;éσ«ñ¡á∩ »«ß½Ññ«óáΓѽ∞¡«ßΓ∞-ß«σαá¡Ñ¡¿∩ αÑú¿ß-
- Γαá BP.
- mov bp,sp ;ôßΓá¡«ó¬á ºá»¿ß¿ á¬Γ¿óᵿ¿.
-
- mov ax,[bp+4] ;çáúαπº¬á Arg1 ó AX.
- mov cx,[bp+6] ;çáúαπº¬á Arg2 ó CX.
- shl ax,cl ;AX = AX+(2 ó ßΓѻѡ¿ CX).
- ;ç¡áτÑ¡¿Ñ ó«ºóαáΓá «ßΓáÑΓß∩ ó AX.
- pop bp ;éδσ«ñ¡á∩ »«ß½Ññ«óáΓѽ∞¡«ßΓ∞-ó«ßßΓá¡«ó½Ñ¡¿Ñ αÑ-
- ú¿ßΓαá BP.
- ret ;éδσ«ñ.
- _Power2 ENDP
- _TEXT ENDS
- END
-
-