Czy są jakieś instrukcje dotyczące montażu, które pozwolą nam bezpośrednio "ustawić" lub "wyczyścić" flagi "OF" i "TF" w 16-bitowym rejestrze Intel 8086 firmy Intel? Jeśli nie, to jakiego pseudo kodu powinniśmy użyć?Instrukcja montażu ustawienia, czyszczenia flag OF i TF
Odpowiedz
http://en.wikipedia.org/wiki/Trap_flag
8086 ma dyspozycję bezpośrednio ustawić lub wyzerować flagę pułapkę. Operacje te są wykonywane poprzez naciśnięcie rejestru flag na stosie, zmianę bitu flagi pułapki na to, co programista chce, a następnie ponowne otwarcie rejestru flag z powrotem ze stosu. Instrukcje, aby ustawić flagę pułapki są:
PUSHF ; Push flags on stack
MOV BP,SP ; Copy SP to BP for use as index
OR WORD PTR[BP+0],0100H ; Set TF flag
POPF ; Restore flag Register
Aby wyzerować flagę pułapki, wystarczy wymienić lub instrukcja w poprzednim sekwencji z instrukcją:
AND WORD PTR[BP+0],0FEFFH
Aby ustawić i wyczyść flagę przepełnienia, można zrobić to samo, zastępując 0100H
z 0800H
i 0FEFFh
z 0F7FFh
.
Pamiętaj, aby wiedzieć, co robi TF
przed ustawieniem. To pułapka.
Jaki jest powód robienia 'mov bp, sp' i korzystania z * bp * rejestru, kiedy możesz po prostu zrobić' lub słowo [sp], 0100h' używając wyłącznie * sp * register? – golem
ponieważ 8086 działa w 16-bitowym trybie rzeczywistym, nie ma takiego sposobu na wprowadzenie słowa [sp], ponieważ jedynymi możliwymi rejestrami bazowymi w operand pamięci są BX, BP, SI i DI. – hlide
Czy przeczytałeś [Instrukcje Intel] (http://www.intel.com/content/www/us/en/processors/architectures-software-developer-manuals.html) zanim zadasz to pytanie? – DCoder
http://en.wikipedia.org/wiki/Trap_flag –
@DCoder czy kiedykolwiek znalazłeś pseudo kod na coś takiego w podręcznikach Intela przed opublikowaniem komentarza?! –