Co je ladění? Nápověda k příkazu debug a jeho parametrům. Důležitý krok při odhalování chyb

Ahoj! Zajímalo by mě, proč se pravopis slova motochas (hodina motoru) změnil na pomlčku: motohodina? Jak to vysvětlit studentům?

Hláskovat slovo hodina motocyklu shrnulo pravidlo: složité měrné jednotky, bez ohledu na to, zda jsou tvořeny pomocí spojovacích samohlásek nebo bez nich, se píší se spojovníkem (srov.: člověk-den, tunokilometr, kilowatthodina). Toto pravidlo obecně je výjimkou z pravidla o složených podstatných jménech, která, když mají spojovací samohlásku, se píší společně. V nácviku psaní slov hodina motocyklu, se zřejmě častěji používal v souvislém psaní, čemuž odpovídalo obecné pravidlo. Možná lingvisté, opravující slovo pravopisný slovník poprvé (stalo se to v roce 1974) jsme viděli, že zápis takových jednotek měření se pravidlu dobře neřídí. Pokud byla v roce 1956 zaznamenána jedna výjimka pracovní den, v roce 1967 dodává D. E. Rosenthal pracovní doba, později je to opraveno v pravidlech tunu svinstva. Kvůli nestabilitě této oblasti psaní, nárůstu počtu výjimek odpovídajících obecnému pravidlu, lingvisté na začátku 21. Navrhli opustit pravidlo výjimky a psát měrné jednotky společně. Projekt obsahující tento návrh byl však společností kategoricky odmítnut, nebyl přijat na státní úrovni a lingvisté museli slovo rekodifikovat a podřídit jej pravidlu výjimky.

Dotaz č. 294276

Ahoj! Jak správně odmítnout frázi „kartonová krabice“ pomocí čísel? Dvě kartonové krabice nebo dvě kartonové krabice? Tři kartony nebo tři kartony? Čtyři kartonové krabice nebo čtyři kartonové krabice?

Odpovědět podpora ruský jazyk

U podstatných jmen ženského rodu v závislosti na číslovkách dva tři čtyři, definice umístěná mezi číslovkou a podstatným jménem je často v nominativu množného čísla: dvě (tři, čtyři) kartonové krabice. Ale také možnost dvě (tři, čtyři) kartonové krabice Je to možné, není to chyba.

Dotaz č. 286473

Dobré odpoledne Prosím, pomozte mi napsat správně velmi důležitou větu. „V současné době v tak rozsáhlých procesech, jako je krakování a hydrokrakování... a další, používají...“ Je velmi důležité zdůraznit frázi „jak“, bude to správné?

Odpověď na help desk v ruštině

Pokud kombinace a další označuje jiné typy velkotonážních procesů, pak je to správně: V současné době v tak rozsáhlých procesech, jako je krakování a hydrokrakování... a další, používají...

Dotaz č. 285761

Rozsah: 0,5-1 tuna nebo 0,5-1 tuna? Proč?

Odpověď na help desk v ruštině

Takové návrhy nejsou regulovány pravidly. Z obtížné gramatické situace se můžete dostat takto: rozmezí 0,5 – 1 t nebo rozmezí od 0,5 do 1 tuny.

Dotaz č. 274025
Dobrý den, milá pomocná služba v ruštině!
O zkratkách jednotek času.
Autor dotazu č. 209637 odkázal na Vaši odpověď na dotaz č. 208758, že zkrácené jednotky měření se píší bez teček, a upozornil na rozpor s tím, že navrhujete psát zkrácené jednotky času s tečkami. (Opakovaně jste odkazovali na pravopisný slovník.)
Odpověděl jsi mu (cituji):
"Není v tom žádný rozpor. Zkrácené jednotky měření jsou například kg (kilogram), c (centner), tf (ton-force), sb (stilb), m (metr). Minuta a sekunda do jednotky měření, jsou to jednotky času“.
Promiňte, ale co znamenají „časové jednotky“? Čas jako takový nemá jednotky, stejně jako délka, síla, tlak a jakékoli fyzikální veličiny obecně.
„Časová jednotka“ je zkrácený přísný výraz pro „časovou jednotku“ (žargon). Stejně tak termín "jednotka délky" je zkrácen na "jednotka délky" stejným způsobem jako všechny ostatní měrné jednotky.
Stále tedy existuje rozpor. Jako fyzik a redaktor nevidím smysl v oddělování časových jednotek do zvláštní kategorie a na body za zkratkami „s“, „min“, „hodina“ a tak dále.
S pozdravem,
Petr

Odpověď na help desk v ruštině

Za zkrácenými názvy fyzikálních veličin se tečky neumisťují. Tečky jsou umístěny za zkrácenými názvy jednotek času (ačkoli čas je také Fyzické množství). Tradice:) Ostatní jednotky času - roky, století - jsou formalizovány stejným způsobem (s tečkami).

Dotaz č. 265334
Ahoj. Proč byste měli napsat 10 kusů a ne 10 kusů?
Ostatně zkrácené názvy měrných jednotek se píší bez
body, například: kg (kilogram), c (center), tf (ton-force).
Odstavec 209, Pravidla ruského pravopisu a interpunkce. Plný
Akademická referenční kniha / Ed. V.V. -
M: Eksmo, 2007.

Odpověď na help desk v ruštině

Dotaz č. 261767
Znovu se pokouším položit otázku a opravdu doufám v odpověď. "Chcete rozmanitost(,) nebo je pro Vás vhodnější monotónní činnost?" Je nutná čárka před "nebo" mezi jednoduché věty jako součást složitého výslechu? Moc se těším na vaši odpověď!

Odpověď na help desk v ruštině

Čárka se nepoužívá, protože části souvětí jsou spojeny tázací intonací.

Dotaz č. 246622
Jak správně zkrátit slovo ton v textu - t nebo tn.? Děkuji předem

Odpověď na help desk v ruštině

Správné t (bez tečky).

Dotaz č. 242450
Jsou čárky umístěny správně: To je nezbytné pro zpracování především velkotonážních kontejnerů.

Odpověď na help desk v ruštině

Čárky jsou potřeba.

Dotaz č. 242362
Vysvětlete prosím sémantický rozdíl mezi slovy „tunel“ a „tunel“. V jakém případě je správné použít první a kdy druhé? Proč se stalo, že význam slov je stejný, ale pravopis je jiný?

Odpověď na help desk v ruštině

Tunel A tunel - stejné možnosti pravopisu (tj. nejsou různá slova, A různé varianty psaní jednoho slova). Kteroukoli z těchto možností lze použít v jakémkoli kontextu.

Přítomnost pravopisných variací je spojena s historií slova: k nám to přišlo v angličtině, ve kterém se slovem tunel označoval průchod pod Temží, který postavil francouzský inženýr Brunel. Anglický tunel, který doslova znamenal „komínová roura“, se zase vrací k francouzské tonelle – zdrobnělinu. z tuny „barel“ (odtud, mimochodem, slovo tón). V 16. století se slovo tonnelle objevuje již ve francouzských textech s významem „potrubí“ (zejména „podzemní potrubí“), zřejmě vzniklým z významu „sud (ležící na boku) bez dna“.

V ruštině slovo tunel (tunel) je znám od poloviny 19. století, přičemž ve slovnících jsou již zaznamenány různé pravopisy.

Je to správně napsáno: keramzit beton

Odpověď na help desk v ruštině

Ano, napsal jsi to správně.
Dotaz č. 235115
Jak zkrátit slovo =milión=, s tečkou nebo bez? A slovo =ton = / =ton=?

Odpověď na help desk v ruštině

Regulační zkratky: _million, t_ (bez teček).
Dotaz č. 229641
Je nutné při zkracování následujících slov dát tečku: tuna, milion, miliarda, bilion, minuta, sekunda, hodina. A v jakém slovníku lze takovou informaci najít?

Odpověď na help desk v ruštině

Zkratky pro slova _tuna, milion, miliarda, bilion_ se píší bez teček, zkratky pro slova _minuta, vteřina, hodina_ - s tečkami. Viz "Ruský pravopisný slovník" Ruské akademie věd.
Dotaz č. 227681
Řekněte mi prosím, jaká je správná zkratka pro slovo tuna (tuny) v ruštině? Děkuji!

Odpověď na help desk v ruštině

Správně: _t_ (bez tečky).

Za zkratkou je obvykle tečka. Slova se obvykle zkracují za souhláskou, například: G.(rok, město), T.(hlasitost), R.(řeka), GR.(občan), R. A třít.(rubl), jim.(název), prof.(profesor), zkratky se však vyskytují i ​​za samohláskou - prvním písmenem slova, například: A. l.(autorský list), Ó.(jezero, ostrov, otec).

Poznámka. Používejte zkratky třít. A policajt. na oplátku R. A Na. přípustné pouze v publikacích pro nepřipravené čtenáře. V každém případě by v rámci jedné publikace měla být použita pouze jedna forma zkratky – buď jednopísmenná, nebo třípísmenná.

Milion, miliarda, tisíc Doporučuje se použít místo nul in kulatá čísla; např: 45 milionů kopií; 10 miliard rublů; 10 tisíc výtisků. Tyto zkratky jsou méně žádoucí před názvy a označením fyzikálních jednotek. hodnoty v publikacích pro běžného čtenáře. Doporučeno např.: 10 tisíc metrů nebo 10 tisíc metrů(v publikacích pro běžného čtenáře) a 10 tisíc m(v publikacích pro odborníky). Všechny tyto zkratky jsou nepřijatelné před čísly (v inverzi) a v případech, kdy jsou zkratky odděleny od čísel slovy. Např:

V grafických zkratkách jsou zachovány zdvojené souhlásky kořene před tečkou, např.: Osel.(asistent), Panenka.(dolar), nemocný.(ilustrace), Ott.(otisk), adm. – ter.(administrativně-územní). Pokud je dvojitá souhláska na rozhraní kořene a přípony, pak se ve zkratce zachová pouze první souhláska, například: rus.(Ruština), stěny(stěna); Ale: ruština(Ruština).

Zkrácené názvy měst, např.: Moskevského času(Moskva), nsk(Novosibirsk).

Změna tvar množného čísla je součástí jednopísmenných grafických zkratek: jsou zdvojené, aby čtenář neměl potíže se čtením. Např: v letech 1976-1980(čtenář nemusí přemýšlet o slovech v množném nebo jednotném čísle rok zde použito - hned je jasné, že je množné), XIX - XX století; str. 1, 5 a 6.

Za zdvojenými písmeny (obvykle označujícími množná čísla) je tečka umístěna pouze jednou, například: století(století), gg.(let, pánové), ll.(povlečení na postel), ss.(stránky), sv.(svazky).

Zkrácené názvy měrných jednotek podle GOST jsou psány bez teček, například: kg(kilogram), ts(uprostřed), ts(tunová síla), T(tón), gs(gram-síla), So(stilb), Mks(maxwell); mm(milimetr), cm(centimetr), m(Metr), km(kilometr), ha(hektar), A(ar); S(sekundy), min(minut), h(hodiny). Píšou se i zkratky milión(milion) a miliarda(miliarda). V Ruském pravopisném slovníku Ruské akademie věd je však pravopis některých z těchto zkratek fixován tečkami, takže seznam běžně používaných zkratek je uveden následovně:

redukce přepis
A. l. A auto l. autorský list
PROTI., století století, století

např. roky

rok, roky

G gram
Panenka. dolar
atd. a tak dále
a tak dále. atd
Ph.D. A Na. kandidát
kg kilogram
kg. velikost
Ph.D. nějaký
m Metr
MB megabajt
min. A m minuta
mm milimetr
R. A třít. rubl
S. A sek. druhý
S. A p. strana
cm centimetr
cm. Dívej se
T. , sv. objem, objemy
T. A tisíc tisíc
CELÉ JMÉNO. A F. A. Ó. Celé jméno

Ladicí program DEBUG je určen k řešení široký rozsahúkoly. Patří mezi ně například tyto úkoly: prozkoumání aktuálního obsahu paměť s náhodným přístupem; vývoj a ladění souborů .COM a .EXE; vlastní programy v jazyce symbolických instrukcí; studium fungování programů a jejich modifikace; testování periferní zařízení, pro přímou práci s I/O porty (v interaktivním režimu); studium příkazového systému procesoru, BIOSu a přerušení MS-DOS.

Debugger lze spustit dvěma způsoby:

ladit (Enter) nebo ladit název souboru (Enter)

Po spuštění se debugger načte do RAM a obsah segmentových registrů CS, DS, ES, SS se načte do prvního volného odstavce hned za samotným debuggerem. Registr IP je nastaven na 100.

Ladicí program DEBUG má speciální ukazatel adresy dat, který se standardně používá v mnoha příkazech ladicího programu.

Po spuštění ladicího programu se na levé straně obrazovky objeví pomlčka [-] označující, že ladicí program čeká na příkaz. Všechna čísla jsou interpretována debuggerem v hexadecimální soustava počet.

LADICÍ PŘÍKAZY

A - příkaz k sestavení. Tento příkaz umožňuje zadávat programy pomocí mnemotechnického kódu příkazu do paměti RAM. Zadání příkazu Debugger

A<число>(Enter)

donutí jej přepnout do režimu přijímání příkazů z klávesnice a jejich postupné umístění, počínaje adresou rovnou adrese uvedené v příkazu. Při zadávání můžete použít dva oblíbené assemblerové instrukce DB a DW. Například:

DB 1,2,3 “PŘÍKLAD”

DW 1000 2000 "FFFF"

Ladicí program podporuje mnemotechnické pomůcky pro všechny příkazy procesoru, stejně jako koprocesor 80X87. Při sestavování příkazů JMP a CALL se standardně, pokud je to možné, používá KRÁTKÁ varianta těchto příkazů. Před přechodovou adresou však můžete zadat NEAR nebo FAR, což povede ke generování odpovídající příkazy. Mnemotechnická pomůcka pro příkaz RET odpovídající příkazu CALL FAR je RETF. Je možné a v pochybných případech nutné použít ukazatele WORD PTR nebo BYTE PTR. Při zadávání programu je povoleno tisknout předpony CS:, ES:, SS: před příkazem na stejném řádku.

Příklad. Program pro vyplnění obrazovky symbolem „!“.

Zadejte A 200 (Enter), poté zadejte program

Na konci programu je příkaz INT 20, který vrací řízení zpět do monitoru příkazů debuggeru. Spusťte tento program příkazem

C - srovnání. Tento příkaz porovná dvě oblasti paměti bajt po bajtu a vytiskne všechny rozdíly mezi nimi ve formuláři

<адрес> <содержимое> <содержимое> <адрес>

V tomto záznamu jsou informace o první oblasti paměti uvedeny vlevo a informace o druhé oblasti vpravo.

Příklad. Porovnejte dva bloky paměti dlouhé 256 bajtů. První začíná na adrese 100, druhý začíná na adrese 300.

Chcete-li to provést, musíte vytočit číslo

S 100L100 300 (Enter)

Tento příkaz může být užitečný například při kontrole, zda jsou dvě diskety totožné. K tomu jsou odpovídající bloky těchto disket, které nás zajímají, načteny do sousedních paměťových oblastí, které jsou poté analyzovány příkazem C.

D - Výpis paměti RAM. Tento příkaz zobrazí na displeji tisk zadané oblasti paměti RAM, znázorněné v hexadecimálním zápisu, a vpravo udává jejich symbolickou reprezentaci. Navíc kombinace kódů, které nemají ve standardu ASCII symbolické znázornění, jsou znázorněny tečkami. Na každém řádku se zobrazí šestnáct bajtů. V tomto případě je uvedena vpravo celá adresa bajt zcela vlevo. V jednom řádku je tedy hexadecimální výpis, stejně jako ASCII výpis šestnácti bajtů RAM. Pokud je příkaz D zadán bez parametrů, pak se na osmi řádcích zobrazí celkem 128 bajtů (80H). Každý řádek má znaménko „-“, rozdělující 16 bajtů na polovinu: mezi osmým a devátým bajtem.

Příklad. Prohlédněte si vektorové ukazatele prvních třiceti dvou přerušení (20H).

Musíte zadat příkaz

D 0:0,7F (Enter)

E - příkaz pro změnu obsahu bajtů. Tento příkaz umožňuje prohlížet obsah paměti dopředu a dozadu, bajt po byte, a v případě potřeby obsah prohlížených bajtů změnit.

Vstup příkazu:

E<адрес>(Enter)

způsobí, že se ladicí program přepne do režimu jednobajtových úprav. Tím se vytiskne obsah aktuálního bajtu v hexadecimálním tvaru následovaný tečkou. Poté můžete zadat hodnotu obsahu nového bajtu, ale obsah bajtu můžete ponechat stejný, aniž byste cokoli zadávali. Poté musíte zadat jeden ze tří řídicích znaků:

a) „mezera“, což znamená přechod na úpravu dalšího bajtu;

b) „Vstup“. Tím opustíte režim úpravy bajtu po bajtu na úroveň příkazu ladicího programu;

V) "-". Stisknutím tohoto znaku přejdete k úpravě předchozího bajtu.

Příklad. Změňte hodnotu počítadla systémových hodin.

Zadáme příkaz

a zadejte čtyři čísla 70 70 70 70 oddělená mezerami, za nimiž následuje znak návratu vozíku 0D. Dále musíte ukončit ladicí program a spustit příkaz času operačního systému.

F - příkaz vyplnit. Tento příkaz umožňuje naplnit obsah zadaného rozsahu paměti RAM opakujícím se řetězcem bajtů se zadanými hodnotami. Zejména, když se řetězec skládá z jednoho bajtu, tento příkaz umožňuje reset požadované oblasti paměti, když je bajt roven nule, a také zadat jedničku do všech bitů, přičemž se vyplní bajt rovný FF.

Příkaz má následující syntaxi:

F<диапазон_памяти> <цепочка байтов>(Enter)

Příklad. Vyplňte oblast paměti začínající na adrese DS:0100 nulami na celkem 16384 bajtů (4000 16).

F 100L4000 00 (Enter)

Zkontrolujte příkazem

D 100L4000 (Enter)

G - příkaz ke spuštění programu. Tento příkaz je určen ke spuštění programu k provedení. Současně, pokud je řízení přeneseno do oblasti paměti, kde jsou data uložena jako program, počítač „zamrzne“ a je třeba jej restartovat. Pokud má program vážné chyby (například neexistuje žádný příkaz INT 20 vracející se na úroveň příkazu ladicího programu), pokus o jeho provedení pomocí příkazu G také způsobí zamrznutí počítače.

Tento operátor se obvykle používá v jedné z následujících čtyř forem:

Provedení tohoto operátoru je omezeno na přenos řízení na adresu CS:IP. Hodnoty CS a IP lze nalézt zadáním příkazu R (Enter) pro výpis všech registrů procesoru;

b) G=<адрес>(Enter)

V tomto případě se program spustí na zadané adrese.

c) G<адрес>(Enter)

V tomto případě se program spouští z CS:IP adresy a když se dostane k operátorovi s zadanou adresu Provede se BREAK - provádění programu se zastaví. Častou chybou začátečníků je vynechání znaménka rovná se při použití příkazu G. V tomto případě je zadaná adresa vnímána jako stop adresa, a pokud CS:IP ukázal například na datovou oblast, počítač ji přenese. zmrazit.

d) G=<адрес> <другой_адрес>(Enter)

v tomto případě se program spouští z adresy uvedené za znakem „=“ a pokud program dosáhne příkazu s hodnotou adresy, označený jako druhý(jiná adresa), dojde k zastavení. Tato metoda zastavení programu se nazývá zavedení bodu přerušení. Když je zadán bod přerušení, odpovídající bajt příkazu na této adrese je nahrazen příkazem INT 3 o velikosti 1 bajt. Když je dosaženo kontrolního bodu, obnoví se původní hodnota bajtu.

Nejprve vstoupíme do programu (pomocí příkazu A 100):

MOV, 1234

DEC BX ;dej sem kontrolní bod

Spusťte program příkazem G=100 109 (Enter). Program se po dosažení adresy 109 zastavil a dal plná skládka registrů

H - hexadecimální aritmetický příkaz. Tento příkaz umožňuje získat součet a rozdíl dvou hexadecimálních čísel zadaných v příkazu.

Odpověď je 1 (součet) a FFFF (rozdíl).

I - vstupní příkaz z portu. Tento příkaz umožňuje číst obsah I/O portu se zadanou adresou jeho vytištěním na obrazovku v šestnáctkové soustavě.

Syntaxe příkazu:

já<адрес_порта>(Enter)

V tomto případě obdržíme obsah portu B z programovatelného periferní rozhraní 82 .

L - boot příkaz z disku. Tento příkaz umožňuje načíst jak logické sektory z disket, tak z pevných disků a samostatné soubory. Načítání sektorů z disku se provádí příkazem:

L<адрес><номер_диска><начальный_сектор><число_секторов>(Enter)

Zde „adresa“ znamená počáteční adresu v RAM, od které bude postupně umístěn obsah sektorových bloků. Proměnná „disk number“ udává, ze kterého disku se bude načítat. Číslo 0 znamená jednotku A, číslo 1 znamená jednotku B, číslo 2 znamená jednotku C atd. Následující dvě proměnné indikují, ze kterého sektoru začíná čtení, a celkový počet přečtených sektorů.

Načtěte BOOT blok z diskety A: do RAM, počínaje adresou DS:1000, pro kterou musíte provést příkaz

L 1000 0 0 1 (Enter)

Obsah bloku BOOT lze poté vytisknout pomocí příkazu

D 1000L200 (Enter)

a také rozebrat

U 1000L200 (Enter)

N<имя_файла>(Enter)

Dále musíte provést příkaz L bez argumentů. V důsledku těchto akcí bude soubor (kromě souborů s příponou EXE) načten do paměti RAM počínaje adresou CS:100. Pokud má stažený soubor příponu EXE, debugger načte soubor začínající na adrese CS:0. Počet přečtených bytů se po provedení instrukce L uloží do dvojice registrů BX:CX.

M - příkaz kopírování Tento příkaz zkopíruje obsah části paměti RAM do jiné oblasti paměti RAM. Syntaxe příkazu je následující:

M<диапазон> <начальный_адрес>(Enter)

Zde „rozsah“ označuje zkopírovanou oblast paměti a „start_address“ označuje adresu prvního bajtu, od kterého jsou umístěna zkopírovaná data. Tento příkaz lze použít k dočasnému uložení obsahu paměti RAM a následnému obnovení.

Nejprve se podívejme na obsah paměti:

D 100L100 (Enter)

Poté ušetříme část paměti, počínaje adresou

M 100L100 1000 (Enter)

Vymažeme původní obsah

F 100L100 0 (Enter)

Zkontrolujeme reset

D 100L100 (Enter)

A nakonec obnovit původní obsah

M 100L100 100 (vstup)

N - příkaz pro zadání názvu. Tento příkaz v první řadě určuje název souboru, který bude poté buď načten z disku příkazem L, nebo zapsán na disk příkazem W. Syntaxe tohoto příkazu je následující:

N<имя_файла>(Enter)

Načteme soubor AUTOEXEC.BAT z disku do RAM. Chcete-li to udělat, pojďme to udělat

N C:\AUTOEXEC.BAT (Enter)

Registrový pár BX:CX bude obsahovat délku staženého souboru v bajtech.

O - příkaz pro výstup dat na port. Tento příkaz vám umožňuje odeslat zadaný bajt na port s daná adresa. Je to užitečné pro testovací práci příslušenství a budovy na systémová deska v interaktivním režimu. Syntaxe příkazu:

O<адрес_порта> <величина>(Enter)

Zde je místo „port_address“ nahrazena adresa požadovaného portu v rozsahu 0-FFFF a místo „value“ je nahrazena hodnota, která je následně načtena do portu. Pokud je port šestnáctibitový, pak „hodnotou“ může být čtyřbitové hexadecimální číslo, které se načte do portu.

Hnací motor A: pro disketu lze aktivovat následujícím příkazem

O 3F2 10 (Enter)

R - příkaz trasování na vysoké úrovni. Tento příkaz, stejně jako příkaz T, je určen pro trasování programu. Na rozdíl od T stopy je však tato stopa méně podrobná. Nesleduje podprogramy a softwarová přerušení, stejně jako smyčky LOOP a řetězcové příkazy s opakováním. Stejně jako v případě T-trace se po každém příkazu vytiskne obsah všech registrů a další spustitelný příkaz. Syntaxe příkazu:

P=<адрес> <число_команд>(Enter)

Kterýkoli ze dvou parametrů můžete vynechat příkazový řádek: <адрес>a/nebo<число_команд>. Parametr<адрес>určuje počáteční adresu, ze které se bude provádět trasování, a parametr<число_команд>bude indikovat celkový počet příkazů, které budou provedeny po stisknutí klávesy (Enter). Při zadávání adresy je nutné zadat symbol „=“, aby nedošlo k záměně adresy s počtem příkazů, které se mají provést. Tento typ P-stopy je extrémně užitečný při studiu obecná logika provádění programu, což eliminuje zdlouhavé sledování detailů. Při počátečním studiu programu je nutné začít s P-trace.

Začněme od adresy 100, další program

Poté provedeme P-stopu. Chcete-li to provést, zadejte nejprve příkaz P=100 (Enter) a poté postupně

Poté provedeme obvyklou podrobnou T-trasu

Q - příkaz pro ukončení ladicího programu. Příkaz Q způsobí ukončení ladicího programu na další začátek úroveň programu. V tomto případě se pracovní soubory neuloží.

R - příkaz výpis/oprava registru. Tento příkaz umožňuje zobrazit obsah všech registrů najednou, stejně jako příznaky, nebo zobrazit hodnoty jednotlivých registrů a registr příznaků s možností jejich změny.

poskytuje výpis všech registrů a také příkaz, na který ukazuje CS:IP.

R<имя_регистра>(Enter)

vypíše obsah zadaného registru a poté vytiskne dvojtečku další řádek. Uživatel pak může stisknout klávesu Enter a vrátit se zpět na monitor příkazů ladicího programu nebo nastavit novou hodnotu registru před stisknutím klávesy Enter. V druhém případě bude stará hodnota registru nahrazena novou. Možné názvy registrů: AX, BX, CX, DX, SP, BP, SI, DI, DS, ES, SS, CS, IP, F (registr příznaků).

Při použití příkazu

Je třeba vzít v úvahu, že hodnoty příznaků jsou kódovány velmi specifickým způsobem. Níže je tabulka kódování, kde dvojice znaků vlevo odpovídá hodnotě 0 příslušného příznaku a vpravo hodnotě rovné 1 (příznak je nastaven):

Při provádění příkazu

hodnoty příznaků se vytisknou na řádek v opačném pořadí, než je pořadí v tabulce. Ihned poté se na řádku vytiskne pomlčka<->, debugger přejde do stavu čekání na vstup z klávesnice. Pokud uživatel stiskne pouze klávesu Enter, hodnoty příznaků se nezmění a vrátí se na monitor příkazů debuggeru. Předtím však může uživatel zadat nové hodnoty některých příznaků podle kódovací tabulky. Pořadí výskytu není podstatné.

S - vyhledávací příkaz. Uspořádaný příkaz hledání sady bajtů vám umožňuje vyhledat zadaný řetězec bajtů v určeném rozsahu paměti RAM a má syntaxi:

S<диапазон_памяти> <цепочка_байтов>(Enter)

Odpověď je vydána ve formě seznamu adres, od kterého se nachází zadaný řetězec bajtů.

Předpokládejme, že potřebujete určit, zda se řetězec znaků „DOS“ vyskytuje v prvních 32 kB paměti RAM. Chcete-li to provést, musíte zadat příkaz

S 0:0L8000 44 4F 53 (Enter)

T - trasovací příkaz. Tento příkaz vám umožňuje provádět jeden nebo více příkazů v režimu trasování, tisknout obsah všech registrů a mnemotechnické pomůcky dalšího dekódovaného spustitelný příkaz. Po vysledování aktuální instrukce se IP ukazatel posune tak, aby ukazoval na další příkaz. tým

sleduje jediný aktuální příkaz, na který ukazuje CS:IP, a podle toho mění IP.

T<число>(Enter)

vytváří sekvenční trasování několika příkazů, jejichž celkový počet je uveden v příkazu.

T=<адрес>(Enter)

sleduje jeden příkaz na zadanou adresu.

Obecná forma T příkazy jsou následující:

T=<адрес> <число_команд>(Enter)

Příkaz: T=FFFF:0 (Enter)

sleduje první příkaz provedený při prvním spuštění počítače.

U - příkaz k demontáži. Tento příkaz umožňuje rozebrat programy načtené do pracovního prostoru ladicího programu Obecná syntaxe:

U<начальный_адрес> <длина>(Enter)

U<начальный_адрес>,<конечный_адрес>(Enter)

způsobí, že bude rozebráno 32 bajtů, počínaje bajtem, na který ukazuje CS:IP, se zobrazeným výsledným výpisem.

W - příkaz zápisu na disk. Tento příkaz umožňuje zápis na disk (diskety nebo pevný disk) v sekvenčních blocích zadaného rozsahu paměti RAM a také zápis do souborů. Zapište do sektorů na disku pomocí příkazu

W<адрес><номер_диска><начальный_сектор><число_секторов>(Enter)

Tento příkaz nezapíše na disk více než 80H sektorů, počet sektorů není větší než 80. Parametr<адрес>znamená adresu RAM, od které se obsah paměti zkopíruje na disk. Parametr<номер диска>označuje disk, na který se provádí záznam (0-disk A:, 1-disk B:, ..., 80 - pevný disk C:). Parametr<начальный сектор>označuje číslo logického sektoru, od kterého bude načten obraz RAM. Parametr<число секторов>udává celkový počet sektorů zapisovatelných na disk.

Zkopírujeme obsah oblasti BIOS paměti RAM do souboru na disku. Za předpokladu přítomnosti PC/AT se standardní velikostí BIOSu 64K nejprve resetujeme registr BX a poté jej zadáme do registru CX 2000H. Dále nastavíme název souboru, kam zkopírujeme starší polovinu BIOSu s příkazem

N BIOS.COM (Enter)

A nakonec tým

W F000:E000 (Enter)

zadá obsah BIOSu do souboru BIOS.COM.





Horní