POLITECHNIKA KOSZALIŃSKA - WYDZIAŁ ELEKTRONIKI I INFORMATYKI Architektura komputerów

Zajęcia laboratoryjne N 6

Zajęcia laboratoryjne N 6

TEMAT: ROZKAZ JEDNOARGUMENTOWY – ADRESACJA NATYCHMIASTOWA I Celem niniejszego zadania jest zapoznanie się studentów z natychmiastowym trybem adresacji.

W ćwiczeniu tym zajmiemy się podstawowymi operacjami arytmetycznymi tj. dodawaniem i odejmowaniem, zwykłym i z przeniesieniem, jak również rozkazem porównania i przesłania. We wszystkich rozkazach jeden z argumentów będzie znajdował się w akumulatorze, bądź jego części, do drugiego natomiast będziemy się odwoływać korzystając z adresacji natychmiastowej.

Dodatkowo wykorzystując doświadczenia z zadania poprzedniego stworzymy rozkaz pozwalający nam na załadowanie dowolnego rejestru ogólnego przeznaczenia zadaną wartością.

W niniejszym ćwiczeniu rozkazy będą miały wielkość słowa (dwa bajty) lub trzech bajtów o formacie przedstawionym na Rysunku 1 i 2. Pole REG interpretujemy zgodnie z Tabelą 2, pole W

wyznacza nam wielkość argumentu z jakim będzie współpracował dany rozkaz, tzn. jeżeli W=0

mamy do czynienia z bajtem, jeśli W=1 argumentem jest słowo. Zakładamy, że każdy kolejny rozkaz zaczyna się w nowej komórce pamięci, tj. jeżeli rozkaz ma rozmiar trzech bajtów, faktycznie zajmuje dwa słowa.

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

W=0

Kod operacji

W

DATA8

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

W=1

Kod operacji

W X X X X X X X X

DATA8

DATA8

Rysunek 1: Formaty rozkazów arytmetycznych dla adresacji natychmiastowej.

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

W=0 Kod operacji W

REG

DATA8

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

W=1 Kod operacji W

REG

X X X X X X X X

DATA8

DATA8

Rysunek 2: Formaty rozkazu MOV.

Wpływ poszczególnych rozkazów na odpowiednie flagi zawarto w Tabeli 1, gdzie OF oznacza flagę przepełnienia, CF – przeniesienia/pożyczki, SF – znaku, ZF – zera.

Tabela 1:

Operacja

Rozkazy

OF

CF

SF

ZF

Dodawanie, odejmowanie ADD ADC SUB SBB CMP

+

+

+

+

Oznaczenia: '+' – wynik operacji wpływa na flagę; '-' – nie wpływa; Zagadnienia do opracowania przed przystąpieniem do wykonywania zadania:



1. Adresacja natychmiastowa.



2. Little Endian i Big Endian.



3. Zapisz w postaci binarnej i szesnastkowej rozkazy zadane w Tabeli 4.

4. Działanie rozkazu CMP procesora 8086.

5. Jak działa znacznik OF.

1 z 2

POLITECHNIKA KOSZALIŃSKA - WYDZIAŁ ELEKTRONIKI I INFORMATYKI Architektura komputerów

Zajęcia laboratoryjne N 6

Zadania podstawowe do wykonywania w czasie trwania zajęć laboratoryjnych: P_1. Rozbuduj program z 2 zajęć laboratoryjnych o rozkazy zawarte w Tabeli 4, pamiętając o odpowiednim modyfikowaniu znaczników zgodnym z Tabelą 1.

P_2. W czasie dekodowania sprawdź całe 8 starszych bitów niosących informacje o wykonywanym rozkazie.

P_3. Dane zapisz w postaci Big Endian.

Zadania dodatkowe wykonywania w czasie trwania zajęć laboratoryjnych: D_1. Weź program z poprzednich zajęć i ustaw jako komentarz dekodowanie wszystkich rozkazów poza NOP, następnie usuń (lub ustaw jako komentarz) fragment (lub fragmenty) programu z obszaru w którym są wykonywane te rozkazy.

D_2. Rozbuduj tak powstały program, tak aby wykonywały się następujące rozkazy: 1. MOV (dla dowolnego rejestru z Tabeli 2, dla W=1), 2. ADD (dla AL lub AX),

3. ADC (dla AL lub AX).

D_3. W czasie dekodowania rozkazu sprawdź tylko kod operacji, a do pola REG odwołuj się przy pomocy rejestrów RA i RB w czasie wykonywania operacji MOV (nie w czasie dekodowania).

D_4. Zapisz dane w formacie Little Endian (w paczkach po 8 bitów).

D_5. Zadbaj o to by napisany program zajmował jak najmniej komórek pamięci mikrorozkazów.

Tabela 1:

Tabela 2:

REG W=0 W=1

Operacja

Kod operacji

000

AL

AX

ADD ACC, Data

0000 010W

001

CL

CX

ADC ACC, Data

0001 010W

010

DL

DX

SBB ACC, Data

0001 110W

011

BL

BX

SUB ACC, Data

0010 110W

100 AH

SP

CMP ACC, Data

0011 110W

101

CH

BP

MOV REG, Data

1011 W

110

DH

SI

111

BH

DI

Tabela 3:

Nr st.

Rozkazy

Nr st.

Rozkazy

ADD ACC, Data8

ADC ACC, Data16

1

2 i 10

MOV BX, Data16

MOV CL, Data8

ADC ACC, Data8

ADD ACC, Data16

3

4

MOV SP, Data16

MOV DL, Data8

ADD ACC, Data8

ADC ACC, Data16

5 i 9

6

MOV BP, Data16

MOV BL, Data8

ADC ACC, Data8

ADD ACC, Data8

7

8

MOV CX, Data16

MOV DI, Data16

2 z 2

Document Outline

  • Zadania podstawowe do wykonywania w czasie trwania zajęć laboratoryjnych:
  • Zadania dodatkowe wykonywania w czasie trwania zajęć laboratoryjnych: