Добавил:
Upload
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Лабы СПО / 0(вводная) / met1
.txt ЊҐв®¤ЁзҐбЄЁҐ гЄ § Ёп
Є « Ў®а в®а®© а Ў®вҐ ь1 Ї® ¤ЁбжЁЇ«ЁҐ "‘Ёб⥬®Ґ ЏЋ"
"Ћв« ¤Є Їа®Ја ¬¬ б ЁбЇ®«м§®ў ЁҐ¬ Turbo Debugger"
–…‹њ ђЂЃЋ’›: Ќ гзЁвмбп ЇаЁ¬Ґпвм Їа®Ја ¬¬г Turbo Debugger
¤«п вҐбвЁа®ў Ёп Ё ®в« ¤ЄЁ Їа®Ја ¬¬, ЇЁб ле п§лЄҐ бᥬЎ«Ґа
Їа®жҐбб®а i8086.
‡Ђ„Ђ—€, ђ…Ђ…Њ›… ‚ ‹ЂЃЋђЂ’ЋђЌЋ‰ ђЂЃЋ’…
1. Ќ гзЁвмбп Є®¬ЇЁ«Ёа®ў вм Їа®Ја ¬¬л п§лЄҐ бᥬЎ«Ґа i8086.
2. Ћ§ Є®¬Ёвмбп б ЁвҐа䥩ᮬ ’гаЎ® ®в« ¤зЁЄ .
3. Ќ гзЁвмбп § Јаг¦ вм Їа®Ја ¬¬л ў ®в« ¤зЁЄ Ё ЁбЇ®«пвм Ёе ў Ї®и Ј®ў®¬
०Ё¬Ґ, Їа®б¬ ваЁў вм Ё Ё§¬Ґпвм ᮤҐа¦Ё¬®Ґ ॣЁбва®ў Їа®жҐбб®а ,
п祥Є ®ЇҐа вЁў®© Ї ¬пвЁ.
ЉЋЊЏ€‹џ–€џ ЏђЋѓђЂЊЊ ЌЂ џ‡›Љ… Ђ‘‘…ЊЃ‹…ђЂ
Љ®¬ЇЁ«пжЁп Їа®Ја ¬¬л б®бв®Ёв Ё§ ¤ўге нв Ї®ў: ᮧ¤ ЁҐ ®ЎкҐЄв®Ј® ¬®¤г«п Ё
Є®¬Ї®®ўЄ . ‚ ®в«ЁзЁҐ ®в ЁвҐЈаЁа®ў ®© баҐ¤л ’гаЎ® Џ бЄ «п, Ј¤Ґ ®Ў нв Ї
Є®¬ЇЁ«пжЁЁ Їа®Ё§ў®¤пвбп ўв®¬ вЁзҐбЄЁ, ў १г«мв ⥠祣® Ё§ PAS-¬®¤г«Ґ©
д®а¬ЁагҐвбп ба §г ЁбЇ®«Ё¬л© EXE-д ©«, Є®¬ЇЁ«пжЁп бᥬЎ«Ґале Їа®Ја ¬¬
Їа®е®¤Ёв ў ¤ў нв Ї .
1. ®ЎкҐЄвл© ¬®¤г«м б а биЁаҐЁҐ¬ OBJ ᮧ¤ Ґвбп Їа®Ја ¬¬®© Turbo Assembler.
”®а¬ ⠢맮ў :
TASM.exe <options> source <object> <list> <cross>
ў бЄ®ЎЄ е гЄ § л Ґ®Ўп§ ⥫мл Ї а ¬Ґвал.
‡¤Ґбм options - Ў®а ®ЇжЁ© ’гаЎ® ЂбᥬЎ«Ґа ; source - Ё¬п д ©« б ⥪б⮬
Їа®Ја ¬¬л (Ё«Ё Ё¬Ґ ҐбЄ®«мЄЁе д ©«®ў, а §¤Ґ«ҐлҐ Їа®ЎҐ« ¬Ё), Ї® 㬮«з Ёо
ЇаЁЁ¬ Ґвбп, зв® д ©«л-Ёбв®зЁЄЁ Ё¬Ґов а биЁаҐЁҐ ASM;
object - Ё¬п ᮧ¤ ў Ґ¬®Ј® ®ЎкҐЄв®Ј® ¬®¤г«п;
list - Ё¬п д ©« «ЁбвЁЈ ; cross - Ё¬п д ©« в Ў«Ёжл ЇҐаҐЄаҐбвле ббл«®Є.
Џ® 㬮«з Ёо Ё¬Ґ ўбҐе ўл室ле д ©«®ў б®ўЇ ¤ ов б Ё¬ҐҐ¬ д ©« -Ёбв®зЁЄ .
‘ЇЁб®Є ў®§¬®¦ле ®ЇжЁ© ¬®¦® Ї®«гзЁвм, § ЇгбвЁў TASM б Ї а ¬Ґв஬ /? Ё«Ё /H.
ЌҐЄ®в®алҐ ®ЇжЁЁ:
/L - ЈҐҐаЁа®ў вм ®взҐв ® Є®¬ЇЁ«пжЁЁ (д ©« .LST)
/N - гЄ § ЁҐ ®Ў ЁбЄ«о票Ё Ё§ ®взҐв ® Є®¬ЇЁ«пжЁЁ ᢥ¤ҐЁ© ® в Ў«ЁжҐ бЁ¬ў®«®ў.
/Zi - гЄ § ЁҐ ® ўҐбҐЁЁ ў १г«мвЁагойЁ© д ©« Ї®«ле ᢥ¤ҐЁ© ® ®¬Ґа е
бва®Є Ё Ё¬Ґ е Ёб室®Ј® ¬®¤г«п.
2. Є®¬Ї®®ўЄ ЁбЇ®«Ё¬®Ј® д ©« Ё§ ®ЎкҐЄвле ¬®¤г«Ґ© Їа®Ё§ў®¤Ёвбп
Є®¬Ї®®ўйЁЄ®¬ Turbo Link. ”®а¬ ⠢맮ў :
TLINK.exe <options> object <exec> <map> <libraries>
ў бЄ®ЎЄ е гЄ § л Ґ®Ўп§ ⥫млҐ Ї а ¬Ґвал.
‡¤Ґбм options - ®ЇжЁЁ ’гаЎ® ‹ЁЄ; object - Ё¬п (Ё¬Ґ , а §¤Ґ«ҐлҐ Їа®ЎҐ«®¬)
®ЎкҐЄвле OBJ-д ©«®ў; exec - Ё¬п ᮧ¤ ў Ґ¬®© EXE-Їа®Ја ¬¬л;
map - Ё¬п д ©« , ў Є®в®ал© Ўг¤Ґв Ї®¬ҐйҐ Є ав Є®¬Ї®®ўЄЁ;
libraries - Ё¬Ґ д ©«®ў ®ЎкҐЄвле ЎЁЎ«Ё®вҐЄ, а §¤Ґ«ҐлҐ Їа®ЎҐ« ¬Ё.
€‘ЏЋ‹њ‡Ћ‚ЂЌ€… TURBO DEBUGGER
1. ЋЎйЁҐ ᢥ¤ҐЁп. Џ®¤Ј®в®ўЄ Їа®Ја ¬¬л Є ®в« ¤ЄҐ.
’гаЎ® ®в« ¤зЁЄ (Turbo Debugger) ЇаЁ ¤«Ґ¦Ёв Є Є ⥣®аЁЁ бЁ¬ў®«мле
®в« ¤зЁЄ®ў ўлб®Є®Ј® га®ўп. Ћ пў«пҐвбп гЁўҐаб «м®© Їа®Ја ¬¬®©,
ЇаЁбЇ®б®Ў«Ґ®© ¤«п ®в« ¤ЄЁ Їа®Ја ¬¬, ЇЁб ле а §ле п§лЄ е
Їа®Ја ¬¬Ёа®ў Ёп (‘Ё, Џ бЄ «м, ЂбᥬЎ«Ґа). Ћв« ¤зЁЄ б Ў¦Ґ ЁвҐа ЄвЁўл¬
Ї®«м§®ў ⥫мбЄЁ¬ ЁвҐа䥩ᮬ ў ўЁ¤Ґ бЁбвҐ¬л ЇҐаҐЄалў ойЁебп ®Є® Ё ¬Ґо.
€¬ҐҐвбп ў®§¬®¦®бвм ®в« ¤ЄЁ Їа®Ја ¬¬ Ґ в®«мЄ® га®ўҐ Є®¬ ¤
бᥬЎ«Ґа , ® Ё б ЁбЇ®«м§®ў ЁҐ¬ Ёб室ле ⥪бв®ў п§лЄ е ўлб®Є®Ј®
га®ўп. ЏаҐ¦¤Ґ 祬 § Јаг¦ вм Їа®Ја ¬¬г ў ’гаЎ® ®в« ¤зЁЄ, Ґ®Ўе®¤Ё¬®
бЄ®¬ЇЁ«Ёа®ў вм ҐҐ Ёбе®¤л© вҐЄбв ў ЁбЇ®«пҐ¬л© д ©« вЁЇ EXE ў ०Ё¬Ґ
д®а¬Ёа®ў Ёп Ї®«®© ®в« ¤®з®© Ёд®а¬ жЁЁ, Ё¬Ґ®:
ЇаЁ Є®¬ЇЁ«пжЁЁ Їа®Ја ¬¬л TASM-®¬ ЁбЇ®«м§®ў вм ®ЇжЁо /Zi, Є®¬Ї®®ўйЁЄ TLINK
ўл§лў Ґвбп б ®ЇжЁҐ© /v. ЏаЁ § ЇгбЄҐ ®в« ¤зЁЄ TD Ґ®Ўе®¤Ё¬®, зв®Ўл Ўл«Ё
¤®бвгЇл Є Є ЁбЇ®«пҐ¬л© EXE-д ©«, в Є Ё д ©«л б Ёбе®¤л¬ вҐЄб⮬
Їа®Ја ¬¬л. ’гаЎ® ®в« ¤зЁЄ ЁйҐв Ёбе®¤лҐ д ©«л б з « в ¬, Ј¤Ґ Ёе 室Ё«
Є®¬ЇЁ«пв®а ЇаЁ Є®¬ЇЁ«пжЁЁ Їа®Ја ¬¬л, § ⥬ ў Є в «®ЈҐ, § ¤ ®¬ Є®¬ ¤®©
Options/Path for Source (Џ а ¬Ґвал/Њ аиагв ¤®бвгЇ Є Ёб室®¬г д ©«г),
§ ⥬ ў ⥪г饬 Є в «®ЈҐ, Ё ў Ї®б«Ґ¤оо ®зҐаҐ¤м ў ⮬ Є в «®ЈҐ,
Ј¤Ґ 室Ёвбп ўлЇ®«пҐ¬л© д ©« вЁЇ EXE.
2. ‚맮ў ®в« ¤зЁЄ
‚맮ў ®в« ¤зЁЄ Ё¬ҐҐв ўЁ¤
TD.exe <®ЇжЁЁ> <Ё¬п_д ©« > < аЈг¬Ґвл>,
ў бЄ®ЎЄ е гЄ § л Ґ®Ўп§ ⥫млҐ аЈг¬Ґвл.
<®ЇжЁЁ> - ¬®Јгв Ўлвм гЄ § п пў® ў Є®¬Ґ¤®© бва®ЄҐ Ё«Ё ЇаЁпвл
Ї® 㬮«з Ёо Ё§ д ©« Є®дЁЈга жЁЁ tdconfig.td (ᮧ¤ Ґвбп ЇаЁ ўлЇ®«ҐЁЁ
Є®¬ ¤л Options/Save ¬Ґо TDebugger);
<Ё¬п_д ©« > - Ё¬п § ЇгбЄ Ґ¬®© Їа®Ја ¬¬л. ЏаЁ § ЇгбЄҐ TD Ё¬п Їа®Ја ¬¬л
гЄ §лў вм Ґ ®Ўп§ ⥫м®. …с ¬®¦® § Јаг§Ёвм ҐЇ®б।б⢥® Ё§ ¬Ґо TD
Є®¬ ¤®© File/Load.
< аЈг¬Ґвл> - аЈг¬Ґвл § ЇгбЄ Ґ¬®© Їа®Ја ¬¬л.
3. ‡ ўҐа襨Ґ а Ў®вл ®в« ¤зЁЄ
‚л室 Ї® Alt+X.
4. ЋЇЁб ЁҐ ®в¤Ґ«мле н«Ґ¬Ґв®ў ЁвҐа ЄвЁў®© б।л
ЏаЁ § ЇгбЄҐ TD ЎҐ§ Ї а ¬Ґва®ў а §ў®а зЁў Ґвбп ®Є® Їа®жҐбб®а , Ё¬п Є®в®а®Ј®
®ва ¦Ґ® ў ўҐа奩 бва®ЄҐ - "CPU". ЋЄ® б®бв®Ёв Ё§ 5 а ¬®Є, ў Є®в®але
室пвбп: Є®¤ Є®¬ ¤ (Code), ¤ лҐ ўлЎа ®© ®Ў« бвЁ Ї ¬пвЁ ў бЁ¬ў®«м®¬
Ё 16-аЁз®¬ ўЁ¤Ґ (Data), ᮤҐа¦Ё¬®Ґ ॣЁбва®ў Їа®жҐбб®а (Register),
ᮤҐа¦Ё¬®Ґ б⥪ Їа®жҐбб®а (Stack), ЎЁвл ॣЁбва д« ¦Є®ў (Flags).
‡ Є, Ё¬ҐойЁ© ўЁ¤ бвЁ«Ё§®ў ®© бв५ЄЁ ўЇа ў®, гЄ §лў Ґв Є®¬ ¤г,
Є®в®а п Ўг¤Ґв ўлЇ®«Ґ б«Ґ¤го饩 (ўгваЁ а ¬ЄЁ Code).
ЋЄ® Їа®жҐбб®а ¬®¦Ґв бў®Ў®¤® ЇҐаҐ¬Ґй вмбп Ї® нЄа г, ҐЈ® а §¬Ґа -
Їа®Ё§ў®«м® ¬®¤ЁдЁжЁа®ў вмбп. ЏҐаҐ¬ҐйҐЁҐ ®Є : ¦ вм ScrollLock, § ⥬
Є« ўЁи ¬Ё б® бв५Є ¬Ё ЇҐаҐ¬ҐбвЁвм ®Є® Ё § дЁЄбЁа®ў вм ®ў®Ґ ҐЈ® Ї®«®¦ҐЁҐ,
ҐйҐ а § ¦ ў ScrollLock. €§¬ҐҐЁҐ а §¬Ґа®ў ®Є : ¦ вм ScrollLock,
§ ⥬ ЇаЁ ¦ в®© Shift Є« ўЁи ¬Ё б® бв५Є ¬Ё ЇҐаҐ¬ҐбвЁвм Їа ўл© Ё Ё¦Ё©
Єа п ®Є (ЇаЁ н⮬ «Ґўл© ўҐаеЁ© гЈ®« ®бв Ґвбп ҐЇ®¤ўЁ¦л¬).
‡ Єалвм ®Є® - F3 Ё«Ё Є®¬ ¤ Ј«®Ў «м®Ј® ¬Ґо Window/Close. ђ §ўҐагвм
®Є® ўҐбм нЄа - F5.
‚ ўҐа奩 бва®ЄҐ нЄа Ї®¬Ґй Ґвбп Ј«®Ў «м®Ґ ¬Ґо. ‚л室 ў Ј«®Ў «м®Ґ
¬Ґо Ї® F10.
‚ Є ¦¤®© Ё§ а ¬®Є ®Є CPU Ї® 饫зЄг Їа ў®© Є®ЇЄЁ ¬лиЁ а §ў®а зЁў овбп
«®Є «млҐ ¬Ґо. ЏҐаҐзЁб«Ё¬ ҐЄ®в®алҐ ЁЎ®«ҐҐ ў ¦лҐ ЇгЄвл «®Є «мле ¬Ґо.
‹®Є «м®Ґ ¬Ґо а ¬ЄЁ Code
- Assemble - § ¬Ґ ⥪г饩 Є®¬ ¤л Є®¬ ¤®©, ўўҐ¤Ґ®© б Є« ўЁ вгал.
‹®Є «м®Ґ ¬Ґо а ¬ЄЁ Data
- Goto - ўлᢥ稢 ЁҐ ¤ ле Ї® гЄ § ®¬г ¤аҐбг
- Search - Ї®ЁбЄ ¤аҐб , Ї® Є®в®а®¬г 室Ёвбп гЄ § л© ап¤ Ў ©в®ў
- Next - Ї®ЁбЄ б«Ґ¤го饣® ¤аҐб , Ї® Є®в®а®¬г 室пвбп Ў ©вл,
§ ¤ лҐ ў ®ЇжЁЁ Search
- Prevoius - в® ¦Ґ, ® ЇҐаҐе®¤ ЇаҐ¤л¤гйЁ© ©¤Ґл© ¤аҐб
- Change - Ё§¬ҐҐЁҐ § 票Ґ ўл¤Ґ«Ґ®© п祩ЄЁ Ї ¬пвЁ (§ 票Ґ ¬®¦Ґв
Ўлвм ўўҐ¤Ґ® ҐЇ®б।б⢥® Ё ЎҐ§ пў®Ј® ўлЎ®а ®ЇжЁЁ Change)
- Follow - Ї®Є § вм ¤ лҐ Ї® ¤аҐбг DS:addr, ў Є®в®а®¬ addr пў«пҐвбп
ᮤҐа¦Ё¬л¬ ўл¤Ґ«Ґ®Ј® б«®ў ®ЇҐа вЁў®© Ї ¬пвЁ.
‹®Є «м®Ґ ¬Ґо а ¬ЄЁ Register
- Increment - 㢥«ЁзҐЁҐ ᮤҐа¦Ё¬®Ј® ॣЁбва 1.
- Decrement - 㬥м襨Ґ ᮤҐа¦Ё¬®Ј® ॣЁбва 1.
- Zero - ®Ўг«ҐЁҐ ॣЁбва .
- Change - Ё§¬ҐҐЁҐ § зҐЁп ўл¤Ґ«Ґ®Ј® ॣЁбва .
‹®Є «м®Ґ ¬Ґо а ¬ЄЁ Flags
- Toggle - ЁўҐавЁа®ў вм § 票Ґ ўл¤Ґ«Ґ®Ј® д« ¦Є .
5. ‚лЇ®«ҐЁҐ Їа®Ја ¬¬ ў Ї®и Ј®ў®¬ ०Ё¬Ґ
ЊҐо RUN б®бв®Ёв Ё§ ®ЇжЁ©, Ї®§ў®«пойЁе б«Ґ¤Ёвм § Їа®Ја ¬¬®© Ё ўлЇ®«пвм
ҐҐ ¤® ®бв ®ў .
Run (F9) - ўлЇ®«ҐЁҐ Їа®Ја ¬¬л ¤® ®бв ®ў
Reset (Ctrl+F2) - ўл§лў Ґв ®ўго § Јаг§Єг Їа®Ја ¬¬л б ¤ЁбЄ
Go to cursor (F4) - ўл§лў Ґв гбв ®ўЄг ўаҐ¬Ґ®© «®ўгиЄЁ ў бва®ЄҐ,
ўл¤Ґ«Ґ®© Єгаб®а®¬ Ё з «® ўлЇ®«ҐЁп Їа®Ја ¬¬л ¤® ®бв ®ў
Trace into (F7) - ўлЇ®«ҐЁҐ ®¤®© Ў §®ў®© бва®ЄЁ ў ®ЄҐ CPU. …б«Ё бва®Є
ᮤҐа¦Ёв ўл§®ў Їа®жҐ¤гал, в® б«Ґ¦ҐЁҐ ®еў влў Ґв Ёе ᮤҐа¦Ё¬®Ґ.
Step over (F8) - в Є ¦Ґ, Є Є Trace into, ® б«Ґ¦ҐЁҐ Ґ ®еў влў Ґв ўл§®ў®ў
Їа®жҐ¤га Ё жЁЄ«ЁзҐбЄЁе Є®¬ ¤.
ЏЋђџ„ЋЉ ‚›ЏЋ‹Ќ…Ќ€џ ђЂЃЋ’›.
1. €§гзЁвм ¬Ґв®¤ЁзҐбЄЁҐ гЄ § Ёп.
2. ‘Є®¬ЇЁ«Ёа®ў вм lab1.asm ў ЁбЇ®«Ё¬л© EXE-¬®¤г«м, ЁбЇ®«м§гп ®ЇжЁо /L
Їа®Ја ¬¬л TASM.
3. ‚лЇ®«Ёвм EXE-Їа®Ја ¬¬г ў Ї®и Ј®ў®¬ ०Ё¬Ґ Ї®¤ гЇа ў«ҐЁҐ¬
Turbo Debugger (ў ®ЄҐ CPU). ‡ дЁЄбЁа®ў вм Ё§¬ҐҐЁп § 票© ॣЁбва®ў
Їа®жҐбб®а , д« Ј®ў Ё ᮤҐа¦Ё¬®Ј® п祥Є ®ЇҐа вЁў®© Ї ¬пвЁ,
Їа®Ёб室пйЁҐ ЇаЁ ўлЇ®«ҐЁЁ Є ¦¤®© ¬ иЁ®© Є®¬ ¤л.
4. ‚лЇ®«Ёвм Їа®Ја ¬¬г ў Ї®и Ј®ў®¬ ०Ё¬Ґ, «®ЈЁз® Ї.3, ЇаҐ¤ў аЁвҐ«м®
Ё§¬ҐЁў § зҐЁп ЇҐаҐ¬Ґле A, B, C.
5. ‘Є®¬ЇЁ«Ёа®ў вм lab1.asm ў ЁбЇ®«Ё¬л© EXE-¬®¤г«м, ЁбЇ®«м§гп ®ЇжЁо /zi
Їа®Ја ¬¬л TASM Ё ®ЇжЁо /v Їа®Ја ¬¬л TLINK.
6. ‚лЇ®«Ёвм Їа®Ја ¬¬г ў Ї®и Ј®ў®¬ ०Ё¬Ґ Ї®¤ гЇа ў«ҐЁҐ¬ Turbo Debugger
(ў ®ЄҐ module).
7. Ћд®а¬Ёвм ®взҐв ® ўлЇ®«Ґ®© а Ў®вҐ.
‘Ћ„…ђ†ЂЌ€… Ћ’—…’Ђ
1. –Ґ«м а Ў®вл. ‡ ¤ зЁ, аҐи Ґ¬лҐ ў а Ў®вҐ.
2. ’ҐЄбв вҐбвЁа㥬®© Їа®Ја ¬¬л п§лЄҐ бᥬЎ«Ґа .
3. Љ®¬ ¤л бᥬЎ«Ґа ў Ї®ап¤ЄҐ Ёе ўлЇ®«ҐЁп Turbo Debugger-®¬
б ®ЇЁб ЁҐ¬ ¤«п Є ¦¤®© Є®¬ ¤л ᮤҐа¦Ё¬®Ј®: ॣЁбва®ў AX,BX,DX,DS,SS,
д« Ј®ў Ё п祥Є Ї ¬пвЁ, ®вўҐ¤Ґле Ї®¤ ЇҐаҐ¬ҐлҐ varA,varB,varC,varD.
Є « Ў®а в®а®© а Ў®вҐ ь1 Ї® ¤ЁбжЁЇ«ЁҐ "‘Ёб⥬®Ґ ЏЋ"
"Ћв« ¤Є Їа®Ја ¬¬ б ЁбЇ®«м§®ў ЁҐ¬ Turbo Debugger"
–…‹њ ђЂЃЋ’›: Ќ гзЁвмбп ЇаЁ¬Ґпвм Їа®Ја ¬¬г Turbo Debugger
¤«п вҐбвЁа®ў Ёп Ё ®в« ¤ЄЁ Їа®Ја ¬¬, ЇЁб ле п§лЄҐ бᥬЎ«Ґа
Їа®жҐбб®а i8086.
‡Ђ„Ђ—€, ђ…Ђ…Њ›… ‚ ‹ЂЃЋђЂ’ЋђЌЋ‰ ђЂЃЋ’…
1. Ќ гзЁвмбп Є®¬ЇЁ«Ёа®ў вм Їа®Ја ¬¬л п§лЄҐ бᥬЎ«Ґа i8086.
2. Ћ§ Є®¬Ёвмбп б ЁвҐа䥩ᮬ ’гаЎ® ®в« ¤зЁЄ .
3. Ќ гзЁвмбп § Јаг¦ вм Їа®Ја ¬¬л ў ®в« ¤зЁЄ Ё ЁбЇ®«пвм Ёе ў Ї®и Ј®ў®¬
०Ё¬Ґ, Їа®б¬ ваЁў вм Ё Ё§¬Ґпвм ᮤҐа¦Ё¬®Ґ ॣЁбва®ў Їа®жҐбб®а ,
п祥Є ®ЇҐа вЁў®© Ї ¬пвЁ.
ЉЋЊЏ€‹џ–€џ ЏђЋѓђЂЊЊ ЌЂ џ‡›Љ… Ђ‘‘…ЊЃ‹…ђЂ
Љ®¬ЇЁ«пжЁп Їа®Ја ¬¬л б®бв®Ёв Ё§ ¤ўге нв Ї®ў: ᮧ¤ ЁҐ ®ЎкҐЄв®Ј® ¬®¤г«п Ё
Є®¬Ї®®ўЄ . ‚ ®в«ЁзЁҐ ®в ЁвҐЈаЁа®ў ®© баҐ¤л ’гаЎ® Џ бЄ «п, Ј¤Ґ ®Ў нв Ї
Є®¬ЇЁ«пжЁЁ Їа®Ё§ў®¤пвбп ўв®¬ вЁзҐбЄЁ, ў १г«мв ⥠祣® Ё§ PAS-¬®¤г«Ґ©
д®а¬ЁагҐвбп ба §г ЁбЇ®«Ё¬л© EXE-д ©«, Є®¬ЇЁ«пжЁп бᥬЎ«Ґале Їа®Ја ¬¬
Їа®е®¤Ёв ў ¤ў нв Ї .
1. ®ЎкҐЄвл© ¬®¤г«м б а биЁаҐЁҐ¬ OBJ ᮧ¤ Ґвбп Їа®Ја ¬¬®© Turbo Assembler.
”®а¬ ⠢맮ў :
TASM.exe <options> source <object> <list> <cross>
ў бЄ®ЎЄ е гЄ § л Ґ®Ўп§ ⥫мл Ї а ¬Ґвал.
‡¤Ґбм options - Ў®а ®ЇжЁ© ’гаЎ® ЂбᥬЎ«Ґа ; source - Ё¬п д ©« б ⥪б⮬
Їа®Ја ¬¬л (Ё«Ё Ё¬Ґ ҐбЄ®«мЄЁе д ©«®ў, а §¤Ґ«ҐлҐ Їа®ЎҐ« ¬Ё), Ї® 㬮«з Ёо
ЇаЁЁ¬ Ґвбп, зв® д ©«л-Ёбв®зЁЄЁ Ё¬Ґов а биЁаҐЁҐ ASM;
object - Ё¬п ᮧ¤ ў Ґ¬®Ј® ®ЎкҐЄв®Ј® ¬®¤г«п;
list - Ё¬п д ©« «ЁбвЁЈ ; cross - Ё¬п д ©« в Ў«Ёжл ЇҐаҐЄаҐбвле ббл«®Є.
Џ® 㬮«з Ёо Ё¬Ґ ўбҐе ўл室ле д ©«®ў б®ўЇ ¤ ов б Ё¬ҐҐ¬ д ©« -Ёбв®зЁЄ .
‘ЇЁб®Є ў®§¬®¦ле ®ЇжЁ© ¬®¦® Ї®«гзЁвм, § ЇгбвЁў TASM б Ї а ¬Ґв஬ /? Ё«Ё /H.
ЌҐЄ®в®алҐ ®ЇжЁЁ:
/L - ЈҐҐаЁа®ў вм ®взҐв ® Є®¬ЇЁ«пжЁЁ (д ©« .LST)
/N - гЄ § ЁҐ ®Ў ЁбЄ«о票Ё Ё§ ®взҐв ® Є®¬ЇЁ«пжЁЁ ᢥ¤ҐЁ© ® в Ў«ЁжҐ бЁ¬ў®«®ў.
/Zi - гЄ § ЁҐ ® ўҐбҐЁЁ ў १г«мвЁагойЁ© д ©« Ї®«ле ᢥ¤ҐЁ© ® ®¬Ґа е
бва®Є Ё Ё¬Ґ е Ёб室®Ј® ¬®¤г«п.
2. Є®¬Ї®®ўЄ ЁбЇ®«Ё¬®Ј® д ©« Ё§ ®ЎкҐЄвле ¬®¤г«Ґ© Їа®Ё§ў®¤Ёвбп
Є®¬Ї®®ўйЁЄ®¬ Turbo Link. ”®а¬ ⠢맮ў :
TLINK.exe <options> object <exec> <map> <libraries>
ў бЄ®ЎЄ е гЄ § л Ґ®Ўп§ ⥫млҐ Ї а ¬Ґвал.
‡¤Ґбм options - ®ЇжЁЁ ’гаЎ® ‹ЁЄ; object - Ё¬п (Ё¬Ґ , а §¤Ґ«ҐлҐ Їа®ЎҐ«®¬)
®ЎкҐЄвле OBJ-д ©«®ў; exec - Ё¬п ᮧ¤ ў Ґ¬®© EXE-Їа®Ја ¬¬л;
map - Ё¬п д ©« , ў Є®в®ал© Ўг¤Ґв Ї®¬ҐйҐ Є ав Є®¬Ї®®ўЄЁ;
libraries - Ё¬Ґ д ©«®ў ®ЎкҐЄвле ЎЁЎ«Ё®вҐЄ, а §¤Ґ«ҐлҐ Їа®ЎҐ« ¬Ё.
€‘ЏЋ‹њ‡Ћ‚ЂЌ€… TURBO DEBUGGER
1. ЋЎйЁҐ ᢥ¤ҐЁп. Џ®¤Ј®в®ўЄ Їа®Ја ¬¬л Є ®в« ¤ЄҐ.
’гаЎ® ®в« ¤зЁЄ (Turbo Debugger) ЇаЁ ¤«Ґ¦Ёв Є Є ⥣®аЁЁ бЁ¬ў®«мле
®в« ¤зЁЄ®ў ўлб®Є®Ј® га®ўп. Ћ пў«пҐвбп гЁўҐаб «м®© Їа®Ја ¬¬®©,
ЇаЁбЇ®б®Ў«Ґ®© ¤«п ®в« ¤ЄЁ Їа®Ја ¬¬, ЇЁб ле а §ле п§лЄ е
Їа®Ја ¬¬Ёа®ў Ёп (‘Ё, Џ бЄ «м, ЂбᥬЎ«Ґа). Ћв« ¤зЁЄ б Ў¦Ґ ЁвҐа ЄвЁўл¬
Ї®«м§®ў ⥫мбЄЁ¬ ЁвҐа䥩ᮬ ў ўЁ¤Ґ бЁбвҐ¬л ЇҐаҐЄалў ойЁебп ®Є® Ё ¬Ґо.
€¬ҐҐвбп ў®§¬®¦®бвм ®в« ¤ЄЁ Їа®Ја ¬¬ Ґ в®«мЄ® га®ўҐ Є®¬ ¤
бᥬЎ«Ґа , ® Ё б ЁбЇ®«м§®ў ЁҐ¬ Ёб室ле ⥪бв®ў п§лЄ е ўлб®Є®Ј®
га®ўп. ЏаҐ¦¤Ґ 祬 § Јаг¦ вм Їа®Ја ¬¬г ў ’гаЎ® ®в« ¤зЁЄ, Ґ®Ўе®¤Ё¬®
бЄ®¬ЇЁ«Ёа®ў вм ҐҐ Ёбе®¤л© вҐЄбв ў ЁбЇ®«пҐ¬л© д ©« вЁЇ EXE ў ०Ё¬Ґ
д®а¬Ёа®ў Ёп Ї®«®© ®в« ¤®з®© Ёд®а¬ жЁЁ, Ё¬Ґ®:
ЇаЁ Є®¬ЇЁ«пжЁЁ Їа®Ја ¬¬л TASM-®¬ ЁбЇ®«м§®ў вм ®ЇжЁо /Zi, Є®¬Ї®®ўйЁЄ TLINK
ўл§лў Ґвбп б ®ЇжЁҐ© /v. ЏаЁ § ЇгбЄҐ ®в« ¤зЁЄ TD Ґ®Ўе®¤Ё¬®, зв®Ўл Ўл«Ё
¤®бвгЇл Є Є ЁбЇ®«пҐ¬л© EXE-д ©«, в Є Ё д ©«л б Ёбе®¤л¬ вҐЄб⮬
Їа®Ја ¬¬л. ’гаЎ® ®в« ¤зЁЄ ЁйҐв Ёбе®¤лҐ д ©«л б з « в ¬, Ј¤Ґ Ёе 室Ё«
Є®¬ЇЁ«пв®а ЇаЁ Є®¬ЇЁ«пжЁЁ Їа®Ја ¬¬л, § ⥬ ў Є в «®ЈҐ, § ¤ ®¬ Є®¬ ¤®©
Options/Path for Source (Џ а ¬Ґвал/Њ аиагв ¤®бвгЇ Є Ёб室®¬г д ©«г),
§ ⥬ ў ⥪г饬 Є в «®ЈҐ, Ё ў Ї®б«Ґ¤оо ®зҐаҐ¤м ў ⮬ Є в «®ЈҐ,
Ј¤Ґ 室Ёвбп ўлЇ®«пҐ¬л© д ©« вЁЇ EXE.
2. ‚맮ў ®в« ¤зЁЄ
‚맮ў ®в« ¤зЁЄ Ё¬ҐҐв ўЁ¤
TD.exe <®ЇжЁЁ> <Ё¬п_д ©« > < аЈг¬Ґвл>,
ў бЄ®ЎЄ е гЄ § л Ґ®Ўп§ ⥫млҐ аЈг¬Ґвл.
<®ЇжЁЁ> - ¬®Јгв Ўлвм гЄ § п пў® ў Є®¬Ґ¤®© бва®ЄҐ Ё«Ё ЇаЁпвл
Ї® 㬮«з Ёо Ё§ д ©« Є®дЁЈга жЁЁ tdconfig.td (ᮧ¤ Ґвбп ЇаЁ ўлЇ®«ҐЁЁ
Є®¬ ¤л Options/Save ¬Ґо TDebugger);
<Ё¬п_д ©« > - Ё¬п § ЇгбЄ Ґ¬®© Їа®Ја ¬¬л. ЏаЁ § ЇгбЄҐ TD Ё¬п Їа®Ја ¬¬л
гЄ §лў вм Ґ ®Ўп§ ⥫м®. …с ¬®¦® § Јаг§Ёвм ҐЇ®б।б⢥® Ё§ ¬Ґо TD
Є®¬ ¤®© File/Load.
< аЈг¬Ґвл> - аЈг¬Ґвл § ЇгбЄ Ґ¬®© Їа®Ја ¬¬л.
3. ‡ ўҐа襨Ґ а Ў®вл ®в« ¤зЁЄ
‚л室 Ї® Alt+X.
4. ЋЇЁб ЁҐ ®в¤Ґ«мле н«Ґ¬Ґв®ў ЁвҐа ЄвЁў®© б।л
ЏаЁ § ЇгбЄҐ TD ЎҐ§ Ї а ¬Ґва®ў а §ў®а зЁў Ґвбп ®Є® Їа®жҐбб®а , Ё¬п Є®в®а®Ј®
®ва ¦Ґ® ў ўҐа奩 бва®ЄҐ - "CPU". ЋЄ® б®бв®Ёв Ё§ 5 а ¬®Є, ў Є®в®але
室пвбп: Є®¤ Є®¬ ¤ (Code), ¤ лҐ ўлЎа ®© ®Ў« бвЁ Ї ¬пвЁ ў бЁ¬ў®«м®¬
Ё 16-аЁз®¬ ўЁ¤Ґ (Data), ᮤҐа¦Ё¬®Ґ ॣЁбва®ў Їа®жҐбб®а (Register),
ᮤҐа¦Ё¬®Ґ б⥪ Їа®жҐбб®а (Stack), ЎЁвл ॣЁбва д« ¦Є®ў (Flags).
‡ Є, Ё¬ҐойЁ© ўЁ¤ бвЁ«Ё§®ў ®© бв५ЄЁ ўЇа ў®, гЄ §лў Ґв Є®¬ ¤г,
Є®в®а п Ўг¤Ґв ўлЇ®«Ґ б«Ґ¤го饩 (ўгваЁ а ¬ЄЁ Code).
ЋЄ® Їа®жҐбб®а ¬®¦Ґв бў®Ў®¤® ЇҐаҐ¬Ґй вмбп Ї® нЄа г, ҐЈ® а §¬Ґа -
Їа®Ё§ў®«м® ¬®¤ЁдЁжЁа®ў вмбп. ЏҐаҐ¬ҐйҐЁҐ ®Є : ¦ вм ScrollLock, § ⥬
Є« ўЁи ¬Ё б® бв५Є ¬Ё ЇҐаҐ¬ҐбвЁвм ®Є® Ё § дЁЄбЁа®ў вм ®ў®Ґ ҐЈ® Ї®«®¦ҐЁҐ,
ҐйҐ а § ¦ ў ScrollLock. €§¬ҐҐЁҐ а §¬Ґа®ў ®Є : ¦ вм ScrollLock,
§ ⥬ ЇаЁ ¦ в®© Shift Є« ўЁи ¬Ё б® бв५Є ¬Ё ЇҐаҐ¬ҐбвЁвм Їа ўл© Ё Ё¦Ё©
Єа п ®Є (ЇаЁ н⮬ «Ґўл© ўҐаеЁ© гЈ®« ®бв Ґвбп ҐЇ®¤ўЁ¦л¬).
‡ Єалвм ®Є® - F3 Ё«Ё Є®¬ ¤ Ј«®Ў «м®Ј® ¬Ґо Window/Close. ђ §ўҐагвм
®Є® ўҐбм нЄа - F5.
‚ ўҐа奩 бва®ЄҐ нЄа Ї®¬Ґй Ґвбп Ј«®Ў «м®Ґ ¬Ґо. ‚л室 ў Ј«®Ў «м®Ґ
¬Ґо Ї® F10.
‚ Є ¦¤®© Ё§ а ¬®Є ®Є CPU Ї® 饫зЄг Їа ў®© Є®ЇЄЁ ¬лиЁ а §ў®а зЁў овбп
«®Є «млҐ ¬Ґо. ЏҐаҐзЁб«Ё¬ ҐЄ®в®алҐ ЁЎ®«ҐҐ ў ¦лҐ ЇгЄвл «®Є «мле ¬Ґо.
‹®Є «м®Ґ ¬Ґо а ¬ЄЁ Code
- Assemble - § ¬Ґ ⥪г饩 Є®¬ ¤л Є®¬ ¤®©, ўўҐ¤Ґ®© б Є« ўЁ вгал.
‹®Є «м®Ґ ¬Ґо а ¬ЄЁ Data
- Goto - ўлᢥ稢 ЁҐ ¤ ле Ї® гЄ § ®¬г ¤аҐбг
- Search - Ї®ЁбЄ ¤аҐб , Ї® Є®в®а®¬г 室Ёвбп гЄ § л© ап¤ Ў ©в®ў
- Next - Ї®ЁбЄ б«Ґ¤го饣® ¤аҐб , Ї® Є®в®а®¬г 室пвбп Ў ©вл,
§ ¤ лҐ ў ®ЇжЁЁ Search
- Prevoius - в® ¦Ґ, ® ЇҐаҐе®¤ ЇаҐ¤л¤гйЁ© ©¤Ґл© ¤аҐб
- Change - Ё§¬ҐҐЁҐ § 票Ґ ўл¤Ґ«Ґ®© п祩ЄЁ Ї ¬пвЁ (§ 票Ґ ¬®¦Ґв
Ўлвм ўўҐ¤Ґ® ҐЇ®б।б⢥® Ё ЎҐ§ пў®Ј® ўлЎ®а ®ЇжЁЁ Change)
- Follow - Ї®Є § вм ¤ лҐ Ї® ¤аҐбг DS:addr, ў Є®в®а®¬ addr пў«пҐвбп
ᮤҐа¦Ё¬л¬ ўл¤Ґ«Ґ®Ј® б«®ў ®ЇҐа вЁў®© Ї ¬пвЁ.
‹®Є «м®Ґ ¬Ґо а ¬ЄЁ Register
- Increment - 㢥«ЁзҐЁҐ ᮤҐа¦Ё¬®Ј® ॣЁбва 1.
- Decrement - 㬥м襨Ґ ᮤҐа¦Ё¬®Ј® ॣЁбва 1.
- Zero - ®Ўг«ҐЁҐ ॣЁбва .
- Change - Ё§¬ҐҐЁҐ § зҐЁп ўл¤Ґ«Ґ®Ј® ॣЁбва .
‹®Є «м®Ґ ¬Ґо а ¬ЄЁ Flags
- Toggle - ЁўҐавЁа®ў вм § 票Ґ ўл¤Ґ«Ґ®Ј® д« ¦Є .
5. ‚лЇ®«ҐЁҐ Їа®Ја ¬¬ ў Ї®и Ј®ў®¬ ०Ё¬Ґ
ЊҐо RUN б®бв®Ёв Ё§ ®ЇжЁ©, Ї®§ў®«пойЁе б«Ґ¤Ёвм § Їа®Ја ¬¬®© Ё ўлЇ®«пвм
ҐҐ ¤® ®бв ®ў .
Run (F9) - ўлЇ®«ҐЁҐ Їа®Ја ¬¬л ¤® ®бв ®ў
Reset (Ctrl+F2) - ўл§лў Ґв ®ўго § Јаг§Єг Їа®Ја ¬¬л б ¤ЁбЄ
Go to cursor (F4) - ўл§лў Ґв гбв ®ўЄг ўаҐ¬Ґ®© «®ўгиЄЁ ў бва®ЄҐ,
ўл¤Ґ«Ґ®© Єгаб®а®¬ Ё з «® ўлЇ®«ҐЁп Їа®Ја ¬¬л ¤® ®бв ®ў
Trace into (F7) - ўлЇ®«ҐЁҐ ®¤®© Ў §®ў®© бва®ЄЁ ў ®ЄҐ CPU. …б«Ё бва®Є
ᮤҐа¦Ёв ўл§®ў Їа®жҐ¤гал, в® б«Ґ¦ҐЁҐ ®еў влў Ґв Ёе ᮤҐа¦Ё¬®Ґ.
Step over (F8) - в Є ¦Ґ, Є Є Trace into, ® б«Ґ¦ҐЁҐ Ґ ®еў влў Ґв ўл§®ў®ў
Їа®жҐ¤га Ё жЁЄ«ЁзҐбЄЁе Є®¬ ¤.
ЏЋђџ„ЋЉ ‚›ЏЋ‹Ќ…Ќ€џ ђЂЃЋ’›.
1. €§гзЁвм ¬Ґв®¤ЁзҐбЄЁҐ гЄ § Ёп.
2. ‘Є®¬ЇЁ«Ёа®ў вм lab1.asm ў ЁбЇ®«Ё¬л© EXE-¬®¤г«м, ЁбЇ®«м§гп ®ЇжЁо /L
Їа®Ја ¬¬л TASM.
3. ‚лЇ®«Ёвм EXE-Їа®Ја ¬¬г ў Ї®и Ј®ў®¬ ०Ё¬Ґ Ї®¤ гЇа ў«ҐЁҐ¬
Turbo Debugger (ў ®ЄҐ CPU). ‡ дЁЄбЁа®ў вм Ё§¬ҐҐЁп § 票© ॣЁбва®ў
Їа®жҐбб®а , д« Ј®ў Ё ᮤҐа¦Ё¬®Ј® п祥Є ®ЇҐа вЁў®© Ї ¬пвЁ,
Їа®Ёб室пйЁҐ ЇаЁ ўлЇ®«ҐЁЁ Є ¦¤®© ¬ иЁ®© Є®¬ ¤л.
4. ‚лЇ®«Ёвм Їа®Ја ¬¬г ў Ї®и Ј®ў®¬ ०Ё¬Ґ, «®ЈЁз® Ї.3, ЇаҐ¤ў аЁвҐ«м®
Ё§¬ҐЁў § зҐЁп ЇҐаҐ¬Ґле A, B, C.
5. ‘Є®¬ЇЁ«Ёа®ў вм lab1.asm ў ЁбЇ®«Ё¬л© EXE-¬®¤г«м, ЁбЇ®«м§гп ®ЇжЁо /zi
Їа®Ја ¬¬л TASM Ё ®ЇжЁо /v Їа®Ја ¬¬л TLINK.
6. ‚лЇ®«Ёвм Їа®Ја ¬¬г ў Ї®и Ј®ў®¬ ०Ё¬Ґ Ї®¤ гЇа ў«ҐЁҐ¬ Turbo Debugger
(ў ®ЄҐ module).
7. Ћд®а¬Ёвм ®взҐв ® ўлЇ®«Ґ®© а Ў®вҐ.
‘Ћ„…ђ†ЂЌ€… Ћ’—…’Ђ
1. –Ґ«м а Ў®вл. ‡ ¤ зЁ, аҐи Ґ¬лҐ ў а Ў®вҐ.
2. ’ҐЄбв вҐбвЁа㥬®© Їа®Ја ¬¬л п§лЄҐ бᥬЎ«Ґа .
3. Љ®¬ ¤л бᥬЎ«Ґа ў Ї®ап¤ЄҐ Ёе ўлЇ®«ҐЁп Turbo Debugger-®¬
б ®ЇЁб ЁҐ¬ ¤«п Є ¦¤®© Є®¬ ¤л ᮤҐа¦Ё¬®Ј®: ॣЁбва®ў AX,BX,DX,DS,SS,
д« Ј®ў Ё п祥Є Ї ¬пвЁ, ®вўҐ¤Ґле Ї®¤ ЇҐаҐ¬ҐлҐ varA,varB,varC,varD.