Mire használható az irányjelző és a nyomkövetés a 8086-ban?
Irányjelző (DF):
- Az irányjelző jelzi az utolsó karakterlánc-művelet irányát (karakterlánc-utasítások, például REP MOVS, REP CMPS stb.).
- Ha DF=0, a karakterlánc-műveletek növelik az adatmutatókat (DS, SI és DI).
- Ha DF=1, a karakterlánc-műveletek csökkentik az adatmutatókat.
Trace Flag (TF):
- A nyomkövetési jelző a program egyszeri lépésére használható hibakeresés során.
- Ha TF=0, a program normálisan fut.
- Ha TF=1, a processzor minden utasítás után egy megszakítást (INT 1) generál, ami lehetőséget ad a programozónak, hogy megvizsgálja a program és a regiszterek állapotát.
Íme egy példa az irányjelző használatának illusztrálására:
``` összeszerelés
; Inicializálja az adatmutatókat
mov si, offset sourceData; Forrásadat-mutató
mov di, offset destData; Cél adatmutató
mov cx, hossz; A másolandó bájtok száma
; Másolja az adatokat a forrásból a célba növekvő sorrendben
rep movsb; Bájtok másolása (növekményes mutatók)
; Fordítsa meg az adatsorrendet a célhelyen
mov si, offset destData
mov di, eltolás destData + hossz - 1
mov cx, hossza
; Másolja vissza az adatokat a célhelyről a forrásba csökkenő sorrendben
rep movsb; Bájtok másolása (mutatók csökkentése)
```
A fenti példában az irányjelzőt a karakterlánc-másolási műveletek irányának szabályozására használjuk. A DF kezdetben 0-ra van állítva, így az első REP MOVSB növekvő sorrendben másolja a bájtokat a sourceData-ból a destData-ba. Ezután a DF értéke 1, a második REP MOVSB pedig csökkenő sorrendben másolja vissza a bájtokat a destData-ból a sourceData-ba.
A nyomkövetési jelzővel egy-egy utasítással lépkedhetünk végig a programon, ami hasznos a hibakereséshez. A nyomkövetési jelző használatához beállíthatja az INT 3 (töréspont) utasítással vagy egy hibakereső használatával. Ha a nyomkövetési jelző be van állítva, a processzor minden utasítás után megszakítást generál, amely lehetővé teszi a program és a regiszterek állapotának vizsgálatát.