assembler€86ˆ 3

assembler€86ˆ 3



146    5. Rozkazy mikroprocesorów 8086/8088

Tablica 5.11. Przykładowe wykorzystanie skoków warunkowych

Skok wykona siÄ™.gdy    Porównywane argumenty

bez znaku    ze znakiem

AX = BX

JE lub JZ

JE lub JZ

AX*BX

JNE lub JNZ

JNE lub JNZ

AX>BX

JA lub JNBE

JG lub JNLE

AX > BX

JAE lub JNB

JGElubJL*

AX<BX

JB lub JNAE

JL lub JNGE

AX < BX

JBE lub JNA

JLE lub JNG

Wszystkie adresy skoków warunkowych muszÄ… mieÅ›cić siÄ™ wewnÄ…trz segmentu i nie mogÄ… być odlegÅ‚e od adresu pierwszego bajtu nastÄ™pnego rozkazu o wiÄ™cej niż -128 lub 4-127. Adres skoku jest zakodowany w postaci jednobajtowego dystansu (ang. dis-placment), który w momencie wykonywania skoku jest rozszerzany do 16 bitów i dodawany (z uwzglÄ™dnieniem znaku) do zawartoÅ›ci wskaźnika IP. Do grupy rozkazów skoków należy również zaliczyć rozkazy przerwaÅ„ programowych oraz rozkazy organizujÄ…ce pÄ™tle. Ze wzglÄ™du na ich specyfikÄ™, zostaÅ‚y omówione w oddzielnych punktach.

5.5.1. Skoki bezwarunkowe

JMP (ang.jump) zwykły skok bezwarunkowy

Operacja: zob. opis Znaczniki; bez zmian

Rozkaz powoduje przekazanie sterowania w inne miejsce programu określone adresem (etykietą) będącym argumentem. Rozkazy skoków bezwarunkowych przedstawiono w tabl. 5.12.

Tablica 5.12 Rodzaje skoków bezwarunkowych

Skok bezpośredni

Skok pośredni przez

krótki

długi

rejestr

pamięć

WewnÄ…trz segmentu

tak

tak

tak

tak

Między segmentami

nie

tak

nie

tak

Skok bezwarunkowy bezpośredni krótki wewnątrz segmentu Operacja: IP<-IP + disp

JllOlOll disp

przy czym -128 < disp <127 Liczba taktów -15.

Przykład


JMP SHORT ETYKIETA ; SHORT - zob. rozdz. 4 JMP SHORT ETYKIETA BLISKA

powered by

5.5. Rozkazy sterowania skokami


Mi s i g4T

Skok bezwarunkowy bezpoÅ›redni dÅ‚ugi wewnÄ…trz segmentu Operacja: IP <- IP + disp_highodisp_low 11101001    dispjow    disp high

Liczba taktów -15.

Przykład

JMP ETYKIETA BLISKA

JMP ETYKIETA    *

Skok bezwarunkowy bezpośredni między segmentami

Operacja: CS *- segment highosegment low; IP <- offsethighooffsetlow 11101010    offset Iow    .offset high    seg low    seg high

Liczba taktów -15.

Przykład

JMP ETYKIET ADALEKA

JMP FAR PTR ETYKIET ABLISKA    Â«

Skok bezwaninkowy poÅ›redni przez rejestr wewnÄ…trz segmentu Operacja: IP *- regló 11111111    11100 reg

Liczba taktów -11.

Przykład

JMP BX JMP DI JMP BP

JMP AX    â™¦

Skok bezwaninkowy pośredni przez pamięć wewnątrz segmentu Operacja: IP M[ea + ljoMfea]

U1J_U11    modlOOr/m addr low    addr high

Liczba taktów -18 + takty do obliczenia adresu efektywnego.

Przykład

JMP ZMIENNA SLOWO[BX + 8]

JMP WORD PTR [DI]    4

Skok bezwarunkowy pośredni przez pamięć między segmentami Operacja: IP ^ M[ea + l]oM[ea]; CS — M[ea + 3]oM[ea + 2]


Wyszukiwarka

Podobne podstrony:
assembler?86? 3 86 5. Rozkazy mikroprocesorów 8086/8088 LES - załadowanie adresu logicznego do wsk
assembler?86? 3 106 5. Rozkazy1 mikroprocesorów 8086/8088 SBB (ang. subtract byle or word with bor
assembler?86? 3 166 5. Rozkazy mikroprocesorów 8086/8088 STI (ang. set intemipt enable flag) ustaw
assembler?86? 1 82 5. Rozkazy mikroprocesorów 8086/8088 kod rozkazu (ang. opcode ) - definiuje ope
assembler?86? 2 84 5. Rozkazy mikroprocesorów 8086/8088 Pośrednio przez rejestr bazowy i indeksowy
assembler?86? 4 88 5. Rozkazy mikroprocesorów 8086/8088 MOV ZMIENNAfSI], ES MOV X[BP + DI + 1], SS
assembler?86? 5 W 90    5. Rozkazy mikroprocesorów 8086/8088 PrzykÅ‚ady PUSH ZMIENNA
assembler?86? 6 92    5. Rozkazy mikroprocesorów 8086/8088 Zamiana miejscami zawart
assembler?86? 9 98 5. Rozkazy mikroprocesorów 8086/8088 Pojęcie rozpakowanego i normalnego kodu BC
assembler?86? 2 104 5. Rozkazy mikroprocesorów 8086/8088 Przykłady 104 5. Rozkazy mikroprocesorów
assembler?86? 4 108 5. Rozkazy mikroprocesorów 8086/8088 PrzykÅ‚ady DEC SI DEC AX    
assembler?86? 7 114    5. Rozkazy mikroprocesorów 8086/8088 Mnożenie zawartoÅ›ci aku
assembler?86? 9 118 5. Rozkazy mikroprocesorów 8086/8088 MOV AL, 8FH CBW ???? ???? 1111 1111 1000
assembler?86? 1 122 5. Rozkazy mikroprocesorów 8086/8088 OR DX, STALA_EQU OR CL, 8   &nb
assembler?86? 2 124 5. Rozkazy mikroprocesorów 8086/8088 Rozkaz realizuje logiczne mnożenie odpowi
assembler?86? 4 128 5. Rozkazy mikroprocesorów 8086/8088 Przesunięcie logiczne w prawo o 1 bit Ope
assembler?86? 5 130 5. Rozkazy mikroprocesorów 8086/8088 Przykłady SAR ZMIENNA, 1 SAR BAJT[BP +1],
assembler?86? 7 134 5. Rozkazy mikroprocesorów 8086/8088 Przykłady MOVCL, 11 ROR ZMIENNA[BP], CL
assembler?86? 8 136 5. Rozkazy mikroprocesorów 8086/8088 Rozkaz realizuje przesunięcie cykliczne w

więcej podobnych podstron