assembler€86ˆ 2

assembler€86ˆ 2



24

2. Mikroprocesory 8086/8088

Rodzaj operacji realizowanej przez BIL'

Rejestr segmentowy standardowy alternatywny

Offset

Pobranie rozkazu

CS

•

IP

Operacja na stosie

ss

-

SP

Komunikacja ze zmiennymi

DS

CS.ES.SS

adres efektywny

Źródło łańcuchów

DS

CS.KS.SS

SI

Przeznaczenie dla łańcuchów

ES

-

DI

Operacje wykorzystujÄ…ce BP jako rejestr bazowy

SS

CS.DS.ES

adres efektywny

Adres logiczny

Rys. 2.10. Sposób obliczania adresu fizycznego

Adres efetywny wynika z wykorzystywanego trybu adresowania, co jest omówione w następnym punkcie.

2.6. Sposoby adresowania pamięci

Rozkazy procesorów 8086/8088 mogą być bezargumentowe, mogą też zawierać jeden lub dwa argumenty. Argumentami mogą być

Rejestry

Rozkazy dziaÅ‚ajÄ…ce jedynie na rejestrach sÄ… szczególnie szybkie oraz krótkie (maÅ‚a liczba bajtów kodu maszynowego). Wynika to z niewielkiej liczby bitów potrzebnych do zaadresowania wybranego rejestru oraz braku komunikacji z pamiÄ™ciÄ… operacyjnÄ…. Rejestry mogÄ… zawierać argument źródÅ‚owy - przeznaczony do przetwarzania, argument docelowy - wynik przetwarzania lub też oba z nich. PrzykÅ‚adem tego ostatniego przypadku może być rozkaz    S

ADD AX,BX    ; dodaj zawartość rejestrów AX i BX, wynik

; umieść w rejestrze AX

Argumenty bezpośrednie

SÄ… to staÅ‚e zawarte bezpoÅ›rednio w rozkazie mikroprocesora. MogÄ… mieć dÅ‚ugość bajtu lub sÅ‚owa i podobnie jak w przypadku rejestrów' nie wymagajÄ… dodatkowych cykli pamiÄ™ci - sÄ… bowiem pobrane do ukÅ‚adu wykonawczego EU w' cyklu pobrania rozkazu. Argumenty bezpoÅ›rednie mogÄ… być tylko argumentami źródÅ‚owymi o staÅ‚ej wartoÅ›ci.

2.6. Sposoby adresowania pamięci

powered by

Mi sto!


; dodaj do akumlatora AX wartość ; szesnastkową 5555, wynik umieść w' AX


przykład

ADD AX,5555H

.CM r) C

Argumenty w pamięci operacyjnej

W tym przypadku argumenty muszÄ… być pobierane do ukÅ‚adu wykonawczego EU w dodatkowych cyklach pamiÄ™ci. UkÅ‚ad sterowania magistral BIU oblicza 20-bitowy adres fizyczny argumentu na podstawie zawartoÅ›ci odpowiedniego rejestru segmentowego oraz adresu wzglÄ™dem poczÄ…tku segmentu (offset) przygotowanego w EU i nazywanego adresem efektywnym (ang. effective address ). Adres efektywny to 16-bitowa liczba bez znaku, okreÅ›lajÄ…ca odlegÅ‚ość w bajtach od poczÄ…tku segmentu. Może on być obliczony na wiele różnych sposobów. Informacja o tym jest zakodowana w drugim bajcie rozkazu. Na rysunku 2.11 przedstawiono sposoby generowania adresu fizycznego.

Rejestr bazowy lub indeksowy

Rejestr bazowy i indeksowy


Zakodowane w rozkazie

Dodatkowo okreÅ›lone w rozkazie

Przyjmowane

standardowo

lub

określone przez przedrostek

Rys. 2.11. Generowanie adresu fizycznego

Adresowanie bezpośrednie

Adresowanie bezpoÅ›rednie jest najprostszÄ… formÄ… adresowania argumentów'. Adres efektywny jest zawarty bezpoÅ›rednio w rozkazie jako 8-bitowa lub 16-bitowa wartość Avana przemieszczeniem (ang. displacement). Adresowanie bezpoÅ›rednie jest używa-ne zazwyczaj w przypadku dziaÅ‚ania na prostych zmiennych (skalarach), kiedy jako argument wystÄ™puje wyrażenie numeryczne bÄ…dź nazwa zmiennej.

15    0    15    0

19    =0

;    i

Adres fizyczny



Wyszukiwarka

Podobne podstrony:
assembler?86? 0 20 2. Mikroprocesory 8086/8088 Znacznik kierunku DF jest wykorzystywany przy wykon
assembler?86? 1 22 2. Mikroprocesory 8086/8088 jest niezależny od innych segmentów i jest programo
assembler?86? 3 26 2. Mikroprocesory 8086/8088 Przykład (rys. 2.12) ZMIENNA2 ZMIENNA 1 ADD AX, ZMI
assembler?86? 4 28 2. Mikroprocesory 8086/8088 MOV    AL,ZMIENNA BAJT[DI
assembler?86? 8 % 5. Rozkazy> mikroprocesorów 8086/8088 Przykład LA HF NOT AH SAHF; znaczniki s
assembler?86? 7 114    5. Rozkazy mikroprocesorów 8086/8088 Mnożenie zawartoÅ›ci aku
assembler?86? 2 64 4. Język asemblerowy mikroprocesorów 8086/8088 64 4. Język asemblerowy mikropro
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? 2 104 5. Rozkazy mikroprocesorów 8086/8088 Przykłady 104 5. Rozkazy mikroprocesorów
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? 0 40 4. Język asemblerowy mikroprocesorów 8086/8088 W książce omówimy wersję MASM 4.
assembler?86? 3 46 4. Język asemblerowy mikroprocesorów 8086/8088 PARA - początek segmentu będzie
assembler?86? 4 48 4. Język asemblerowy mikroprocesorów 8086/8088 tępne segmenty będą łączone jak
assembler?86? 5 50 4. Język asemblerowy mikroprocesorów 8086/8088 ; w kolejnym przykładzie zmienne
assembler?86? 6 52 4. JÄ™zyk asemblerowy mikroprocesorów 8086/8088 MOV AX, DANE 2    
assembler?86? 7 54 4. Język asemblerowy mikroprocesorów 8086/8088 kowych informacji czy skoki do (
assembler?86? 8 56 4. Język asemblerowy mikroprocesorów 8086/8088 433. Połączenia międzymodułowe O

więcej podobnych podstron