Mikroprosesor dan Antarmuka - ITTELKOM · Mode Pengalamatan-Jenis[1] Addressing Mode / Mode...

19
1 LOGO Oleh. Junartho Halomoan ([email protected]) Mikroprosesor dan Antarmuka Instruksi Mikroprosesor Mode Pengalamatan-Jenis[1] Addressing Mode / Mode Penglamatan : adalah cara, bagaimana 8088 dapat mengakses operand 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 - ITTELKOM

Transcript of Mikroprosesor dan Antarmuka - ITTELKOM · Mode Pengalamatan-Jenis[1] Addressing Mode / Mode...

Page 1: Mikroprosesor dan Antarmuka - ITTELKOM · Mode Pengalamatan-Jenis[1] Addressing Mode / Mode Penglamatan : adalah cara, bagaimana 8088 dapat mengakses operand ... Format bhs mesin

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

Page 2: Mikroprosesor dan Antarmuka - ITTELKOM · Mode Pengalamatan-Jenis[1] Addressing Mode / Mode Penglamatan : adalah cara, bagaimana 8088 dapat mengakses operand ... Format bhs mesin

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

Page 3: Mikroprosesor dan Antarmuka - ITTELKOM · Mode Pengalamatan-Jenis[1] Addressing Mode / Mode Penglamatan : adalah cara, bagaimana 8088 dapat mengakses operand ... Format bhs mesin

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

Page 4: Mikroprosesor dan Antarmuka - ITTELKOM · Mode Pengalamatan-Jenis[1] Addressing Mode / Mode Penglamatan : adalah cara, bagaimana 8088 dapat mengakses operand ... Format bhs mesin

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

Page 5: Mikroprosesor dan Antarmuka - ITTELKOM · Mode Pengalamatan-Jenis[1] Addressing Mode / Mode Penglamatan : adalah cara, bagaimana 8088 dapat mengakses operand ... Format bhs mesin

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

Page 6: Mikroprosesor dan Antarmuka - ITTELKOM · Mode Pengalamatan-Jenis[1] Addressing Mode / Mode Penglamatan : adalah cara, bagaimana 8088 dapat mengakses operand ... Format bhs mesin

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

Page 7: Mikroprosesor dan Antarmuka - ITTELKOM · Mode Pengalamatan-Jenis[1] Addressing Mode / Mode Penglamatan : adalah cara, bagaimana 8088 dapat mengakses operand ... Format bhs mesin

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

Page 8: Mikroprosesor dan Antarmuka - ITTELKOM · Mode Pengalamatan-Jenis[1] Addressing Mode / Mode Penglamatan : adalah cara, bagaimana 8088 dapat mengakses operand ... Format bhs mesin

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

Page 9: Mikroprosesor dan Antarmuka - ITTELKOM · Mode Pengalamatan-Jenis[1] Addressing Mode / Mode Penglamatan : adalah cara, bagaimana 8088 dapat mengakses operand ... Format bhs mesin

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

Page 10: Mikroprosesor dan Antarmuka - ITTELKOM · Mode Pengalamatan-Jenis[1] Addressing Mode / Mode Penglamatan : adalah cara, bagaimana 8088 dapat mengakses operand ... Format bhs mesin

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

Page 11: Mikroprosesor dan Antarmuka - ITTELKOM · Mode Pengalamatan-Jenis[1] Addressing Mode / Mode Penglamatan : adalah cara, bagaimana 8088 dapat mengakses operand ... Format bhs mesin

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

Page 12: Mikroprosesor dan Antarmuka - ITTELKOM · Mode Pengalamatan-Jenis[1] Addressing Mode / Mode Penglamatan : adalah cara, bagaimana 8088 dapat mengakses operand ... Format bhs mesin

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

Page 13: Mikroprosesor dan Antarmuka - ITTELKOM · Mode Pengalamatan-Jenis[1] Addressing Mode / Mode Penglamatan : adalah cara, bagaimana 8088 dapat mengakses operand ... Format bhs mesin

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

Page 14: Mikroprosesor dan Antarmuka - ITTELKOM · Mode Pengalamatan-Jenis[1] Addressing Mode / Mode Penglamatan : adalah cara, bagaimana 8088 dapat mengakses operand ... Format bhs mesin

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

Page 15: Mikroprosesor dan Antarmuka - ITTELKOM · Mode Pengalamatan-Jenis[1] Addressing Mode / Mode Penglamatan : adalah cara, bagaimana 8088 dapat mengakses operand ... Format bhs mesin

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

Page 16: Mikroprosesor dan Antarmuka - ITTELKOM · Mode Pengalamatan-Jenis[1] Addressing Mode / Mode Penglamatan : adalah cara, bagaimana 8088 dapat mengakses operand ... Format bhs mesin

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

Page 17: Mikroprosesor dan Antarmuka - ITTELKOM · Mode Pengalamatan-Jenis[1] Addressing Mode / Mode Penglamatan : adalah cara, bagaimana 8088 dapat mengakses operand ... Format bhs mesin

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

Page 18: Mikroprosesor dan Antarmuka - ITTELKOM · Mode Pengalamatan-Jenis[1] Addressing Mode / Mode Penglamatan : adalah cara, bagaimana 8088 dapat mengakses operand ... Format bhs mesin

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

Page 19: Mikroprosesor dan Antarmuka - ITTELKOM · Mode Pengalamatan-Jenis[1] Addressing Mode / Mode Penglamatan : adalah cara, bagaimana 8088 dapat mengakses operand ... Format bhs mesin

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