Čemu služe zastavica smjera i trag u 8086?
Zastavica smjera (DF):
- Zastavica smjera označava smjer posljednje operacije niza (instrukcije niza kao što su REP MOVS, REP CMPS, itd.).
- Kada je DF=0, operacije nizova povećavaju pokazivače podataka (DS, SI i DI).
- Kada je DF=1, operacije nizova smanjuju pokazivače podataka.
Oznaka praćenja (TF):
- Oznaka praćenja koristi se za jednokratno prolaženje kroz program tijekom otklanjanja pogrešaka.
- Kada je TF=0, program se izvršava normalno.
- Kada je TF=1, procesor generira prekid (INT 1) nakon svake instrukcije, dajući programeru priliku da ispita stanje programa i registre.
Evo primjera za ilustraciju upotrebe oznake smjera:
```sklop
; Inicijalizirajte pokazivače podataka
mov si, offset sourceData; Pokazivač izvornih podataka
mov di, offset destData; Pokazivač odredišnih podataka
mov cx, duljina; Broj bajtova za kopiranje
; Kopirajte podatke od izvora do odredišta uzlaznim redoslijedom
rep movsb; Kopiraj bajtove (inkrementiraj pokazivače)
; Obrnuti redoslijed podataka u odredištu
mov si, offset destData
mov di, offset destData + length - 1
mov cx, duljina
; Kopirajte podatke s odredišta natrag u izvor silaznim redoslijedom
rep movsb; Kopiraj bajtove (smanji pokazivače)
```
U gornjem primjeru, oznaka smjera koristi se za kontrolu smjera operacija kopiranja niza. U početku je DF postavljen na 0, tako da prvi REP MOVSB kopira bajtove iz izvornih podataka u odredišne podatke uzlaznim redoslijedom. Zatim je DF postavljen na 1, a drugi REP MOVSB kopira bajtove natrag iz destData u sourceData silaznim redoslijedom.
Oznaka praćenja može se koristiti za prolazak kroz program jednu po instrukciju, što je korisno za otklanjanje pogrešaka. Da biste koristili oznaku praćenja, možete je postaviti pomoću instrukcije INT 3 (prijelomna točka) ili pomoću programa za ispravljanje pogrešaka. Kada je zastavica praćenja postavljena, procesor će generirati prekid nakon svake instrukcije, omogućujući vam da ispitate stanje programa i registara.