EE-2623 Mikroprosesor & Antarmuka
description
Transcript of EE-2623 Mikroprosesor & Antarmuka
EE-2623Mikroprosesor & Antarmuka
Materi 3Instruksi
Team Dosen2006
JENIS INSTRUKSI
Perpindahan Data
MOV Clock
Acc mem 10
Mem acc 10
R R 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
AritmetikADD/SUB Clock DIV Clock
R R 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 ProgramJMP 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 AddressAddressing 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 16 (branch)
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)
Total 53
Format instruksi bhs mesin 8088Terdiri dari
Op-code 8 bit+
Operand (data,register,dll)
MOV AX,BX 89 (opcode) D8 (operand)
CodingSesungguhnya bhs mesin diciptakan untuk
kemudahan programmer (manusia)Control Unit di CPU hanya mengerti pola bit
perintahMOV AX,BX 89 D8MOV AL,[2400] A0 00 24ADD AX,BX 01 D8
Kode untuk perintah MOV
1 0 0 0 1 0D W
(5 bit) mode pengalamatanPemilihan registerData byte/word ; 0=byte, 1=wordArah transfer data, dari/ke register ; 0=dari, 1=kekode operasi (operation code)
op code mod reg R/Mlow displacement high displacement
ordirect address
low bytedirect address
high byte
byte 1 byte 2 byte 3 byte 4
Contoh coding MOV AL,BL
Kode Operasi Register 8088/86
code
10
code011100
SS
Seg. Reg.CSDSES
101110
W=0 W=1
001010100111
BPSI
Register
000011
SPDI
AXBXCXDX
AHBHCHDH
ALBLCLDL
Pola MOD dan R/M
d8 : 8 - bit displacement, d16 : 16 - bit displacement
[BX] + [DI] [BX] + [DI] + d8 [BX] + [DI] + d16
00 01 MODR/M
[BX] + [SI] [BX] + [SI] + d8 [BX] + [SI] + d16000
10
[BP] + [SI] [BP] + [SI] + d8 [BP] + [SI] + d16[BP] + [DI] [BP] + [DI] + d8 [BP] + [DI] + d16
[BP] + d16
[BX] [BX] + d8 [BX] + d16
[SI] [SI] + d8 [SI] + d16[DI] [DI] + d8 [DI] + d16
DH
101
110
111
001010011100
d16 direct address
[BP] + d8 SI
DI
W=0 W=1ALCLDLBLAHCH
11
MEMORY MODE REGISTER MODE
BH
AXCXDXBXSPBP
Contoh u/ berbagai Ad. Modemov 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
1 0 1 1 w
0 0 1 1 1 0 1 0 0 0 1 0D W
Immediate Addressing Mode
reg data - low byte data - high byte (w=1)byte 1 byte 2 byte 3
regSegment ovveride prefix
byte 1 byte 2
op code mod reg R/M
Op. Code Acc. ke/dari memori
1 0 1 0 0 0 d w Low byte address High byte addressbyte 1 byte 2 byte 3
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) • Contoh :
– MOV DL, [2400] ;copy isi memori dengan alamat DS:2400H ke DL
Ditandai dengan] [
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 • contoh
– MOV AL,]BX[ • PA (Physical Address) dan EA (Effective Address) ?
Ditandai dengan] [
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
SS ES DS CS Segment Register
SP,BP SI, DI, BX SI, DI, BX IP Offset Register
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 overridesInstruksi Segmen yg
digunakanSegmen 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
ESCSSSDS
4321
CONTROLSYSTEM
AH ALBH BLCH CLDH DL
SPBPSIDI
OPERANDFLAGS
C-BUS
IP
ALU
INSTRUCTIONSTREAM
BYTEQUEUE
A- BUS
BIU
EU
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 (?)