%
5. Rozkazy> mikroprocesorów 8086/8088
Przykład
LA HF NOT AH
SAHF; znaczniki sÄ… zanegowane
SAHF (ang. storÄ™ AH register in flags )
zapamiętanie rejestru AH w mniej znaczącym bajcie rejestru znaczników j
Operacja: SFoZFoxoAFoxoPFoxoCF«-AH < 7:0 >; {x- bit nieokreślony} 1
Znaczniki: OF DFIF TF SF ZF AF PF CF 1
- - - - X X X X X
10011110 (M
Liczba taktów - 4. Zobacz przykład dla rozkazu LAHF I
PUSHF (zng.push flags ontostack ) przesłanie rejestru znaczników na szczyt stosu
Operacja: SP +- SP-2; next j
M[SP + 1 ]oM[SP] <-xoxoxoxoOFoDFoIFoTFoSFoZFoxoAFoxoPFoxoCF J
Znaczniki: bez zmian
Liczba taktów -10.
♦
Przykład
PUSHF POP AX AND AH, 0FEH PUSH AX POPF
; znaczniki w akumulatorze ; zerowanie znacznika TF
; zob. opis POPF
POPF (ang. pop flags off stack ) pobranie znaczników ze szczytu stosu
Operacja: xoxoxoxoOFoDFoIFoTFoSFoZFoxoAFoxoPFoxoCF<-M[SP + l]oM[SP]; next SP<-SP+2
Znaczniki: OF DF IF TF SF ZF AF PF CF
X X XXX XX XX
5.3. Rozkazy operacji arytmetycznych i logicznych
powered by
| Mi śiol
słowc^prz^^^^
Zc szczytu stosu wskazywanego przez rejestr SP zostaje pobrane słane następnie do rejestru znaczników. Wskaźnik stosu zostaje zwiększony o 2, wskazując tym samym aktualny szczyt stosu.
10011101 Liczba taktów - 8.
PUSHF
CLI ; zeruj znacznik przerwania
• ••
POPF ; przywróć poprzedni stan znaczników +
Wyróżniamy następujące grupy rozkazów
ADD
AI)C
INC
AAA
DAA
- rozkazy dodawania -dodawanie bajtów lub słów,
-dodawanie bajtów lub słów z przeniesieniem,
-dodawanie jedynki do bajtu lub słowa (inkrementacja),
-poprawka dziesiętna po dodawaniu w rozpakowanym kodzie BCD, -poprawka dziesiętna po dodawaniu w kodzie BCD,
SBB
DEC
NEG
CMP
AAS
DAS
- rozkazy odejmowania SlIB -odejmowanie bajtu lub słowa,
-odejmowanie bajtu lub słowa z pożyczką,
-odejmowanie jedynki od bajtu lub słowa (dekrementacja),
-negacja lub uzupełnienie do 2 bajtu lub słowa,
-porównanie bajtów lub słów.
-poprawka po odejmowaniu w rozpakowanym kodzie BCD, -poprawka dziesiętna po odejmowaniu w kodzie BCD,
• rozkazy mnożenia
MUL -mnożenie bajtów lub słów bez znaku,
IMlJL -mnożenie całkowite bajtów lub słów zc znakiem,
-poprawka po mnożeniu w rozpakowanym kodzie BCD,
* rozkazy dzielenia
IDIV
AAD
CBW
CWD
-dzielenie bajtu lub słowa bez znaku,
-dzielenie całkowite bajtu lub słowa ze znakiem,
-poprawka przed dzieleniem w rozpakowanym kodzie BCD, -zamiana bajtu na słowo,
-zamiana słowa na podwójne słowo.