Mikroprosesor dan Antarmuka - ITTELKOM · Mode Pengalamatan-Jenis[1] Addressing Mode / Mode...
-
Upload
phungtuong -
Category
Documents
-
view
299 -
download
0
Transcript of Mikroprosesor dan Antarmuka - ITTELKOM · Mode Pengalamatan-Jenis[1] Addressing Mode / Mode...
1
LOGO
Oleh. Junartho Halomoan ([email protected])
Mikroprosesor dan AntarmukaInstruksi Mikroprosesor
Mode Pengalamatan-Jenis[1]
Addressing Mode / Mode Penglamatan : adalahcara, bagaimana 8088 dapat mengaksesoperand
Mode Pengalamatan pada 80x86:– (1) register– (2) immediate– (3) direct– (4) register indirect/ register tidak langsung– (5) based relative/ relatif berbasis– (6) indexed relative/ relatif berindex– (7) based indexed relative/ relatif berbasis dan index
JUN - I
TTELKOM
2
Mode Pengalamatan - Reg [2]
Menggunakan register untuk menyimpan data yang akandimanipulasi
Pada mode ini tidak operasi pada memoriOperasi 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-Imm[3]
Operand (source) adalah konstanta, yang terletak setelahopcode
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
JUN - I
TTELKOM
3
Ditandai
dengan [ ]
Mode Pengalamatan-Direct[4]
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
Mode Pengalamatan-Direct[5]
JUN - I
TTELKOM
4
Ditandai
dengan [ ]
Mode Pengalamatan-Indirect[6]
Alamat lokasi memori data yang akan diakses tersimpandalam register
Register yang digunakan pada mode ini : SI, DI, dan BX Contoh: MOV AL,[BX] PA (Physical Address) dan EA (Effective Address) ???
Mode Pengalamatan-Indirect[7]
JUN - I
TTELKOM
5
Mode Pengalamatan–Based.Re[8]
Menggunakan register BX and BP, untuk mendapatkanEA (effective address), ditambah dengan displacement
Segment yang digunakan untuk mendapatkan physical address (PA) adalah: DS untuk BX SS untuk BP
Contoh : MOV CX,[BX]+10Salinkan isi DS:BX+10 dan DS:BX+10+1 ke reg. CX(little endian convt.);PA = ?
Mode Pengalamatan–Index.Re[7]
Sama seperti based relative addressing mode, register yang digunakan adalah DI dan SI
Contoh: MOV DX, [SI]+5 ; MOV CL, [DI]+20 ;
JUN - I
TTELKOM
6
Mode Pengalamatan–Base.Indx[8]
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
Mode Pengalamatan–Base.Indx[9]
JUN - I
TTELKOM
7
Jenis Instruksi.CLK - MOV [1]
MOV Clock
Acc mem 10
Mem acc 10
R R 2
Mem R 12 + EA
R mem 13 + 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
Jenis Instruksi. CLK-Aritmatika[2]
ADD/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
JUN - I
TTELKOM
8
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
Jenis Instruksi.CLK-Kend.Prog[3]
Jenis Instruksi.CLK- lainnya [4]Instruksi Clock Instruksi Clock
INC/DEC reg8 3 MOV seg,reg 2
INC/DEC data 23+EA MOV reg,reg 2
INC/DEC reg16 3 MOV mem,reg 13+EA
LOGIC reg,reg 3 MOV reg,mem 12+EA
LOGIC mem,reg 24+EA MOV mem,imm 14+EA
LOGIC reg,mem 13+EA MOV reg,imm 4
LOGIC reg,imm 4 MOV mem,acc 14
LOGIC mem,imm 23/25+EA
MOV acc,mem 14
LOGIC acc,imm 4 MOV seg,mem 12+EA
MOV reg,seg 2 MOV mem,seg 13+EA
JUN - I
TTELKOM
9
Jenis Instruksi.CLK-Eff.Addr[5]
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
Catatan: EA = Effective address
Jenis Instruksi.CLK-contoh [6]
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] 12 + 6(EA)
CS:010E 88 16 34 12 MOV [1234],DL 13+ 6(EA)
Total 61
JUN - I
TTELKOM
10
Terdiri dari
MOV AX,BX 89 (opcode) D8 (operand)
Format bhs mesin 8088[1]
bahasa mesin
op-code 8 bit
operand (data,register,dll)
+
mnemonic
Format bhs mesin 8088[2]
Sesungguhnya bhs mesin diciptakan untukkemudahan programmer (manusia)
Control Unit di CPU hanya mengerti pola bit perintah MOV AX,BX 8B C3 (versi EMU
8086/ MASM), 89 D8 (versi debug) MOV AL,[2400] A0 00 24 ADD AX,BX 01 D8
JUN - I
TTELKOM
11
Format bhs mesin 8088-MOV[3]
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
Format bhs mesin 8088[4]
code
10
code011100
SS
Seg. Reg.CSDSES
101110
W=0 W=1
001010100111
BPSI
Register
000011
SPDI
AXBXCXDX
AHBHCHDH
ALBLCLDL
Pola Register
JUN - I
TTELKOM
12
Format bhs mesin 8088[5]
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
Pola MOD dan R/M
Format bhs mesin 8088-contoh[6]
Contoh: coding MOV AL,BL
JUN - I
TTELKOM
13
Format bhs mesin 8088[7]
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 (?)
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 (?)
Format bhs mesin 8088[8]
JUN - I
TTELKOM
14
Format bhs mesin 8088[9]
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
Kode Operasi Immediate A.M. dan Segment Override
Format bhs mesin 8088[10]
1 0 1 0 0 0 d w Low byte address High byte addressbyte 1 byte 2 byte 3
Op. Code Acc. ke/dari memori
JUN - I
TTELKOM
15
Format bhs mesin 8088-Lat[11]
Segment overides[1]
CPU 80x86 memungkinkan program untukmengganti register segmen yang seharusnyadengan register segmen yang lain.
Contoh : MOV AL,[BX] ; penunjuk alamat fisik adalahDS:BX Bandingkan dengan :
MOV AL,ES:[BX]
JUN - I
TTELKOM
16
SSESDSCSSegment Register
SP,BPSI, DI, BXSI, DI, BXIPOffset Register
Segment overides[2]
Offset Register untuk berbagai Segment
Segment overides-contoh[3]
Instruksi Segmen ygdigunakan
Segmenseharusnya
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
JUN - I
TTELKOM
17
Latihan Soal [1]
If DS=7FA2H and the offset is 438EH, determine:
a) The physical address
b) The lower range of the data segment
c) The upper range of the data segment
d) Show the logical address
a) The Physical address is; 7FA20+438E= 83DAE
b) The lower range: 7FA20(7FA20+0000)
c) The upper range: 8FA1F(7FA20+FFFF)
d) The logical address is; 7FA2:438E
Latihan Soal [2]
Ex: SP=1236, AX=24B6, DI=85C2, and DX=5F93, show the contents of the stack as each nstructionis executed.PUSH AX, PUSH DI, PUSH DX
SP? SS:SP??JUN - I
TTELKOM
18
Latihan Soal [3]
Ex: assume that the stack is shown below, and SP=18FA, show the contents of the stack and registers as each of the following instructions is executed.POP CX,POP DX,POP BX
SP? SS:SP??
Latihan Soal [4]
Ex: Show how the flag register is affected by the addition of 38H and 2FH. CF,PF,AF,ZF,SF?
MOV BH,38H ;
ADD BH,2FH ;
CF = 0 since there is no carry beyond d7
PF = 0 since there is odd number of 1`s in the result
AF = 1 since there is a carry from d3 to d4
ZF = 0 since the result is not zero
SF = 0 since d7 of the result is zero
JUN - I
TTELKOM
19
Latihan Soal [5]
MOV AX,34F5H
SUB AX,95EBH
CF,PF,AF,ZF,SF?
CF = 1 since there is carry beyond d15
PF = 0 since there is odd number of 1s in the lower byte
AF = 1 since there is a carry from d3 to d4
ZF = 0 since the result is not zero
SF = 1 since d15 of the result is 1
LOGO
Thank You!Please study this subject at home
JUN - I
TTELKOM