Vlajka pasti - Trap flag
![]() | tento článek je napsán jako manuál nebo průvodce.Únor 2016) (Zjistěte, jak a kdy odstranit tuto zprávu šablony) ( |
![]() | tento článek ne uvést žádný Zdroje.Září 2011) (Zjistěte, jak a kdy odstranit tuto zprávu šablony) ( |
A vlajka pasti povoluje provoz a procesor v jedno-krok režimu. Pokud je takový příznak k dispozici, debuggery jej může použít k provedení procesu a počítačový program.
Jednostupňové přerušení
Když je systém instruován k jednostupňovému provedení, provede jednu instrukci a poté se zastaví. Lze zkoumat obsah registrů a paměťových míst; pokud jsou správné, lze systému říct, aby pokračoval a provedl další instrukci. The Intel 8086 vlajka pasti a typ-1 přerušit Odezva usnadňuje implementaci jednokrokové funkce v systému založeném na 8086. Je-li nastaven příznak trapu, 8086 automaticky provede přerušení typu 1 po provedení každé instrukce. Když 8086 provede přerušení typu 1, posune registr příznaků na zásobník.
Nastavení
The 8086 nemá žádné pokyny k přímému nastavení nebo resetování příznaku trapu. Tyto operace se provádějí zatlačením na příznakový registr na zásobníku, změnou bitu příznaku depeše na to, co si programátor přeje, a následným vysunutím registru příznaků zpět ze zásobníku.
PUSHF ; Zatlačte vlajky na zásobníkMOV BP, SP ; Zkopírujte SP do BP pro použití jako indexNEBO SLOVO PTR [BP + 0], 0100H ; Nastavit příznak TFPOPF ; Obnovit příznak Registrovat
Vlastně tímto způsobem nepoužíváte příznak Trap, protože normálně monitorujete program z ISR. Pokračujete v provádění programu pomocí IRET.
Int3ServiceRoutine:; Zásobník: Ret, vlajky PUSHA ; Zásobník: Ret, Flags, AX, CX, DX, BX, SP, BP, SI, DI PUSH DS PUSH ES ; Zásobník: Ret, Flags, AX, CX, DX, BX, SP, BP, SI, DI, DS, ES ... kód ISR pouze s použitím celého čísla (jinak musíte také ukládat registry s plovoucí desetinnou čárkou) MOV BP, SP ; Zásobník: Ret, Flags, AX, CX, DX, BX, SP, BP, SI, DI, DS, ES MOV BP, [BP + 10] ; Uloženo SP NEBO SLOVO PTR [BP + 0], 0100H ; Nastavit příznak TF v uloženém registru příznaků POP ES POP DS POPA IRET ; pokračujte v provádění JEDNÉ instrukce a poté znovu zavolejte ISR.
Resetování
Chcete-li resetovat příznak trapu, jednoduše nahraďte instrukci OR v předchozím pořadí instrukcí:
- AND WORD PTR [BP + 0], 0FEFFH
Příznak pasti se resetuje, když 8086 provede přerušení typu 1, takže jednokrokový režim bude během procedury přerušení služby deaktivován.
|