Kako postaviti pametne telefone i računala. Informativni portal

Opis naredbi debuggera.



Program DEBUG (debugger) pruža način otkrivanja grešaka kada
rad s programom prevedenim na strojni jezik. Program
DEBUG pruža mogućnost prolaska kroz program i
pratiti što se događa. Program DEBUG je također
jedan softverski alat, koji se isporučuje kao dio DOS-a. Vas
preuzmite ga kao i svaki drugi program i radite s njim
dijalog pomoću tipkovnice i ekrana. Kada program DEBUG
čeka neku akciju od korisnika, a zatim vaš zahtjev
označava se simbolom "-".

Umjesto popisa svih naredbi koje su uključene u program
DEBUG, koristite ovaj program za uklanjanje pogrešaka samo da provjerite rad
kompilirani program prikazan na sl. 5.13 i P5.14. Na
sl. 5.17 prikazuje odgovarajući popis.
NA ovaj primjer prvo se poziva program DEBUG i
označava program koji bi trebao biti otklonjen - u
u našem slučaju program FIG5=13.EXE. Nakon programa DEBUG
učitano, učitava program u kojem se otklanjaju pogreške.
Kontrola je sada u vlasništvu programa za ispravljanje pogrešaka, a uz pomoć "-"
označava da čeka na unos. Dok ne uđete
upute, ništa se neće dogoditi programu.

Naredba R ispisuje sadržaj svih registara u tom trenutku
koji odgovara učitavanju programa FIG5=13 i prijenosu kontrole na njega.
Sadržaj registara je sam po sebi jasan, osim što je
možda vrijednosti zastava. Zastavica NV označava odsutnost
preljevi, zastavica GORE - zastavica smjera itd. Prilikom povlačenja
sadržaj registara u zadnjem redu je sljedeći
naredba koja se izvršava. Ćelija 04C5:0000 sadrži naredbu PUSH DS.
B>A: DEBUG FIG5_13.EXE
-R

AX=0000 BX=0000 CX=0120 DX=0000 SP=FFF0 BP=0000 SI=0000 DI=0000
DS=2C26 ES=2C26 SS=2C26 CS=2C26 IP=0000 NV GORE DI PL NZ NA PO NC
2C26:0000 1E GURANJE D.S.

2C26:0000 1E GURNUTI D.S.
2C26:0001 B80000 MOV AX,0000
2C26:0004 50 GURNUTI SJEKIRA
2C26:0005FC CLD
2C26:0006 8CC8 MOV AX,CS
2C26:0008 8ED8 MOV DS,AX
2C26:000A 8D361D00 LEA SI.
2C26:000E AC LODSB
2C26:000F A24000 MOV ,AL
2C26:0012 E82C00 POZIV 0041
2C26:0015 803E40000A CMP .0A
2C26:001A 75F2 JNZ 000E
2C26:001CCB RET Daleko
2C26:001D 9D POPF
2C26:001E E2A0 PETLJA FFC0
2C26:0020 20AFE0AE I ,CH
2C26:0024 A3E0A0 MOV ,SJEKIRA

D2C26:0

2C0E:0000 CD 20 00 A0 00 9A EE FE 1D F0 ED 04 04 1C 3C 01 . ............<.
2C0E:0010 22 1B EB 04 22 1B 04 1C 01 01 01 00 02 06 FF FF "..."
2C0E:0020 FF FF FF FF FF FF FF FF FF FF FF FF 08 2C D0 FF .............,..
2C0E:0030 04 1C 14 00 18 00 0E 2C FF FF FF FF 00 00 00 00 .......,........
2C0E:0040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
2C0E:0050 CD 21 CB 00 00 00 00 00 00 00 00 00 00 20 20 20 .!...........
2C0E:0060 20 20 20 20 20 20 20 20 00 00 00 00 00 20 20 20 .....
2C0E:0070 20 20 20 20 20 20 20 20 00 00 00 00 00 00 00 00 ........

RAX
AX0000
:1234

E 2C0E:21
2C0E:0021 69. 73. 20. 61.20 20.


DS=2C26 ES=2C26 SS=2C26 CS=2C26 IP=003C NV GORE DI PL NZ NA PO NC
2C26:003C CD10 INT 10
-T

AX=0E54 BX=0000 CX=003F DX=0000 SP=FFEA BP=0000 SI=001D DI=0000
DS=2C26 ES=2C26 SS=2C26 CS=F000 IP=0165 NV GORE DI PL NZ NA PO NC
F000:F065 FB STI
-T

sl. 5.17 Popis programa za ispravljanje pogrešaka za slike 5.13 i 4.14 (početak)
AX=0E54 BX=0000 CX=003F DX=0000 SP=FFEA BP=0000 SI=001D DI=0000
DS=2C26 ES=2C26 SS=2C26 CS=F000 IP=0166 NV GORE DI PL NZ NA PE NC
F000:F066 FC CLD
-G 2C26:3E

T
AX=0E54 BX=0000 CX=003F DX=0000 SP=FFEA BP=0000 SI=001D DI=0000
DS=2C26 ES=2C26 SS=2C26 CS=2C26 IP=013E NV GORE DI PL NZ NA PO NC
2C26:003E RET
-G

Ovaj program je test

Program je normalno prekinut
-R

AX=0754 BX=0000 CX=003F DX=0000 SP=FFEA BP=0000 SI=001D DI=0000
DS=2C26 ES=2C26 SS=2C26 CS=2C26 IP=003E NV GORE DI PL NZ NA PO NC
2C26:003E C3 RET
-Q

sl. 5.17 Popis programa za ispravljanje pogrešaka za slike 5.13 i 4.14 (nastavak)

Ovdje treba malo zastati i analizirati
podaci koji su evidentirani u registrima. Sadržaj upisnika
odgovara trenutku kada program FIG5=13 dobije kontrolu
iz komandnog procesora. Imajte na umu da par registara
CS:IP pokazuje na prvu naredbu specificiranu naredbom END
programa. DS i ES registri označavaju softverski prefiks
segment. Konačno, par registara SS:SP pokazuje na segment
STOG. Opisano stanje registara usporedit ćemo kasnije s
isto stanje registara za .COM datoteku.

Za prikaz više naredbi morate unijeti znak "U"
(rastaviti), te dvadesetak
sljedeće naredbe. Ovo je zgodno kada posjedujete program za koji ne postoji
popis. Rastavljanje programa omogućuje vam da ga vidite
naredbe. To vam može uštedjeti papir i vrijeme
Program je malo izmijenjen. Budući da je vaš unos više
ne odgovara programu koji je u memoriji, tada je njegov
rastavljanje vam omogućuje da saznate točne adrese za
svaki tim.

Međutim, rastavljanje s programom DEBUG ima
niz nedostataka u usporedbi s korištenjem popisa. Nedostaje
komentari (mogu biti vrlo važni za razumijevanje programa) i
memorijske ćelije identificiraju se samo adresom, a ne imenom
varijabla. Na primjer, instrukcija pohranjena u ćeliji 04C5:000E ima,
kao što je prikazano na slici 5.13, sljedeći prikaz:

MOV IZLAZNI_ZNAK,AL

I to u rastavljenom obliku

MOV ,AL

To je ista ekipa. Za programera koji radi
debugging, naziv varijable OUTPUT_CHARACTER govori više od adrese
Stanice. Međutim, program DEBUG ne zna imena varijabli
i ona je prisiljena operirati sa stvarnim adresama.

Također, program DEBUG ne pruža isto
asemblerska mnemotehnika koju asembler prihvaća. To znači,
da će neke naredbe izgledati drugačije. Naredba iz ćelije
04C5:0014 izgledat će ovako

CMP B,,0A

Ali ista naredba na slici 5.13 predstavljena je kao:

CMP OUTPUT_CHARACTER,10

Program rastavljanja za ulaz i izlaz
radi samo sa heksadecimalnim vrijednostima. Ovo objašnjava
pojava vrijednosti 0A. Već smo shvatili zašto je vrijednost dobivena
, umjesto naziva OUTPUT_CHARACTER. Što je simbol "B"?

Asembler radi s varijablama dobro definiranog tipa. Ovaj
znači da tijekom asemblera tip varijabli može imati
vrijednost: bajt, riječ ili neka druga. Dakle, kada
programer unosi naredbu koja sadrži referencu na memorijsko područje, zatim
asembler zna veličinu ove regije. Program DEBUG ne radi
ima ideju o duljini varijable zapisane na adresi
. Međutim, program za rastavljanje to sigurno zna
ova naredba šalje točno jedan bajt navedenih podataka
izravno u naredbi, na . Tako simbol
"B," označava da je neposredna operacija
slanje jednog bajta. Da biste dobili isti rezultat s
koristeći asembler, odgovarajuća naredba bi trebala izgledati ovako:

CMP BAJT PTR ,10

Znak "B" možete zamisliti kao kraticu za BYTE PTR.
Slično se W koristi za WORD PTR, L za dugo
(daleki) povratci itd.

Zajedno s naredbom u rastavljenom obliku, svoj
objektni kod. Kao što vidite, adresa 04C5:001C sadrži
neke naredbe koje nisu prikazane na sl. 5.13. Ovo područje podataka
koji sadrži niz "Ovo je test". Međutim, tim koji provodi
rastavljanje, ne zna se gdje završavaju komande u programu
i podaci počinju. Dakle, ona sve tumači kao
naredbe. (Usput, upravo je ovaj niz naredbi izvršen
bi, ako je u vašem programu napravljen prijelaz na razmatrani
područje podataka.)

Naredba prikaza D omogućuje vam prikaz na zaslonu
područje podataka. Zaslon se sastoji od dva dijela.
Zajedno s popisom sadržaja memorijskih ćelija u heksadecimalnom obliku
predstavljanje prikazuje ASCII znakove koji
odgovaraju ovim vrijednostima. Ako je prikaz naredbi sličan
način nema smisla, tada se područje podataka čini vrlo
čisto. Kad nemate puno posla, možete
pokušati napisati program čije naredbe u ASCII kodu
odgovaraju inicijalima vašeg imena. S programom za uklanjanje pogrešaka možete
mijenjati sadržaj registara i memorijskih ćelija. Ako unesete simbol R
(registar), a zatim tip registra, zaslon će prikazati
sadržaj ovog registra uz mogućnost ispravka. Ako pritisnete
ključ "povratak", tada će sadržaj registra ostati isti. To
će se promijeniti ako se unese nova vrijednost.

Također možete mijenjati sadržaj memorijskih ćelija. Ulazni
znak E (uredi) vam to omogućuje. pri čemu
program DEBUG prikazuje vrijednosti pojedinačnih memorijskih ćelija,
nakon čega slijedi simbol. Možete promijeniti sadržaj
ćelije unosom nove vrijednosti ili pritisnite razmaknicu za
prijeđite na sljedeću ćeliju ili - tipku "povratak" na
vratite se u način upita za sljedeću naredbu programa za ispravljanje pogrešaka. NA
U ovom primjeru ostaju vrijednosti u prve tri ćelije
prijašnji. Ćelija 04C5:0024 promijenjena je iz 61H u
veća od 20H. Budući da je ova ćelija u području podataka, dakle
prikazana poruka će se razlikovati od one koja je bila u
emitirani program.

U svakoj instrukciji koja pristupa memorijskim ćelijama, pretpostavlja se da
da je adresa dio naredbe. E tim, kao tim
prikaz, prikazuje sadržaj ćelije kako je navedeno u
njezinu adresu. Slično, možete koristiti adresu u naredbi
rastavljanje. Možete unijeti adresu kao segment i pomak,
ili samo kompenzacije. Ako ste naveli samo pomak, onda
odgovarajući segmentni registar će biti odabran programom DEBUG. NA
u slučaju U instrukcije koristi se CS registar, a za D i E instrukcije,
standardno, segment će biti definiran DS registrom.

Pokušajmo sada izvršiti ovaj program. Može biti jednostavno
trči i vidi što će se dogoditi. Za ovo ne
potreban vam je program DEBUG. Program DEBUG omogućuje postavljanje točaka
prijelomne točke, koje se nazivaju "prijelomne točke" programa. Zahvaljujući
uvođenjem takvih točaka u program, možete vratiti kontrolu
DEBUG program. Ovo daje još jednu priliku za provjeru statusa
memoriju i registre kako bi se kontrolirao napredak izvršenja
programa.

Naredba G, (izvrši) prenosi kontrolu iz programa DEBUG
korisnički program. Izvršenje naredbi počinje iz ćelije,
postavlja par CS:IP registara (isto kao u stvarnom
mikroprocesor). Program koji se testira nastavlja raditi do
dok ne prijeđe graničnu točku. U našem primjeru, mi
postaviti prijelomnu točku na adresi 3CH. Pošto smo samo naznačili
offset, koristi program DEBUG
sadržaj upisnika CS. Iz popisa prikazanog na sl. 5.14,
može se vidjeti da 3CH offset odgovara instrukciji INT 10H. NA
u primjeru programa koji se razmatra odabrano je ovo mjesto,
jer je to točka u kojoj se kontrola prenosi na potprogram
BIOS pozvan iz ROM-a. Provjeravam program u ovom trenutku
osigurava da sam prije postavio registre u ispravno stanje
izvršavanje BIOS rutine.

Čim se naiđe na prijelomnu točku, kontrola
vratio u program DEBUG. Istodobno, kao u slučaju
R naredba, zaslon prikazuje sadržaj registara i sljedeće
naredba koja se izvršava. Budući da se kontrola ponovno prenosi na program
DEBUG, možete koristiti bilo koju naredbu za ispravljanje pogrešaka.

Postoje ograničenja u korištenju prijelomnih točaka.
Zapravo, prijelomnu točku implementira 0CCH opcode.
Instrukcija koja odgovara ovom kodu uzrokuje prekid INT 3.
Ovaj matematički prekid vraća kontrolu programu
DEBUG. Ako neka naredba vrati kontrolu debuggeru, tada
Prijelomna točka mora biti na početku ove naredbe. Ako
prijelomna točka je odabrana negdje drugdje, tada kontrola nije
vratit će se debuggeru i izvršit će se pogrešna naredba
program koji je bio namijenjen. Na primjer, kad bi se dalo
"=G 3D", tada bi na adresi 3CH bila naredba INT 0CCH, i dalje
izvedbu programa je teško predvidjeti.

Ako je prijelomna točka pažljivo odabrana, onda ne
neće biti nikakvih komplikacija. Naredba "G" omogućuje postavljanje do deset točaka
prekida. Nakon prolaska kroz bilo koji od njih,
vraćanje izvornih vrijednosti prijelomnih točaka. Izvođenje
debug "G" naredbe bez navođenja prijelomnih točaka nikada neće izaći
na bilo koju od prethodno postavljenih prijelomnih točaka, jer sve one
su uklonjeni. Ako ste pokrenuli program i on se zaustavio i
zapela je, moguće je vratiti kontrolu, koja
prenijeti u program, to će biti moguće samo uz pomoć sistemskog ključa
resetiraj Ctrl=Alt=Del, tj. morat ćeš sve ispočetka.
Prilikom pokretanja nepoznatog programa, trebali biste biti oprezni.

Ako želite uvesti trajnu prijelomnu točku,
upotrijebite naredbu E za promjenu vrijednosti prvog bajta
naredba za 0CCH. Ova prijelomna točka bit će tu trajno
ili barem dok ga ne promijenite. Može biti
htjet ćete koristiti ovaj prekid na ulaznoj točki u
rutinu rukovanja pogreškama i analizirati nastale pogreške
pažljivije nego kod prijenosa njihove obrade u program.

Uz bodove je vezana još jedna okolnost
prekidi kojih treba biti svjestan. Ako pokušate pitati
breakpoint u području koje se odnosi na ROM, onda ništa
uspjeti. Budući da ne možete promijeniti sadržaj ROM-a, naredba
0CCH tamo nikada neće biti napisano.

Razmotrite sljedeću naredbu programa za ispravljanje pogrešaka, naredbu T trace.
Ova naredba inicira izvršenje jedne naredbe otklonjene greške
programa. U našem primjeru, naredba T se izvršava više puta. Kao
možete provjeriti izvršava li se prvih nekoliko BIOS naredbi,
pozvan prekidom INT 10H. BIOS potprogram, naravno,
je u ROM-u. Trace naredba omogućuje vam "pauziranje"
program kada se izvršava u ROM-u.

Prije prijenosa kontrole na korisnički program, naredba
trace postavlja odgovarajući bit u registar zastava
traganje. Ovaj bit će pokrenuti INT 1 prekid nakon izvršenja
svaki tim. Vektor prekida INT 1 vraća kontrolu
DEBUG program. Automatski izvrši prekid INT 1
resetira bit traga u početno stanje. To znači da
program DEBUG se ne prekida nakon izvršenja svake njegove naredbe.
Trace naredba je izvrstan način za "proboj"
težak dio programa. U ovom slučaju, program DEBUG izlazi na
pregledajte svaku naredbu zajedno sa sadržajem upravo unesenih registara
trenutak prije izvršenja ove naredbe. Pošto u ovom
način rada, ne koriste se točke prekida, već sami prekidi,
tada se čak i ROM programima može ući u trag.

Vratimo se našem primjeru. Naredba =G 4C5:3E osigurava
potpuno izvršenje BIOS potprograma. imajte na umu da
program je prikazao simbol "E". Pozvan prekidom 10H
BIOS potprogram prikazuje znakove na zaslonu. U ovom slučaju, ovo
prvi znak izlazne poruke. Od sada možete biti
sigurni da naš program radi ispravno, a zatim upisivanjem
simbol "G", osigurat ćemo da se program izvede do kraja bez točkica
prekida.

U ovom primjeru, razmatrana je datoteka tipa .EXE, te stoga za
vratiti kontrolu DOS sustavu, nismo mogli koristiti prekid
INT. 20H. Umjesto toga, program je gurnuo stanje registra na stog.
DS i vrijednost 0. Kontrola se na kraju prenosi natrag u DOS
glavni program s povratnom instrukcijom tipa FAR. Program
DEBUG to prepoznaje i na kraju uređuje stanje stroja
program koji se testira. Da je to .EXE datoteka, onda
prekid INT 20H bi na sličan način vratio kontrolu
DEBUG program. Sada, nakon što smo posvetili dovoljno vremena ovom primjeru,
možemo izaći iz programa DEBUG i vratiti se u DOS sustav sa
pomoću Q naredbe za završetak.

Koristeći prečac postavljen na radnoj površini, desnom tipkom miša kliknite na njega i odaberite "Svojstva" iz padajućeg kontekstnog izbornika. Na kartici "Prečac" u prozoru koji se otvara kao rezultat ove radnje kliknite polje "Objekt". Zatim pritisnite tipku End za pomicanje kursora na sam kraj retka, unesite razmak i upišite željenu opciju (-debug). Nakon toga kliknite gumb "OK" da biste spremili prečac s unesenim promjenama i pokrenuli igra na uobičajeni način - duplim klikom na ovu ikonu.

Proširite glavni izbornik na gumb "Start" i odaberite "Pokreni" - na taj način otvorit ćete standardni prozor za pokretanje programa. Ova radnja odgovara pritisku kombinacije tipki prečaca Win + R - možete je koristiti i vi. Zatim unesite puni put do izvršne datoteke programa u prozor koji se otvori. Nije potrebno ručno upisivati, možete kliknuti gumb "Pregledaj" i pronaći izvršnu datoteku igre na disku vašeg računala. Nakon toga dodajte ključ -debug odvojen razmakom i kliknite gumb "U redu". Sljedeći put kada počnete koristiti ovaj dijaloški okvir, nećete morati ponovno upisivati ​​put i ključ - uneseni niz bit će spremljen na padajućem popisu, odakle ga možete odabrati.

Stvorite tekstualnu datoteku u bilo kojoj mapi na računalu. To možete učiniti na radnoj površini - desnom tipkom miša kliknite pozadinsku sliku, otvorite odjeljak "Novo" u skočnom kontekstnom izborniku i odaberite "Tekstualni dokument". Unesite puni put do izvršne datoteke igre u prvi redak dokumenta - možete ga kopirati u prečacu programa ili u adresnoj traci Explorera. Dodajte ključ -debug odvojen razmakom i spremite dokument s nastavkom .bat. trčanje igra dvaput kliknite na ovu datoteku.

Ne mogu sve stare igre i programi raditi na novim operativnim sustavima i visokim razlučivostima zaslona. U sustavu Windows možete prilagoditi postavke kompatibilnosti i aplikacija će se pokrenuti. U nastavku pročitajte kako to učiniti.

Uputa

Desni klik na prečac igre. U padajućem izborniku odaberite "Svojstva".

U prozoru koji se otvori idite na karticu "Kompatibilnost".

Pritisnite OK.

Videi sa sličnim sadržajem

Programi za varanje dizajnirani su da pojednostave računalne igre. Uz pomoć kodova za varanje možete dobiti dodatne bonuse i sposobnosti za svog računalnog heroja.

Trebat će vam

  • - program "CheMax";

Uputa

Varalice za igre Kozaci
U strategiji "Cossacks", izbornik za unos kodova za varanje otvara se pritiskom na tipku "Enter"
nadzornik - uključivanje/isključivanje borbene magle
novac - nadopuna
multitvar - pristup svim vojnicima
Bogovi - pomoć bogova
AI - sposobnost kontrole neprijatelja
resursi - nadopuniti sve resurse
štit - super oružje

Varalice za igre Sims 3
Za unos kodova u igru ​​Sims 3 pritisnite kombinaciju tipki prečaca CTRL + SHIFT + C. Ako se ne otvori, minimizirajte igru ​​i provjerite otvara li se pritiskom na ove tipke neki drugi program. Zatvorite ga i proširite igru. Ponovno pritisnite tipke.
Za korisnike operativnog sustava Vista: koristite tipke Ctrl+Windows+Shift+C.
Neki trikovi za Sims 3:
Kaching - dodaje §1.000 u obiteljsku kasicu prasicu
Motherlode - dodaje §50,000 Simoleona u kućni proračun
Familyfunds - omogućuje vam postavljanje proračuna.

Varalice za igre Counter-Strike 1.6
Ovo je jedna od najpopularnijih igara. Za ovu računalnu igricu hakeri su smislili puno programa za varanje. Preuzmite Bad Boy v 5.2. Ovo je univerzalna varalica koja uključuje sve prethodne verzije. Instalirajte program u korijensku mapu cstrike. Pokrenite igru ​​i pritisnite tipku "Insert". Otvorit će se izbornik programa. Pomoću tipki "Page Up" i "Page down" odaberite željene postavke i igrajte. Ova varalica vam omogućuje da vidite kroz zidove, trčite brzo, pucate precizno. Ali za ovaj program na mrežnim poslužiteljima oni blokiraju.

Varalice za igre Kamiondžije 2
Tijekom igre pritisnite tipku "Pause / Break" na tipkovnici i unesite šifru koja vam je potrebna.
SLFILLUP - Dobit ćete pun spremnik goriva.
SLRECOVER - besplatnoj službi za spašavanje.
SLREPAIR - besplatan popravak automobila.

Videi sa sličnim sadržajem

Bilješka

Za ove šifre možete dobiti zabranu na mrežnim poslužiteljima

Tekstualne igre jedan su od omiljenih načina provođenja slobodnog vremena među mladima koji vole igre uloga. Uostalom, da biste igrali za svoj omiljeni lik, ne morate pripremiti kostim i otići u šumu. Igraj forum igra možete to učiniti kod kuće, na poslu ili u pauzama između parova, općenito, kada vam odgovara.

Uputa

Dakle, odlučili ste kreirati svoj tekst igra i uskoro postati administrator vašeg svijeta igranja uloga. Za početak, bilo bi lijepo da si nađete jednog ili dva pomoćnika, jer posla ima dovoljno.

Ako želite učiniti igra u svom originalnom svijetu, morate pažljivo razmotriti i oslikati strukturu svijeta, njegova pravila, kulturu i vrijednosti. Ako radite probno igranje uloga, ili - pažljivo proučite onu koju ste odabrali. Kao administrator, morate znati sve - sposobnosti likova koji će igrati, čarolije koje se koriste.

Napiši zaplet igre. Na primjer, možete odabrati jedan iz knjige ili neki drugi svijetli događaj koji vam se sviđa. U zapletu, osim općih informacija sadržanih u izvornom izvoru, morate naznačiti što suprotstavljene strane rade u to vrijeme, koje ciljeve rade suprotstavljene strane, što junaci planiraju učiniti kako bi riješili sukob.

Sastavite pravila foruma i predložak upitnika. Pravila raznih tekstualnih igara vrlo su slična, možete ih potražiti na bilo kojem forumu za igre i, uzimajući ih kao osnovu, napisati vlastita. U istom je potrebno napraviti popis pitanja na koja igrači moraju odgovoriti prilikom prijave za ulogu lika. Obično u prijavnici pišu ime, rasu i dob lika, opisuju izgled, karakter i vještine. Najbolje je da popunjavanje objavite uz upitnik.

Kada je tekstualni dio spreman, možete kreirati na kojem će se igra odvijati. Na internetu postoji nekoliko besplatnih poslužitelja (na primjer, ploča). Ako znate pisati web stranice, možete stvoriti jedinstveni dizajn s vlastitom shemom boja, logotipom i gumbima. Ako ne, ne brinite, možete odabrati standardni predložak. Na kraju, dizajn foruma nije glavna stvar.

Podijelite forum na dijelove i objavite informacije. Nemojte bacati sve na hrpu, ostavite jedan odjeljak za tehničke informacije o igri - zaplet, pravila, popis potrebnih likova. U drugom odjeljku neka razmotre upitnike. Podijelite svoj svijet na nekoliko lokacija i stvorite zasebnu temu za svaku od njih. Ne zaboravite stvoriti temu za razgovor kako igrači ne bi razgovarali o životu dok igraju. U ovom trenutku vaša tekstualna igra je spremna za primanje posjetitelja.

Videi sa sličnim sadržajem

Pun do datoteka je potrebno, u pravilu, da ga proslijedite kao parametar nekom programu rukovatelja. Najčešće se ovaj zadatak pojavljuje prilikom programiranja nekih procesa, ali ponekad samo trebate provjeriti lokaciju objekta s putanjom navedenom u uputama. Ovaj parametar sadrži popis svih direktorija, počevši od korijena, koji se moraju otvarati redom kako bi se došlo do željene datoteke.

Trebat će vam

  • Windows OS.

Uputa

Koristite "Explorer" ako trebate pronaći potpuni staza do datoteka u Windows operativnom sustavu. Otvorite program pomoću prečaca Win + E ili odabirom stavke "Računalo" u glavnom izborniku, koji se poziva klikom na gumb "Start". Ako znate bilo što o lokaciji željenog objekta, krećite se stablom imenika što je moguće bliže njemu - to će suziti raspon pretraživanja, a time i vrijeme za ovaj postupak.

U polje koje se nalazi desno od adresne trake upravitelja datoteka unesite naziv datoteke i pričekajte da program skenira sve poddirektorije i pronađe objekte čiji nazivi sadrže nešto slično. puna staza bit će postavljen u stupac "Put do mape" u tablici s rezultatima pretraživanja. Nema potrebe da ga ručno prepisujete - desnom tipkom miša kliknite ovaj redak, odaberite redak "Svojstva" u padajućem kontekstnom izborniku i kopirajte sadržaj polja "Lokacija" prozora koji se otvori.

Ako iz nekog razloga morate koristiti sučelje naredbenog retka, koristite naredbu DOS where. Treba mu dati opciju R da bi pretraga datoteke bila rekurzivna, odnosno da bi se pregledavale sve podmape. Osim njega, obavezno navedite naziv željene datoteke, a izborni parametar može biti dio puta do nje koji znate. Ova naredba također pretražuje, pa ćete navođenjem barem dijela putanje smanjiti vrijeme provedeno na njemu. Na primjer, ako želite dobiti punu staza do datoteka s imenom RM.csv, za koji se zna samo da se nalazi na F disku, naredbu treba napisati ovako: gdje /R f: RM.csv

Nakon što upišete naredbu i njene parametre, pritisnite Enter i na kraju pretrage pronaći ćete potpunu staza u sljedećem retku sučelja. Nažalost, ovdje ne možete odabrati i kopirati samo ovaj redak, stoga desnom tipkom miša kliknite bilo gdje u prozoru, odaberite naredbu “Select All” iz izbornika, a zatim pritisnite Enter. Na taj ćete način u međuspremnik smjestiti sav sadržaj sučelja naredbenog retka, koji se u bilo kojem uređivaču teksta može očistiti od suvišnih redaka.

Otklanjanje pogrešaka jedan je od važnih dijelova procesa razvoja softvera. Što se tiče aplikacijskih programa, to se provodi sredstvima koja rade u korisničkom načinu rada i često su ugrađena u IDE. Ali da biste mogli ispraviti pogreške, na primjer, upravljačkih programa, morate se pokrenuti program za ispravljanje pogrešaka jezgre.

Trebat će vam

  • - administratorska prava na ciljnom računalu.

Uputa

Pokrenite cmd ljusku. Pritisnite gumb "Start" na programskoj traci. Kliknite na "Pokreni..." u izborniku koji se pojavi. Upišite cmd u tekstualni okvir dijaloškog okvira Pokreni program i kliknite U redu.

Sigurnosno kopirajte datoteku boot.ini. Saznajte instalacijski put svoje trenutne kopije Windowsa pomoću naredbe: echo %SystemRoot% Dođite do pogona na kojem je instaliran operativni sustav unošenjem slova uređaja nakon kojeg slijedi dvotočka. Promijenite u njegov korijenski direktorij pomoću naredbe cd. Uklonite sistemske atribute, atribute samo za čitanje i skrivene atribute iz datoteke boot.ini pomoću naredbe attrib, izradite sigurnosnu kopiju pomoću naredbe kopiranja i ponovno postavite atribute: attrib -h -s -r boot.inicopy boot.ini boot ini.oldattrib +h +s +r boot.ini

Ispišite trenutni popis opcija pokretanja. Upotrijebite naredbu: bootcfg /query Pregledajte stavke na popisu i odredite onu iz koje će se kreirati nova konfiguracija s mogućnošću otklanjanja pogrešaka u načinu rada jezgre. Zapamtite ID unosa za pokretanje.

Stvorite novi unos pokretanja pokretanjem naredbe bootcfg s opcijom /copy. Koristite opciju /id da odredite ID unosa koji treba kopirati. Upotrijebite opciju /d za postavljanje imena za prikaz unosa. Na primjer: bootcfg /copy /id 1 /d "Win XP (Debug)" Ponovo navedite opcije pokretanja pomoću naredbe bootcfg s opcijom /query i saznajte ID dodanog unosa.

Omogućite opcije za pokretanje program za ispravljanje pogrešaka a jezgre na unos za pokretanje stvoren u prethodnom koraku. Ako će se otklanjanje pogrešaka obaviti na ciljnom računalu, samo dodajte opciju /debug. Na primjer: bootcfg /debug on /id 2 Ako planirate daljinski ispravljati pogreške s ciljnim računalom povezanim s glavnim strojem preko com priključka, dodatno upotrijebite opcije /port /baud da odredite broj priključka i brzinu prijenosa podataka: bootcfg / debug on /port COM2 /baud 9600 /id 2Ako će se daljinsko otklanjanje pogrešaka izvoditi preko IEEE 1394 sučelja (FireWire kabel), upotrijebite opciju /dbg1394 za omogućavanje odgovarajućeg načina rada i opciju /ch za određivanje broja kanala, na primjer: bootcfg /dbg1394 na /ch 42 /id 2Pogledajte bootcfg zapise o pokretanju s opcijom /query i provjerite jesu li promjene napravljene. Zatvorite prozor ljuske izdavanjem naredbe izlaz.

DEBUG . EXE - poseban sistemski program za unos i postupno izvršavanje programa napisanih u strojnom jeziku ili korištenjem asemblerskih naredbi.

Pritisnite gumb za pokretanje ovog programa. Početak, onda Trčanje, Unesi debug i pritisnite ulazni, kao rezultat bi se program trebao učitati s diska u memoriju.

Nakon dovršetka preuzimanja, na zaslonu će se pojaviti upitna crtica, koja označava da je program za otklanjanje pogrešaka spreman prihvatiti naredbe.

Najviše korišten upute debug :

1. Q- izlaz iz programa.

2. ? - dobivanje pomoći.

3. H(Hexarithmetic) - heksadecimalna aritmetika. Ako iza simbola H biramo 2 broja (svaki ne više od 4 znamenke) odvojena razmakom, dobivamo zbroj i razliku biranih brojeva:

4. R [<имя регистра>] - rad s registrima (od riječi Registar). Instrukcija "R" bez parametra omogućuje pregled sadržaja svih registara, kao i vrijednosti zastavica i naredbe koja se nalazi na offsetu 0100 u segmentu koda. Obično je na offsetu 0100 prva instrukcija programa.

Pomoću ove upute možete unijeti novu vrijednost u jedan registar. Da biste to učinili, nakon naredbe morate unijeti naziv registra:

Kao što vidite, kada su registri prvi put pregledani naredbom r, AX registar je bio 0, a zatim je sadržaj registra promijenjen.

5. U[<сегментный регистр>:]<начальный адрес>, <конечный адрес>– pregled RAM ćelija, počevši od specificiranog pomaka u segmentu specificiranom segmentnim registrom. Naredba U (Unassemble) rastavlja naredbe koje su u memoriji na danoj adresi.

Na primjer, u sljedećem primjeru tražimo naredbe koje se nalaze u CS registru, počevši od adrese 100 i idući do adrese 102.

6. E [<сегментный регистр>:]<смещение>– upisivanje informacija u RAM ćelije.

Kao što je spomenuto, s Debugom možete unositi naredbe i na strojnom i na asemblerskom jeziku. Instrukcija Debug E (Enter) koristi se za unos naredbi u strojnom jeziku . Ovdje se Debug koristi kao tumač za izravan rad s mikroprocesorom. Možete postaviti strojne upute, zapisati ih na određeno mjesto u RAM-u, obično počevši od pomaka 0100 u odnosu na početak segmenta koda. Zatim izvršite korak po korak (jednu naredbu odjednom) ili cijeli program odjednom.

Budući da mikroprocesor razumije samo binarne brojeve (skraćeno se mogu pisati heksadecimalno), kodovi strojnih instrukcija također su zapisani u obliku heksadecimalnih brojeva, a naredbe su jedno-, dvo-trobajtne itd.

Na primjer, instrukcija za dodavanje vrijednosti iz AX i BX registara je dvobajtna i ima strojni kod 01D8.

Uputa “E<смещение>” prilikom rada ispisuje u sljedećem redu nakon unosa adresu koja se sastoji od dva broja i staru vrijednost bajta na ovoj adresi:<содержимое CS>:<смещение><значение байта>, tada računalo čeka da se unese nova vrijednost bajta.

Da biste unijeli, na primjer, dvobajtnu strojnu instrukciju 01D8, trebate napisati 01 u segmentu koda na pomaku 100, a D8 na pomaku 101:

7. T(iz Tracing) - pokretanje programa koji se nalazi u RAM-u na adresi 0100 u načinu korak po korak. Za pozivanje programa na izvršenje potrebno je prvo paziti da IP registar (brojač instrukcija) sadrži broj 0100.

8. A<смещение> – unos naredbe asemblera (iz Skupštine). Prvu naredbu programa treba unijeti od offseta 0100. Zatim sustav čeka na sekvencijalni unos naredbi asemblera. Za završetak unosa pritisnite Enter nakon praznog retka.

Primjer. U RAM uvodimo program na asemblerskom jeziku koji izvodi zbrajanje dvaju brojeva. Postavite početnu adresu na sljedeći način: A 0100 .

Debugger će vratiti vrijednost adrese segmenta koda i pomak kao xxxx:0100. Sada možete unijeti svaku naredbu, završavajući tipkom Enter.

Prije izvršavanja programa, provjerimo generirane strojne kodove naredbom U. Trebate reći debuggeru adrese prve i zadnje naredbe koje želite pogledati, u ovom slučaju 0100 i 0106. Unesite: U 100, 106

Kao što vidite, strojni kodovi su ispravno generirani.

Naredbom R prikazujemo sadržaj registara i prvu naredbu našeg programa:

Pomoću T naredbi izvršavamo redom sve programske naredbe:

Ovo je način na koji se programi na asemblerskom jeziku unose i prate.

Proučimo ostatak Debug naredbi, nakon čega ćemo se vratiti na primjer.

9. G(from Go) - pokretanje programa koji se nalazi u RAM-u na adresi 0100. Za pozivanje programa na izvršenje potrebno je prethodno voditi računa da IP registar (brojač naredbi) sadrži broj 0100.

10. N<имя.com-файла>– postavlja naziv programa (Name) za njegovo naknadno pisanje na disk ili čitanje s diska. Prije pisanja morate prvo upisati 0 u BX registar, a veličinu programa (u bajtovima) u CX registar.

11. W(od Write) - pisanje programa na disk. Nakon izvršenja instrukcije “W” na disku će se u trenutnom direktoriju pojaviti datoteka s nastavkom .COM - točna kopija unesenog programa.

programe s diska na RAM. Naziv programa je unaprijed postavljen pomoću naredbe N.

Vratimo se primjeru zbrajanja dvaju brojeva. Postoje tri koraka za snimanje ovog programa na disk:

1. dajte naziv programu;

2. navesti duljinu trajanja programa;

3. napraviti snimak.

1. Dodijelite naziv budućoj datoteci pomoću naredbe N.

2. Program se sastoji od četiri dvobajtne instrukcije, zauzima adrese s pomacima od 0100 do 0106, što znači da mu je duljina 8 bajtova. Veličina Debug programa pohranjena je u paru registara. U našem slučaju, vrijednost duljine stane u jedan registar, tako da jednostavno postavljamo visoki registar para na nulu: BX=0, CX=8.

3. Za pisanje programa na disk koristite W program.


BILJEŠKA
Crteži na ovoj stranici nisu prikazani, ali ih možete pronaći u knjizi.


Da bismo pomoću Debuga napisali program koji već poznajemo, učinit ćemo sljedeće (pretpostavlja se da ste već pokrenuli Debug i vidjeli crni ekran s malom trepćućom crticom u gornjem lijevom kutu).

Unesite slovo "a" (podsjećam vas zadnji put - sve naredbe se unose na engleskom) i pritisnite ENTER.

Zatim unesite program pritiskom na ENTER na kraju svakog retka:

0B72: 0100 MOV AH, 02 0B72: 0102 MOV DL, 41 0B72: 0104 INT 21 0B72: 0106 INT 20 0B72: 0108 1.6.

NAPOMENA 1
Imajte na umu da se sve numeričke vrijednosti pišu bez h na kraju. To je zato što Debug radi samo sa heksadecimalnim brojevima i ne mora mu se reći u kojoj su bazi podaci uneseni.

NAPOMENA 2
Nakon unosa naredbe -a pojavljuju se znakovi: 0B72: 0100. U vašem slučaju prva četiri znaka mogu biti drugačija, ali nas još ne zanimaju. Što mislite što znači broj 0100? Sjećate li se direktive ORG 100h (vidi odjeljak )? Ovdje je adresa na kojoj počinje izvršavanje programa. To jest, prva naredba programa (za COM datoteke) unosi se u memoriju s ovom adresom. Svaka naredba zauzima 2 bajta, tako da će sljedeća adresa biti 0102, i tako dalje.

Već znamo same naredbe (vidi odjeljak ), pa ih nećemo ovdje opisivati.

Program je napisan - trebate provjeriti njegov rad. Ponovno pritisnite ENTER tako da se na ekranu pojavi crtica, što označava da možete unijeti naredbu za Debug. Zatim unesite naredbu g (od engleskog "GO") i pritisnite tipku ENTER. Na ekranu ćemo vidjeti sljedeće:

G A Program je završio normalno - Ovdje je A isto slovo koje se prikazuje na ekranu kao rezultat programa. Zatim dolazi poruka o normalnom završetku programa (može se razlikovati ovisno o verziji Debuga).

A sada, ako ste zainteresirani, možete provjeriti program u načinu korak po korak, odnosno promatrati kako se naredbe izvršavaju jedna po jedna. Da biste to učinili, morat ćete ponovno upisati tekst programa (ne zaboravite prvo unijeti naredbu a), zatim:

Unesite naredbu t i pritisnite tipku ENTER. Vidjet ćemo nešto poput ovoga:

AX=0200 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=0B72 ES=0B72 SS=0B72 CS=0B72 IP=0102 NV GORE EI PL NZ NA PO NC 0B72:0102 B241 MOV DL,41 Ovo nije ništa drugo nego stanje registara procesora nakon izvođenja prve linije programa. Kao što vidite, u registar AH upisan je broj 02. U donjem redu nalazi se adresa naredbe i sama naredba koja će se sljedeća izvršiti.

AX=0200 BX=0000 CX=0000 DX=0041 SP=FFEE BP=0000 SI=0000 DI=0000 DS=0B72 ES=0B72 SS=0B72 CS=0B72 IP=0104 NV GORE EI PL NZ NA PO NC 0B72:0104 CD21 INT 21 MOV DL, 41 instrukcija, kao što je i trebala, upisala je broj 41 u DL registar.

Ponovno upišite naredbu t i pritisnite tipku ENTER. Vidjet ćemo sljedeće:

AX=0200 BX=0000 CX=0000 DX=0041 SP=FFE8 BP=0000 SI=0000 DI=0000 DS=0B72 ES=0B72 SS=0B72 CS=0347 IP=0225 NV GORE EI PL NZ NA PO NC 0347:0225 80FC4B CMP AH,4B Naredba CMP AH,4B nije u našem programu. Naš program je završio svoj posao. Dugo možemo unositi naredbu t - dobit ćemo status registara. Zašto se to događa, još nas ne zanima. Bolje da upišemo naredbu g i pritisnemo tipku ENTER, pa ćemo konačno izvršiti naš program i vidjeti ono što smo već vidjeli.

Program je napisan i testiran. Ali kako ga učiniti neovisnim, odnosno kako napraviti COM datoteku? Uostalom, ono što smo napravili radi samo s Debugom. Za izradu izvršne datoteke morate odgovoriti na nekoliko pitanja:

  1. Koja će veličina biti naša datoteka? Izvršavanje programa počinje na adresi 0100h, a zadnji red u programu sadrži adresu 0108h. To znači da će veličina datoteke biti 8 bajtova (108h - 100h = 8).
  2. Kako ćemo imenovati našu datoteku? Ali barem kako. Međutim, preporučuje se davanje engleskih imena datotekama koja ne sadrže više od 8 znakova (DOS je ugodniji za rad). Nazovimo, na primjer, debug_1.com
Sada učinimo sljedeće:
  1. Napišimo ponovno naš program (vježbajte, vježbajte...).
  2. Zapišite veličinu datoteke u CX registar. Da biste to učinili, unesite naredbu r cx i pritisnite ENTER. Zatim unesite veličinu datoteke (8 bajtova) i pritisnite ENTER.
  3. Upišite naredbu n nakon koje slijedi jedan razmak i naziv datoteke. Pritisnimo ENTER.
  4. I na kraju, unesite naredbu w i pritisnite ENTER.
Kao rezultat svih ovih radnji, sljedeće informacije će se pojaviti na ekranu (vidi također sl. 1.7): -r cx SH 0000:8 -n debug_1.com -w Zapis: 00008 bajtova - Ako radite u DOS emulaciji modu iz WINDOWS-a, tada će datoteka debug_1.com biti spremljena na radnu površinu ili u mapu trenutnog korisnika. Ovisi o verziji WINDOWS-a i/ili postavkama. Sada se može pokrenuti kao normalan program. Ako ovu datoteku niste pronašli u navedenim mapama, pronađite je kroz pretragu datoteka. Pa, ako ne znate kako to učiniti, pogledajte knjigu Computer for Dummies.

Osjećam da smo već umorni. Debug se napušta naredbom q.

Stječući snagu i strpljenje, istražimo još jednu opciju Debug - disassembler. Pomoću njega možete rastaviti bilo koju COM datoteku (to jest, izvršiti radnju obrnutu od asemblera - pretvoriti izvršnu datoteku u izvorni kod u asemblerskom jeziku). Pretpostavimo da imate program koji niste vi napisali - ne znate njegov izvorni kod, ali ga stvarno želite vidjeti. Za to i služi rastavljač.

Dakle, program Debug je zatvoren za nas. Upisujemo u naredbeni redak:

Debug debug_1.com (gdje je debug_1.com naziv datoteke koju želimo rastaviti) i pritisnite ENTER.

BILJEŠKA
Ako se program ne pokrene, tada morate navesti punu stazu do njega, na primjer

C:\WINDOWS\COMMAND\debug debug_1.com Ako se program pokrenuo, ali je dao pogrešku (na primjer: Greška 1282 ili "Datoteka nije pronađena"), trebate navesti punu stazu do datoteke, na primjer: C:\ WINDOWS\COMMAND\debug C:\MYPROG\debug_1.com Ako ni to nije uspjelo, možda ste pogriješili negdje u putu ili put ne zadovoljava zahtjeve DOS-a. U ovom slučaju, bolje je postaviti program u korijen pogona C, odakle se jamči da će se učitati duž staze "C:\debug_1.com".

Ako je Debug pokrenut bez poruka o pogrešci, tada unesite naredbu u i pritisnite ENTER. Evo što ćemo vidjeti (približno, također pogledajte sliku 1.8):

U 0BC6:0100 B402 MOV AH, 02 0BC6:0102 B241 MOV DL, 41 0BC6:0104 CD21 INT 21 0BC6:0106 CD20 INT 20 0BC6:0108 56 PUSH SI 0BC6:0109 2E CS: 0BC6:010A 8A01c MOV AL 0 0BC6: 010E 741A JZ 012A 0BC6: 0110 3C3A CMP AL, 3A 0BC6: 0112 750D JNZ 0114 2E CS: 0BC6: 0115 807C0100 CMP 0, 00 0BC6: 0119 750 750 :011F EB09 JMP 012A - Pogledajte prva četiri retka. Prepoznajete li? Ovo je naš program. Preostali redovi nas ne zanimaju (to su upute zaostale iz programa ili podataka koji su radili prije pokretanja Debuga). Pa, ako razmatramo nepoznatu datoteku, kako da znamo gdje završava program, a počinje "smeće"? Ugrubo se to može učiniti prema veličini datoteke (za vrlo male programe). Veličina se može vidjeti u svojstvima datoteke. Samo imajte na umu da je u svojstvima datoteke veličina navedena u decimalnom obliku, a Debug nam daje heksadecimalne adrese. Stoga ćete morati pretvoriti decimalni broj u heksadecimalni.

Postoji još jedna opcija (koja također nije uvijek prihvatljiva) - pronaći na rezultirajućem popisu redak koji sadrži naredbu za izlaz iz programa (INT 20).

Ako je program velik, tada popis njegovih naredbi neće stati na zaslon. Zatim ponovno unesite naredbu u i pritisnite ENTER. I tako do kraja programa.

Možda nećete vidjeti svoj program na ekranu. To može biti zbog činjenice da se program iz nekog razloga nije učitao ili zbog nepodudaranja adresa. Budite oprezni: obratite pozornost na memorijske adrese koje su navedene u lijevom stupcu. Naš program počinje na adresi 0100. Ako je adresa drugačija, onda to, prema tome, nije naš program.

DEBUG debugger dizajniran je za rješavanje širokog spektra problema. To uključuje, na primjer, sljedeće zadatke: proučavanje trenutnog sadržaja RAM-a; rastavljanje .COM i .EXE datoteka, razvoj i otklanjanje pogrešaka vlastitih programa u asemblerskom jeziku; proučavanje rada programa i njihove izmjene; testiranje periferne opreme za rad s ulazno/izlaznim portovima izravno (online); proučavanje komandnog sustava procesora, BIOS prekida i MS-DOS-a.

Postoje dva načina za pokretanje programa za ispravljanje pogrešaka:

debug (Enter) ili debug filename (Enter)

Nakon pokretanja debugger se učitava u RAM, a sadržaji segmentnih registara CS, DS, ES, SS učitavaju se na prvi slobodni paragraf odmah iza samog debuggera. IP registar je postavljen na 100.

DEBUG debugger ima poseban pokazivač adrese podataka koji se koristi prema zadanim postavkama u mnogim naredbama debuggera.

Nakon pokretanja debuggera, crtica [-] se pojavljuje na lijevoj strani ekrana, što označava da debugger čeka naredbu. Sve brojeve interpretira debugger u heksadecimalnom zapisu.

NAREDBE ZA DEBUG

A je uputa za sastavljanje. Ova naredba vam omogućuje unos programa pomoću mnemotehnike naredbi u RAM. Unos naredbe programa za ispravljanje pogrešaka

I<число>(Unesi)

uzrokuje da prijeđe u način primanja naredbi s tipkovnice i njihovo uzastopno postavljanje, počevši od adrese koja je jednaka onoj navedenoj u naredbi. Dvije popularne asemblerske instrukcije DB i DW mogu se koristiti prilikom tipkanja. Na primjer:

DB 1,2,3”PRIMJER”

DW 1000,2000,”FFFF”

Debugger održava mnemotehniku ​​za sve instrukcije procesora, kao i za koprocesor 80X87. Prilikom sklapanja JMP i CALL instrukcija, standardno se, ako je moguće, koristi KRATKA varijanta ovih instrukcija. Ali možete navesti NEAR ili FAR prije adrese skoka, što će dovesti do generiranja odgovarajućih naredbi. Mnemotehnika za naredbu RET koja odgovara CALL FAR je RETF. Moguće je, au dvojbenim slučajevima i potrebno, koristiti pokazivače WORD PTR ili BYTE PTR. Prilikom ulaska u program dopušteno je ispisati prefikse CS:, ES:, SS: ispred naredbe u istom retku.

Primjer. Program za popunjavanje zaslona simbolom “!”.

Upišite A 200 (Enter), zatim unesite program

Na kraju programa nalazi se naredba INT 20 koja vraća kontrolu natrag na monitor naredbi programa za ispravljanje pogrešaka. Pokrenite ovaj program na naredbu

C - usporedba. Ova naredba uspoređuje dvije memorijske regije bajt po bajt i ispisuje sve razlike između njih u obrazac

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

U ovom unosu podaci o prvom memorijskom području dani su s lijeve strane, a podaci o drugom s desne strane.

Primjer. Usporedite dva bloka memorije duljine 256 bajta. Prvi počinje na adresi 100, a drugi na adresi 300.

Da biste to učinili, morate upisati

C 100L100 300 (Unesi)

Ova naredba može biti korisna, na primjer, kada se provjerava identitet dviju disketa. Da bismo to učinili, odgovarajući blokovi ovih disketa koje nas zanimaju učitavaju se u susjedna memorijska područja, koja se zatim analiziraju C naredbom.

D - RAM dump. Ova naredba daje zaslonu ispis navedenog područja RAM-a, predstavljenog u heksadecimalnom obliku, a na desnoj strani daje njihov simbolički prikaz. Štoviše, kombinacije kodova koje nemaju simbolički prikaz u ASCII standardu prikazane su kao točke. Niz prikazuje šesnaest bajtova. U ovom slučaju, puna adresa krajnjeg lijevog bajta prikazana je s desne strane. Tako se u jednom redu nalazi heksadecimalni dump, kao i ASCII dump šesnaest bajtova RAM-a. Ako se naredba D zada bez parametara, tada se na ekranu u osam redaka prikazuje ukupno 128 bajtova (80H). Svaki redak ima znak "-" koji dijeli 16 bajtova na pola: između osmog i devetog bajta.

Primjer. Pogledajte pokazivače vektora prva trideset i dva prekida (20H).

Mora se unijeti naredba

D 0:0.7F (Unos)

E - naredba za promjenu sadržaja bajtova. Ova naredba vam omogućuje pregled sadržaja memorije unaprijed i unatrag, bajt po bajt i, ako je potrebno, promjenu sadržaja bajtova koje gledate.

Unos naredbe:

E<адрес>(Unesi)

Uzrokuje prebacivanje programa za ispravljanje pogrešaka u način uređivanja jednog bajta. Ovo ispisuje sadržaj trenutnog bajta u heksadecimalnom obliku nakon čega slijedi točka. Nakon toga možete upisati vrijednost novog sadržaja bajta, ali također možete ostaviti sadržaj bajta isti bez da išta upisujete. Zatim trebate upisati jedan od tri kontrolna znaka:

a) "razmak", što znači prijelaz na uređivanje sljedećeg bajta;

b) "Uđi". Ovo će izaći iz moda za uređivanje bajtova na razinu naredbi programa za ispravljanje pogrešaka;

u) "-". Pritiskom na ovaj znak prelazi se na uređivanje prethodnog bajta.

Primjer. Promijenite vrijednost brojača sata sustava.

Upišimo naredbu

i upišite četiri broja 70 70 70 70 odvojena razmacima, nakon čega slijedi povratak na novi red 0D. Zatim izađite iz programa za ispravljanje pogrešaka i pokrenite vremensku naredbu operativnog sustava.

F - naredba za punjenje. Ova naredba vam omogućuje da ispunite sadržaj navedenog raspona RAM-a ponavljajućim nizom danih bajtova i vrijednosti. Konkretno, kada se lanac sastoji od jednog bajta, ova naredba vam omogućuje da resetujete željeno memorijsko područje kada je bajt nula, kao i da stavite jedan u sve bitove, ispunjavajući ga bajtom jednakim FF.

Naredba ima sljedeću sintaksu:

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

Primjer. Ispunite memorijsko područje počevši od adrese DS:0100 nulama za ukupno 16384 bajta (4000 16).

F 100L4000 00 (Unesite)

Provjerite po timu

D 100L4000 (Unesi)

G - naredba za pokretanje programa programa. Ova naredba je dizajnirana za pokretanje programa za izvršenje. U tom slučaju, ako se područje memorije u kojem su pohranjeni podaci prenese na kontrolu kao program, računalo se "zamrzne" i potrebno ga je ponovno pokrenuti. U slučaju kada program ima ozbiljne pogreške (na primjer, nema INT 20 povratne naredbe na razinu naredbe debuggera), pokušaj njegovog izvršenja pomoću G naredbe također uzrokuje zamrzavanje računala.

Ovaj se operator obično koristi u jednom od sljedeća četiri oblika:

Izvršenje ovog operatora svodi se na prijenos kontrole na CS:IP adresu. Vrijednosti CS i IP mogu se pronaći upisivanjem naredbe R (Enter) za ispis svih registara procesora;

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

U tom slučaju, program se pokreće na navedenoj adresi.

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

U tom slučaju se program pokreće sa CS:IP adrese, a kada se dođe do operatora sa navedenom adresom, vrši se BREAK-stop izvršavanja programa. Uobičajena pogreška početnika je izostavljanje znaka jednakosti pri korištenju naredbe G. U tom slučaju navedena adresa se percipira kao adresa prekida, a ako je CS:IP pokazao na, na primjer, podatkovno područje, tada će računalo "objesiti".

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

u ovom slučaju, program se pokreće s adrese naznačene iza znaka “=”, a ako program dođe do naredbe s vrijednošću adrese označene sekundom (druga adresa), zaustavlja se. Ovakav način zaustavljanja programa naziva se uvođenje točke prekida. Kada se specificira prijelomna točka, odgovarajući bajt naredbe na toj adresi zamjenjuje se naredbom INT 3, koja ima veličinu od 1 bajta. Kada se dosegne kontrolna točka, izvorna vrijednost bajta se vraća.

Prvo unesite program (naredbom A 100):

MOV, 1234

DEC BX ;ovdje postavite prijelomnu točku

Pokrenite program naredbom G=100 109 (Enter) Nakon što je stigao na adresu 109, program se zaustavio i dao kompletan dump registara.

H - heksadecimalna aritmetička naredba. Ova naredba vam omogućuje da dobijete zbroj i razliku dva heksadecimalna broja navedena u naredbi.

Kao odgovor dobivamo 1 (zbroj) i FFFF (razlika).

I - ulazna naredba iz porta. Ova naredba vam omogućuje čitanje sadržaja I/O porta s navedenom adresom, ispisivanjem na ekranu u heksadecimalnom obliku.

Sintaksa naredbe:

ja<адрес_порта>(Unesi)

U ovom slučaju primit ćemo sadržaj porta B od programabilnog perifernog sučelja 82.

L je naredba za dizanje s diska. Ova naredba vam omogućuje učitavanje logičkih sektora s disketa i tvrdih diskova, kao i pojedinačnih datoteka. Učitavanje sektora s diska vrši se naredbom:

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

Ovdje "adresa" označava početnu adresu u RAM-u, počevši od koje će se sadržaji blok-sektora postavljati uzastopno. Varijabla “broj diska” označava s kojeg će se diska učitati. Broj 0 označava disk A, broj 1 disk B, broj 2 disk C itd. Sljedeće dvije varijable pokazuju od kojeg sektora počinje čitanje i ukupan broj pročitanih sektora.

Učitajte BOOT blok s diskete A: u RAM počevši od adrese DS:1000 za što je potrebno izvršiti naredbu

L 1000 0 0 1 (Unesi)

Zatim se naredbom može ispisati sadržaj bloka BOOT

D1000L200 (Unesi)

a također i rastaviti

U 1000L200 (Unesi)

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

Zatim trebate izvršiti naredbu L bez argumenata. Kao rezultat ovih radnji, datoteka (osim datoteka s nastavkom EXE) bit će učitana u RAM počevši od adrese CS:100. Ako datoteka koja se učitava ima ekstenziju EXE, debugger će učitati datoteku počevši od CS:0. Broj pročitanih bajtova pohranjuje se u par registara BX:CX nakon izvršenja L instrukcije.

M - naredba kopiranja Ova naredba kopira sadržaj dijela RAM-a u drugo područje RAM-a. Sintaksa naredbe je sljedeća:

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

Ovdje "raspon" označava područje memorije koje se kopira, a "start_address" označava adresu prvog bajta iz kojeg se kopiraju podaci. Ova se naredba može koristiti za privremeno spremanje sadržaja RAM-a, a zatim ga vratiti.

Prvo, pogledajmo sadržaj memorije:

D100L100 (Unesi)

Zatim spremamo dio memorije, počevši od adrese

M 100L100 1000 (Unesi)

Snimanje izvornog sadržaja

F 100L100 0 (Unesi)

Provjerimo nuliranje

D100L100 (Unesi)

I konačno vratite izvorni sadržaj

M 100L100 100 (Unesi)

N - naredba imena. Ova naredba, prije svega, određuje naziv datoteke, koja će se zatim ili pročitati s diska naredbom L ili zapisati na disk naredbom W. Sintaksa ove naredbe je sljedeća:

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

Očitajmo datoteku AUTOEXEC.BAT s diska u RAM. Da bismo to učinili, mi ćemo izvršiti

N C:\AUTOEXEC.BAT (Unos)

Par registara BX:CX će sadržavati duljinu preuzete datoteke u bajtovima.

O - naredba za izlaz podataka u port. Ova naredba vam omogućuje izlaz navedenog bajta na port s danom adresom. Koristan je za testiranje rada periferije i kućišta na matičnoj ploči u interaktivnom načinu rada. Sintaksa naredbe:

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

Ovdje je umjesto "address_port" adresa potrebnog porta zamijenjena u rasponu 0-FFFF, a umjesto "value" - vrijednost koja se zatim učitava u port. Ako je priključak 16-bitni, tada "vrijednost" može biti 4-znamenkasti heksadecimalni broj koji se učitava u priključak.

Pogonski motor A: za disketu, možete ga uključiti sljedećom naredbom

O 3F2 10 (Enter)

R je naredba praćenja visoke razine. Ova naredba, kao i naredba T, namijenjena je praćenju programa. Međutim, za razliku od T traga, ovaj trag je manje detaljan. Ne prati pomno potprograme i programske prekide, niti prati petlje LOOP i instrukcije niza koji se ponavljaju. Kao i u slučaju T-tracinga, nakon svake instrukcije ispisuje se sadržaj svih registara i sljedeća izvršna instrukcija. Sintaksa naredbe:

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

Možete izostaviti bilo koju od dvije opcije naredbenog retka:<адрес>i/ili<число_команд>. Parametar<адрес>specificira početnu adresu s koje će se izvoditi praćenje i parametar<число_команд>pokazat će ukupan broj naredbi koje će se izvršiti nakon pritiska tipke (Enter). Obavezno je unijeti znak “=” prilikom navođenja adrese kako ne bi došlo do brkanja adrese s brojem naredbi koje treba izvršiti. Ova vrsta P-praćenja izuzetno je korisna u proučavanju cjelokupne logike izvođenja programa, eliminirajući dosadu praćenja detalja. Pri početnom proučavanju programa potrebno je započeti s P-tracingom.

Unesite, počevši od adrese 100, sljedeći program

Zatim ćemo provesti P-tracing. Da biste to učinili, prvo unesite naredbu R=100 (Enter), a zatim uzastopno

Nakon toga ćemo provesti uobičajeni detaljni T-tracing

Q je naredba za izlaz iz debuggera. Naredba Q uzrokuje izlazak programa za ispravljanje pogrešaka na sljedeću višu programsku razinu. U tom slučaju radne datoteke se ne spremaju.

R - naredba registra dump/ispravak. Ova naredba omogućuje pregled sadržaja svih registara odjednom, kao i zastavica, ili pregled vrijednosti pojedinačnih registara i registra zastavica uz mogućnost njihove promjene.

daje popis svih registara, kao i naredbu na koju ukazuje CS:IP.

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

ispisuje sadržaj navedenog registra, a zatim ispisuje dvotočku u sljedećem retku. Korisnik tada može pritisnuti tipku (Enter) i izaći natrag na monitor naredbi debuggera ili postaviti novu vrijednost registra prije pritiska tipke (Enter). U potonjem slučaju, stara vrijednost registra bit će zamijenjena novom. Mogući nazivi registara: AX, BX, CX, DX, SP, BP, SI, DI, DS, ES, SS, CS, IP, F (flag registar).

Prilikom korištenja naredbe

imajte na umu da su vrijednosti zastavica kodirane na vrlo specifičan način. Slijedi tablica kodiranja, gdje par znakova s ​​lijeve strane odgovara vrijednosti 0 odgovarajuće zastavice, a s desne vrijednosti jednake 1 (zastavica je postavljena):

Prilikom izvršavanja naredbe

vrijednosti zastavica ispisuju se u retku obrnutim redoslijedom u odnosu na redoslijed tablice. Neposredno nakon toga, na retku se ispisuje znak crtice<->, debugger ulazi u stanje čekanja na unos s tipkovnice. Ako korisnik pritisne samo tipku (Enter), zastavice se neće promijeniti i vratit će se na monitor naredbi debuggera. Međutim, prije toga korisnik može upisati nove vrijednosti za neke oznake prema tablici kodiranja. Redoslijed kojim slijedi nije važan.

S - naredba za traženje. Naredba za traženje uređenog skupa bajtova omogućuje vam traženje određenog niza bajtova u zadanom rasponu RAM-a i ima sintaksu:

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

Odgovor se daje u obliku popisa adresa, počevši od kojih se nalazi navedeni lanac bajtova.

Recimo da trebamo utvrditi pojavljuje li se niz "DOS" u prvih 32K RAM-a. Da biste to učinili, unesite naredbu

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

T - naredba traga. Ova naredba vam omogućuje da izvršite jednu ili više naredbi u načinu praćenja, ispisuje sadržaj svih registara i mnemotehniku ​​sljedeće dekodirane izvršne naredbe. Nakon praćenja trenutne instrukcije, IP pokazivač se pomiče tako da pokazuje na sljedeću instrukciju. Naredba

prati jednu trenutnu naredbu na koju ukazuje CS:IP s odgovarajućom IP promjenom.

T<число>(Unesi)

proizvodi sekvencijalno praćenje nekoliko naredbi, čiji je ukupan broj naveden u naredbi.

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

prati jednu naredbu do navedene adrese.

Opći prikaz T naredbe je sljedeći:

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

Naredba: T=FFFF:0 (Enter)

prati prvu naredbu izvršenu pri prvom pokretanju računala.

U - naredba za rastavljanje. Ova vam naredba omogućuje rastavljanje programa učitanih u radni prostor programa za ispravljanje pogrešaka. Opća sintaksa je:

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

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

uzrokuje rastavljanje 32 bajta, počevši od bajta na koji ukazuje CS:IP, s izlazom rezultirajućeg popisa na zaslonu.

W - naredba za pisanje na disk. Ova naredba vam omogućuje pisanje na disk (disketu ili tvrdi disk) u uzastopnim blokovima navedenog raspona RAM-a, kao i pisanje u datoteke. Zapisivanje u sektore diska vrši se naredbom

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

Ova naredba ne zapisuje više od 80H sektora na disk, broj sektora nije veći od 80. Parametar<адрес>označava adresu glavne memorije, počevši od koje se sadržaj memorije kopira na disk. Parametar<номер диска>označava disk na koji se treba pisati (0-disk A:, 1-disk B:, ..., 80 - tvrdi disk C:). Parametar<начальный сектор>određuje broj logičkog sektora, počevši od kojeg će se učitavati RAM slika. Parametar<число секторов>označava ukupan broj sektora zapisanih na disk.

Kopirajmo sadržaj BIOS područja RAM-a u datoteku na disku. Pod pretpostavkom prisutnosti PC / AT sa standardnom VIOS veličinom od 64K, prvo smo resetirali BX registar, a zatim ga stavili u CX 2000H registar. Zatim naredbom postavljamo naziv datoteke u koju ćemo kopirati stariju polovicu BIOS-a

N BIOS.COM (Enter)

I na kraju zapovijed

W F000:E000 (Unesi)

će zapisati sadržaj BIOS-a u datoteku BIOS.COM.


Najpopularniji povezani članci