Mikroprocessor & Antarmuka (SK2023)
Download
Report
Transcript Mikroprocessor & Antarmuka (SK2023)
EE-2623
Mikroprosesor & Antarmuka
Materi 3
Instruksi
Team Dosen
2006
JENIS INSTRUKSI
Perpindahan Data
MOV
Clock
Acc mem
10
Mem acc
10
RR
2
Mem R
8 + EA
R mem
9 + EA
Immed R
4
Immed mem
10 + EA
R seg R
2
Mem seg R
8 + EA
Seg R R
2
Seg R mem
9 + EA
Aritmetik
ADD/SUB
Clock
DIV
Clock
RR
3
8 bit reg
80 sd 90
Mem R
9 + EA
16 bit reg
144 sd 162
R mem
16 + EA
8 bit mem
(86 sd 96)+EA
Immed R
4
16 bit mem
(150 sd 168)+EA
Immed mem
17 + EA
MUL
Clock
Shift & Rotate
Clock
8 bit reg
70 sd 77
Single bit reg
2
16 bit reg
118 sd 133
Var bit reg
8 + 4/bit
8 bit mem
(76 sd 83)+EA
Single bit mem
15 + EA
16 bit mem
(124 sd 139)+EA
Var bit mem
20+EA+4/bit
Kendali Program
JMP
Clock
Clock
short
15
JCXZ
6 (no branch)
18 (branch)
Intrasegment direct
15
J condition
4 (no branch)
16 (branch)
Intersegment direct
15
Intrasegment using reg
mode
11
Intrasegment indirect
18 + EA
Intersegment indirect
24 + EA
Instruksi
Clock
Instruksi
Clock
INC/DEC reg8
3
MOV reg,reg
2
INC/DEC data
23+EA
MOV mem,reg
13+EA
INC/DEC reg16
3
MOV reg,mem
12+EA
LOGIC reg,reg
3
MOV mem,imm
14+EA
LOGIC mem,reg 24+EA
MOV reg,imm
4
LOGIC reg,mem 13+EA
MOV mem,acc
14
MOV seg,reg
2
MOV acc,mem
14
MOV reg,seg
2
MOV seg,mem
12+EA
MOV mme,seg
13+EA
Effective Address
Addressing Mode
Clock
Direct
6
Register indirect
5
Register relative
9
Based indexed
(BP)+(DI) or (BX)+(SI)
7
(BP)+(SI) or (BX)+(DI)
8
Based indexed relative
(BP)+(DI)+disp or (BX)+(SI)+disp
11
(BP)+(SI)+disp or (BX)+(DI)+disp
12
Contoh soal:
Address
Mnemonic
Assembly
Clock
CS:0100
B8 34 12
MOV AX,1234
4
CS:0103
35 34 12
XOR AX,1234
4
CS:0106
74 02
JZ 010A
CS:0108
B3 12
MOV BL,12
- (skiped)
CS:010A
8A 0E 34 12
MOV CL,[1234]
8 + 6(EA)
CS:010E
88 16 34 12
MOV [1234],DL
9 + 6(EA)
16 (branch)
Total
53
Format instruksi bhs mesin 8088
Terdiri dari
Op-code 8 bit
+
Operand (data,register,dll)
MOV AX,BX 89 (opcode) D8 (operand)
Coding
Sesungguhnya bhs mesin diciptakan untuk kemudahan
programmer (manusia)
Control Unit di CPU hanya mengerti pola bit perintah
MOV AX,BX
89 D8
MOV AL,[2400]
A0 00 24
ADD AX,BX
01 D8
Kode untuk perintah MOV
byte 1
1 0 0 0 1 0
op code
D W mod
byte 2
reg
R/M
byte 3
byte 4
low displacement
high displacement
or
direct address
low byte
direct address
high byte
(5 bit) mode pengalamatan
Pemilihan register
Data byte/word ; 0=byte, 1=word
Arah transfer data, dari/ke register ; 0=dari, 1=ke
kode operasi (operation code)
Contoh coding MOV AL,BL
Kode Operasi Register 8088/86
Register
W=0
W=1
AL
AX
BL
BX
CL
CX
DL
DX
AH
SP
BH
DI
CH
BP
DH
SI
code
000
011
001
010
100
111
101
110
Seg. Reg.
CS
DS
ES
SS
code
01
11
00
10
Pola MOD dan R/M
MOD
R/M
000
001
010
011
100
101
110
111
00
01
10
[BX] + [SI]
[BX] + [DI]
[BP] + [SI]
[BP] + [DI]
[SI]
[DI]
d16
direct address
[BX]
[BX] + [SI] + d8
[BX] + [DI] + d8
[BP] + [SI] + d8
[BP] + [DI] + d8
[SI] + d8
[DI] + d8
11
[BX] + [SI] + d16
[BX] + [DI] + d16
[BP] + [SI] + d16
[BP] + [DI] + d16
[SI] + d16
[DI] + d16
W=0
AL
CL
DL
BL
AH
CH
W=1
AX
CX
DX
BX
SP
BP
[BP] + d8
[BP] + d16
DH
SI
[BX] + d8
[BX] + d16
BH
DI
MEMORY MODE
d8 : 8 - bit displacement, d16 : 16 - bit displacement
REGISTER MODE
Contoh u/ berbagai Ad. Mode
mov SP,BX; register A. M.
mov CX,[4372H]; direct A.M.
mov CL,[BX]; register indirect A.M.
mov [SI + 43H],DH; indexed relative
A.M.
mov AL,9CH; immediate A.M. (?)
mov CS:[BX],DL; segment ovverides (?)
Kode Operasi Immediate A.M. dan
Segment Override
byte 1
1 0 1 1 w
reg
byte 2
data - low byte
byte 3
data - high byte (w=1)
Immediate Addressing Mode
0 0 1 reg 1 1 0
Segment ovveride prefix
byte 1
1 0 0 0 1 0
op code
D W mod
byte 2
reg
R/M
Op. Code Acc. ke/dari memori
byte 1
1 0 1 0 0 0 d w
byte 2
Low byte address
byte 3
High byte address
Latihan
Mode Pengalamatan
Mode Pengalamatan 80x86
• Addressing Mode / Mode Penglamatan : adalah
cara, bagaimana mp dapat mengakses operand
• Mode Pengalamatan pada 80x86:
–
–
–
–
–
–
–
(1) register
(2) immediate
(3) direct
(4) register indirect
(5) based relative
(6) indexed relative
(7) based indexed relative
Mode Pengalamatan Register
• Menggunakan register untuk menyimpan data yang akan
dimanipulasi
• Pada mode ini tidak operasi pada memori
• Operasi relatif cepat
• Contoh:
MOV BX, DX ;copy isi DX ke BX
MOV ES, AX ;copy isi AX ke ES
ADD AL, BH ;jumlahkan isi BH dan AL, hasilnya di AL
• Register sumber dan tujuan mempunyai ukuran yang sama
Mode Pengalamatan Immediate
• Operand (source) adalah konstanta, yang terletak setelah
opcode
• Operasinya sangat cepat
• Immediate addressing mode dapat digunakan pada
semua register, kecuali register segmen dan flag (?)
• Contoh:
– MOV AX,2550H ; bilangan 2550H dimasukkan ke AX
– MOV CX,625
; bilangan 625d dimasukkan ke CX
– MOV BL, 40H
; bilangan 40H dimasukkan ke BL
Mode Pengalamatan
Langsung (Direct)
• Operand dari instruksi ini merupakan alamat
memori data yang akan diakses
• Alamat ini merupakan EA (Effective Address)
Ditandai
• Contoh :
dengan [ ]
– MOV DL, [2400]
;copy isi memori dengan alamat DS:2400H ke DL
Mode Pengalamatan Register Tidak
Langsung (indirect)
• Alamat lokasi memori data yang akan diakses tersimpan
dalam register
• Register yang digunakan pada mode ini : SI, DI, dan BX
Ditandai
• contoh
dengan [ ]
– MOV AL,[BX]
• PA (Physical Address) dan EA (Effective Address) ?
Mode Pengalamatan Relatif Base
(Base Relative)
• Menggunakan register BX and BP, untuk mendapatkan EA (effective
address), ditambah dengan displacement
• Segment yang digunakan untuk mendapatkan physical address (PA)
adalah:
– DS untuk BX
– SS untuk BP
• Contoh :
• MOV CX,[BX]+10
– Pindahkan isi DS:BX+10 dan DS:BX+10+1 ke reg. CX ;
– PA = ?
Mode Pengalamatan Relatif
Berindeks (Indexed relative)
• Sama seperti based relative addressing mode,
register yang digunakan adalah DI dan SI
• Contoh:
1. MOV DX, [SI]+5 ;
2. MOV CL, [DI]+20 ;
Mode Pengalamatan Indeks
Berbasis (Based indexed)
• kombinasi based dan indexed addressing modes
• Menggunakan satu base reg. dan satu index reg.
• Contoh:
MOV CL, [BX][DI] + 8
MOV CH, [BX][SI]+20
MOV AH,[BP][DI]+12
MOV AH,[BP][SI]+29
Offset Register untuk berbagai Segment
Segment Register
CS
DS
ES
SS
Offset Register
IP
SI, DI, BX
SI, DI, BX
SP,BP
Segmen Override
• CPU 80x86 memungkinkan program untuk
mengganti register segmen yang
seharusnya dengan register segmen yang
lain.
• Contoh : MOV AL,[BX] ; penunjuk alamat
fisik adalah DS:BX
• Bandingkan dengan : MOV AL,ES:[BX].
Contoh segment overrides
Instruksi
Segmen yg
digunakan
Segmen
seharusnya
MOV AX,CS:[BP]
CS:BP
SS:BP
MOV DX,SS:[SI]
SS:SI
DS:SI
MOV AX,DS:[BP]
DS:BP
SS:BP
MOV CS,ES:[BX]+12
ES:BX+12
DS:BX+12
MOV SS:[BX][DI]+32,AX SS:BX+DI+32
DS:BX+DI+32
mov SP,BX; register A. M.
mov CX,[4372H]; direct A.M.
BIU
mov CL,[BX]; register indirect
C-BUS
A.M.
mov [SI + 43H],DH; indexed
ES
CS
SS
DS
IP
relative A.M.
mov AL,9CH; immediate A.M. (?)
4
3
2
1
INSTRUCTION
STREAM
BYTE
QUEUE
CONTROL
SYSTEM
A- BUS
EU
mov CS:[BX],DL; segment
ovverides (?)
AH
BH
CH
DH
AL
BL
CL
DL
SP
BP
SI
DI
ALU
OPERAND
FLAGS