w=0

Transkrypt

w=0
Systemy komputerowe
lista rozkazów
roboczy jednostki centra !
"
# $
% $ ! &
' $ & " " $
" !
" $ %!
- - & ( !
!
$
instrukcji.
W
przypadku
procesorów
uniwersalnych
asortyment
$ " !
arzania danych.
)" $ )
$ $ ! !" " " - !
"
*
nazywamy operandami.
* ! " +
$
, )"
operacji
dwuargumentowych
-
takich
jak
dodawanie,
odejmowanie,
! - ma trzy operandy: dwa z nich to argumenty
! $ $ zapisywany
jest
zwykle
na
miejscu
jednego
z
argumentów
-
" $
- . 1
Tryb adresowania specyfikuje sposób obliczania adresu operandu.
- $ !
$ Dekodowanie instrukcji
/
$ $ $ ! ! +
0102, ! $ +
mnemoniczny MOV):
kod operacji MOV r, r/m r:= r/m
1
0
0
0
1
0
kod operacji MOV r/m, r r/m := r
1.
(d=1)
d
w
(d=0)
d=1
2.
mod
r
r/m
d=0
3.
disp low
4.
disp high
r
r/m
d
w
mod
disp
numer rejestru roboczego
+&
, + 3 ,
+)41, 52-bitowe (W=1)
modyfikator trybu adresowania
(displacement) – Instrukcja MOV ma za .
argumentu i zapisanie jej w miejscu przeznaczenia. Zgodnie z tzw.
- .
6
MOV instrukcji MOV " . - operacji „1000107 ! $ 0 52
$
+ ! w, rejestrami p + d). Sposób
& !
& Struktura
Poni! & ! & 6
mod = 11
1
0
1
1
0
0
1
0
r
d
w
r
8 $ % !
„r” jest interpretowana
52 + w=1) lub 8.bitowego
+ w=0). Podstawowe, . 6
w = 1
AX
CX
DX
BX
SP
BP
SI
DI
r = 000
r = 001
r = 010
r = 011
r = 100
r = 101
r = 110
r = 111
w = 0
AL
CL
DL
BL
AH
CH
DH
BH
mod = 10
1
0
1
0
0
0
1
r
0
d
w
m
disp low
disp high
) 9 + 52 , : + , $ ! " + d=0, +d=1).
Kombinacja bitów w polu „r” interpretowana jest tak samo jak przy
$ $ " „m” &
6
m = 000
m = 001
m = 010
m = 011
m = 100
m = 101
m = 110
m = 111
EA
EA
EA
EA
EA
EA
EA
EA
=
=
=
=
=
=
=
=
(BX)
(BX)
(BP)
(BP)
(SI)
(DI)
(BP)
(BX)
+
+
+
+
+
+
+
+
(SI) + disp_low + 256 disp_high
(DI) + disp_low + 256 disp_high
(SI) + disp_low + 256 disp_high
(DI) + disp_low + 256 disp_high
disp_low + 256 disp_high
disp_low + 256 disp_high
disp_low + 256 disp_high
disp_low + 256 disp_high
3
mod = 01
1
0
0
1
0
0
1
0
r
d
w
m
disp
Ten podzbiór kodów instrukcji MOV ! +
z modyfikatorem „107, ! 0
- ; <fektywny adres operandu obliczany
6
EA
EA
EA
EA
EA
EA
EA
EA
m = 000
m = 001
m = 010
m = 011
m = 100
m = 101
m = 110
m = 111
=
=
=
=
=
=
=
=
(BX)
(BX)
(BP)
(BP)
(SI)
(DI)
(BP)
(BX)
+
+
+
+
+
+
+
+
(SI)
(DI)
(SI)
(DI)
disp
disp
disp
disp
+
+
+
+
disp
disp
disp
disp
mod = 00
) MOV z modyfikatorem „00” oddzielnego rozpatrzenia
wymaga przy " m równa jest „110”.
1
0
0
0
0
0
1
r
0
d
w
1
1
0
disp low
disp high
E&
$ +
su):
m = 110
EA = disp_low + 256 disp_high
) $ $ = 6
1
0
0
0
0
0
1
r
* &
6
m = 000
EA = (BX) + (SI)
0
d
m
w
m = 001
m = 010
m = 011
m = 100
m = 101
m = 111
EA
EA
EA
EA
EA
EA
=
=
=
=
=
=
(BX) + (DI)
(BP) + (SI)
(BP) + (DI)
(SI)
(DI)
(BX)
tryby adresowania
#
! ! " tryb adresowania.
Natychmiastowy (immediate) - dotyczy argumentu umieszczonego
+ ,
Kod operacji
operand
edni (register direct) – wskazuje jeden z
rejestrów procesora jako miejsce operandu; w kodzie instrukcji
podany jest numer tego rejestru.
Kod operacji
nr rejestru
Rejestry
operand
(direct) – $ komputera; efektywny adres operan kodzie instrukcji.
Kod operacji
adres
operand
5
(register indirect) - adres komórki
$ procesora.
Kod operacji
nr rejestru
Rejestry
adres
operand
8 lega automodyfikacji (rejestr indeksowy)
+ , " $ indeksowym.
ania
adresu (displacement) +
, + , ) i
-indeksowy z
+ $ > ,
Kod operacji
tryb adr.
Rejestry
baza
operand
indeks
8 ! z $ +
with index and displacement).
(memory indirect) - adres argumentu jest
!
$ /
! " modyfikowany przez dodanie przemieszczenia lub indeksowanie.
Skalowany (scalable) - !
"
! 5 = 9 0 + lewo o 0, 1, 2 lub 3 pozycje).
!" (relative) - w kodzie instrukcji podane
! " " : " +
przesuwny).
Stos (stack addressing) - . $
$ !
+$, . $ +"
. , +, +.
, - $ $ + ,
7