assembler86 7

assembler86 7



94 5. Rozkazy mikroprocesorów 8086/8088

OUT DX, AX MOV DX, 7645

OUT DX, AL    +

Adres układu wyjściowego jest wartścią bezpośrednią Operacja: (w = 0) => Wy[PC +1] <-AL clse Wy[PC +1] <-AX

1110 Oliw portaddr Liczba taktów -10.

Przykłady

OUT 12, AL

OUT 01010101 B,AX    +

5.2.3. Ładowanie adresów

LEA (ang. load effective address ) załadowanie adresu efektywnego do rejestru

Operacja: regló<-ea Znaczniki: bez zmian

Rozkaz powoduje obliczenie efektywnego adresu prawego argumentu, a następnie przesłanie go do 16-bitowego rejestru określonego lewym argumentem. Rożka z LEA powinien być używany jedynie wówczas, gdy adres efektywny musi być obliczony w czasie wykonywania programu, na przykład, gdy w wyrażeniu adresowym występuje rejestr indeksowy lub bazowy. W przypadku, gdy adres efektywny jest znany w czasie asemblacji lub łączenia, stosuje się rozkaz MOV oraz operator OFFSET, np. MOV SI,OFFSET TABLICA.

10001101 mod reg r/m addr low    addr high

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

Przykłady

LEA BP, TABLICAfBP + SI + 1 ]

LEA BX, ZMIENNA[DI]    +

LDS (ang. load data segment register)

załadowanie adresu logicznego do wskazanego rejestru i do DS

Operacja: regló M[eaj; DS M[ea + 2]

Znaczniki: bez zmian

Rozkaz powoduje przesłanie z pamięci podwójnego słowa, traktowanego jako 32-bitowy adres logiczny do pary 16-bitowych rejestrów. Bardziej znaczące słowo (tego

podwójnego słowa) jest ładowane do rejestru segmentowego DS, mniej znaczące zaś do dowolnego (ale nie segmentowego) rejestru 16-bitowego.

1100 0101 modregr/m addr low    addr high

przy czym: mod ^ 11 (oba argumenty nie mogą być rejestrami).

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

Przykłady

LDS AX, PODWÓJNE SLOWOfDI]

LDS SI, WSKAŹNIK ZRODLA    +

LES (ang. load exira segment register)

załadowanie adresu logicznego do wskazanego rejestru i do ES

Operacja: regló M[caJ; ES M[ea + 2|

Znaczniki: bez /.mian

Rozkaz powoduje przesłanie z pamięci podwójnego słowa traktowanego jako 32-bitowy adres logiczny do pary 16-bitowych rejestrów. Bardziej znaczące słowo (tego podwójnego słowa) jest ładowane do rejestru segmentowego ES, mniej znaczące zaś do dowolnego (ale nie segmentowego) rejestru 16-bitowego.

1100 0100 modregr/m addrlow    addrhigh

przy czym: mod * 11 (oba argumenty nie mogą być rejestrami).

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

Przykłady

LES BX, PODWOJNE_SLOWO[DI + 4]

LES DI, TABELA[BX]    '    +

5.2.4. Operacje na rejestrze znaczników LAHF (ang. load AH register from flags )

załadowanie mniej znaczącego bajtu rejestru znaczników do rejestru AH

Operacja: AH< 7:0 > «—SFoZFoxoAFoxoPFoxoCF; {x- bit nieokreślony}

Znaczniki: bez zmian

Rozkaz powoduje załadowanie do rejestru AH mniej znaczącego bajtu rejestru znaczników. Ta część rejestru znaczników zawiera znaczniki odpowiadające dokładnie znacznikom w mikroprocesorach 8080/8085. Rozkaz jest wykorzystywany głównie przy konwersji programów w asemblerze procesorów 8080/8085 na postać realizowalną w mikroprocesorach 8086/8088.

1001 1111

Liczba taktów - 4.


Wyszukiwarka

Podobne podstrony:
assembler?86? 7 114    5. Rozkazy mikroprocesorów 8086/8088 Mnożenie zawartości aku
assembler?86? 7 134 5. Rozkazy mikroprocesorów 8086/8088 Przykłady MOVCL, 11 ROR ZMIENNA[BP], CL
assembler?86? 1 122 5. Rozkazy mikroprocesorów 8086/8088 OR DX, STALA_EQU OR CL, 8   &nb
assembler?86? 0 1 1 140 5. Rozkazy mikroprocesorów 8086/8088 MOVS CEL, ZRODLO MOV SI, OFFSET ZRODL
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? 3 86 5. Rozkazy mikroprocesorów 8086/8088 LES - załadowanie adresu logicznego do wsk
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? 3 106 5. Rozkazy1 mikroprocesorów 8086/8088 SBB (ang. subtract byle or word with bor
assembler?86? 4 108 5. Rozkazy mikroprocesorów 8086/8088 Przykłady DEC SI DEC AX    
assembler?86? 9 118 5. Rozkazy mikroprocesorów 8086/8088 MOV AL, 8FH CBW ???? ???? 1111 1111 1000
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? 8 136 5. Rozkazy mikroprocesorów 8086/8088 Rozkaz realizuje przesunięcie cykliczne w

więcej podobnych podstron