Mp 4 mode-pengalamatan

37
Muchlas, Mode Pengalamatan Mikroprosesor Mikroprosesor Bab 4: Mode Pengalamatan (Addressing Mode) KELUARGA INTEL 8086 SIMULATOR SMS32V23 1

Transcript of Mp 4 mode-pengalamatan

Page 1: Mp 4 mode-pengalamatan

Muchlas, Mode Pengalamatan Mikroprosesor

Mikroprosesor

Bab 4: Mode Pengalamatan(Addressing Mode)

KELUARGA INTEL 8086

SIMULATOR SMS32V23

1

Page 2: Mp 4 mode-pengalamatan

Program DEBUG

• DEBUG merupakan program yang berjalan di atas sistem operasi DOS yang dapat digunakan untuk mengeksplorasi resources yang dimiliki prosesor 8086. Menjalankan DEBUG:

C:\DEBUG• Melalui DEBUG kita dapat menulis instruksi

assembly, menjalankan instruksi assembly, melihat isi register, melihat isi memori maupun memodifikasi isi memori.

Muchlas, Mode Pengalamatan Mikroprosesor

2

Page 3: Mp 4 mode-pengalamatan

Program DEBUG

Muchlas, Mode Pengalamatan Mikroprosesor

3

• Setelah program DEBUG dijalankan, Ketik R untuk melihat isi register!

AX=00 00

AL (8-bit)

AH (8-bit)

BX=00 00

BL (8-bit)

BH (8-bit)

CX=00 00

CL (8-bit)

CH (8-bit)

DX=00 00

DL (8-bit)

DH (8-bit)

Register serbaguna mikroprosesor 8086 dilihat dengan program DEBUG

Page 4: Mp 4 mode-pengalamatan

Muchlas, Mode Pengalamatan Mikroprosesor

4

STACK POINTER

BASE POINTER

SOURCE INDEX

DESTINATION INDEX

DATA SEGMENT

EXTRA SEGMENT

STACK SEGMENT

CODE SEGMENT INSTRUCTION POINTER

Register-register khusus (special purpose) mikroprosesor 8086 dilihat dengan program DEBUG:

Page 5: Mp 4 mode-pengalamatan

Muchlas, Mode Pengalamatan Mikroprosesor

5

Register-register bendera mikroprosesor 8086 dilihat dengan program DEBUG:

•Bendera Overflow: NV (No oVerflow, reset), OV (Overflow, set)

•Bendera Sign: PL (PLus, reset), NG (NeGative, set)

•Bendera Zero: NZ (No Zero, reset), ZR (ZeRo, set)

•Bendera Auxiliary Carry: NA (No Aux., reset), AC (Aux. Carry, set)

•Bendera Parity: PO (Parity Odd, reset), PE (Parity Even, set)

•Bendera Carry: NC (No Carry, reset), CY (Carry, set)

Page 6: Mp 4 mode-pengalamatan

Muchlas, Mode Pengalamatan Mikroprosesor

6

Alamat relatif 100H

Melihat isi memori dengan program DEBUG:Setelah program DEBUG dijalankan, Ketik D untuk melihat isi memori!

Alamat relatif 10FH

Page 7: Mp 4 mode-pengalamatan

Bahasa Pemrograman

• High Level Language (HLL): bahasa pemrograman yang menggunakan variabel sebagai peyimpan data. Contoh: pemrograman Matlab untuk menghitung 5+2:

A=5;B=2;A=A+B;

A, B, dan C adalah variabel. Contoh HLL yang lain: Pascal (Delphi), dan C++.

Muchlas, Mode Pengalamatan Mikroprosesor

7

Page 8: Mp 4 mode-pengalamatan

Bahasa Pemrograman

• Low Level Language (assembly): bahasa pemrograman yang menggunakan register sebagai peyimpan data. Contoh: pemrograman untuk menghitung 5+2:

MOV AL,5ADD AL,2

AL adalah register

Muchlas, Mode Pengalamatan Mikroprosesor

8

Page 9: Mp 4 mode-pengalamatan

Level Kode

Format Assembly Format Heksadesimal

Level MesinLevel Manusia

Muchlas, Mode Pengalamatan Mikroprosesor

9

Page 10: Mp 4 mode-pengalamatan

Format instruksi assembly

1. Baris pertama adalah instruksi mesin 2 alamat seperti INTEL, artinya pindahkan/isikan (MOV) ke dalam register AL bilangan 5 heksadesimal

2. Baris kedua instruksi mesin 1 alamat seperti MOTOROLA, atinya pindahkan/isikan ke dalam Register A bilangan 5 heksadesimal.

LABEL OPCODE OPERAND COMMENT

Contoh: MOV AL,5LDAA #$5

Muchlas, Mode Pengalamatan Mikroprosesor

10

Page 11: Mp 4 mode-pengalamatan

Mode PengalamatanPada Mikroprosesor Keluarga 8086

• Merupakan cara memberikan perintah transfer/pemindahan data dari lokasi satu ke lokasi lainnya.

• Lokasi pemindahan data dapat meliputi: register, alamat memori, maupun piranti I/O

• Pemrogram (manusia) menulis instruksi dalam format assembly, selanjutnya oleh compiler (program) diubah menjadi format heksadesimal dan disimpan dalam memori.

Muchlas, Mode Pengalamatan Mikroprosesor

11

Page 12: Mp 4 mode-pengalamatan

Pengertian Mikroprosesor 12

Lokasi Pemindahan Data

MP ROM RAM

BUS ALAMAT

BUS DATA

BUS KONTROL

I/O Interface

Lokasi register

Lokasi memori Lokasi I/O

Page 13: Mp 4 mode-pengalamatan

I. Mode Pengalamatan Segera(Immediate Addressing)

Bentuk:

MOV AL,5

SUMBER:

DATA

TUJUAN: REGISTER/ AKUMULATOR

Immediate addressing merupakan mode pengalamatan yang digunakan untuk mengisi suatu register dengan data.

Muchlas, Mode Pengalamatan Mikroprosesor

13

Arti: isilah atau copy 5 heksadesimal ke register AL

Page 14: Mp 4 mode-pengalamatan

Muchlas, Mode Pengalamatan Mikroprosesor

14

Untuk mempelajari mode pengalamatan dapat digunakan program DEBUG. Jalankan program DEBUG, kemudian berikan perintah A untuk menulis program assembly. Tulis program assembly seperti berikut ini!

MOV AL,15MOV BL,21MOV CX,1A2BMOV DX,5678

Setelah program ditulis, coba jalankan ke-4 instruksi tersebut dengan memberi perintah trace dengan mengetik T diikuti ENTER sebanyak 4 kali!

Jika tugas di atas dilakukan dengan benar, maka hasilnya adalah:

Page 15: Mp 4 mode-pengalamatan

Muchlas, Mode Pengalamatan Mikroprosesor

15

Terlihat bahwa isi register AL=15, isi register BL=21, isi register CX=1A2B dan isi register DX=5678.

Page 16: Mp 4 mode-pengalamatan

Muchlas, Mode Pengalamatan Mikroprosesor

16

Selanjutnya, lihat isi memori dengan perintah D, akan terlihat:

Dari gambar di atas, terlihat kode:B0 15 B3 21 B9 2B 1A BA 78 56, hal itu menunjukkan kode-kode keempat instruksi di atas dalam format heksadesimal. Dalam hal ini: MOV AL,15 memiliki kode heksadesimal B0 15 menempati alamat memori 0100 dan 0101, sedangkan B3 21 adalah kode heksadesimal untuk instruksi MOV BL,21 dan menempati alamat memori 0102 dan 0103 dan seterusnya.

Page 17: Mp 4 mode-pengalamatan

Contoh Lain Mode Pengalamatan Segera:

• MOV AX,A1B2 apa artinya?• MOV BL,03 apa artinya?• MOV BP,1234 apa artinya?• Register yang dapat diisi data dengan mode

pengalamatan segera: AX,BX,CX,DX,AL,AH,BL,BH,CL,CH,DL,DH, BP,SP,SI,DI

• Register segmen tidak dapat diisi dengan mode pengalamatan segera

• Alamat memori juga tidak dapat diisi secara immediate

Muchlas, Mode Pengalamatan Mikroprosesor

17

Page 18: Mp 4 mode-pengalamatan

II. Mode Pengalamatan Register(Register Addressing)

Bentuk:

MOV AL,BL

SUMBER: REGISTER

TUJUAN: REGISTER

Register addressing adalah mode pengalamatan yang digunakan untuk mentransfer data (byte/word) dari register sumber ke register tujuan.

Muchlas, Mode Pengalamatan Mikroprosesor

18

Arti: copy isi register BL ke register AL

Page 19: Mp 4 mode-pengalamatan

Contoh Mode Pengalamatan Register:

• MOV AL, BL ⇒ apa artinya?

• MOV AX, CX ⇒ apa artinya?

• MOV CS, AX ⇒ apa artinya?

• MOV CS, DS ⇒ tidak diijinkan karena segment to segment

• MOV BL, BX ⇒ Tidak dijinkan karena berbeda ukuran (mixed size)

Muchlas, Mode Pengalamatan Mikroprosesor

19

Page 20: Mp 4 mode-pengalamatan

Contoh Mode Pengalamatan Register:

• Susun perintah untuk mengisi register segmen DS dengan data 1234 heksadesimal!

• Jawab:MOV AX,1234 immediate addressing

MOV DS,AX register addressing

Muchlas, Mode Pengalamatan Mikroprosesor

20

Page 21: Mp 4 mode-pengalamatan

III. Mode Pengalamatan Langsung(Direct Addressing)

Bentuk 1:

MOV AL,[0120]

SUMBER: ALAMAT RELATIF MEMORI

Direct addressing merupakan mode pengalamatan untuk mentransfer data antar memori dan register

Muchlas, Mode Pengalamatan Mikroprosesor

21

Arti: copy data pada alamat relatif memori 0120 ke register AL

TUJUAN: REGISTER

Page 22: Mp 4 mode-pengalamatan

Contoh Bentuk 1:

Susun instruksi assembly untuk memindahkan/copy isi alamat 10120 heksadesimal ke register AL, isi alamat 10150 heksadesimal ke register BL, dan isi alamat 10160 heksadesimal ke register CL! Anggap segment base 1000 tersimpan pada register DS!Jawab:

MOV AX,1000 immediate addressingMOV DS,AX register addressingMOV AL,[0120] direct addressing

MOV BL,[0150] direct addressingMOV CL,[0160] direct addressing

Coba kerjakan contoh di atas menggunakan program DEBUG!

Muchlas, Mode Pengalamatan Mikroprosesor

22

Page 23: Mp 4 mode-pengalamatan

Bentuk 2:

MOV [0120],AL

SUMBER: REGISTER

TUJUAN: ALAMAT RELATIF MEMORI

Contoh: susun instruksi untuk mengisi alamat 10120 dengan data 5 heksadesimal! Anggap segment base yang digunakan adalah 1000 tersimpan dalam DS!

Muchlas, Mode Pengalamatan Mikroprosesor

23

Page 24: Mp 4 mode-pengalamatan

Jawab: MOV AX,1000 IMMEDIATE ADDRESSINGMOV DS,AX REGISTER ADDRESSINGMOV AL,5 IMMEDIATE ADDRESSINGMOV [0120],AL DIRECT ADDRESSING

Tugas1: Susun instruksi untuk mengisi alamat 20150 heksadesimal dengan data 5, dan alamat 20160 heksadesimal dengan data 2. Isi kedua alamat tersebut dijumlahkan dan hasilnay disimpan di alamat 20170 heksadesimal. Anggap segment base yang digunakan adalah 2000 tersimpan dengan DS! Gunakan program DEBUG untuk menguji program anda, tunjukkan dengan peta memori dan register bahwa program telah berjalan dengan baik.

Muchlas, Mode Pengalamatan Mikroprosesor

24

Page 25: Mp 4 mode-pengalamatan

IV. Mode Pengalamatan Tak Langsung(Indirect Addressing)

Merupakan mode pengalamatan untuk mentransfer DATA/byte/word antar register dan lokasi yang alamatnya ditunjukkan oleh isi suatu register.

Contoh MOV [BX], AX ⇒ Pindahkan isi register AX ke

dalam alamat memori yang ditunjukkan oleh isi register BX

Muchlas, Mode Pengalamatan Mikroprosesor

25

Page 26: Mp 4 mode-pengalamatan

Contoh permasalahan Susunlah intruksi ke dalam bahasa assembly untuk memindahkan data A1B2 yang ada di register AX ke alamat fisik memori 20300 heksadesimal menggunakan mode pengalamatan register indirect, anggap segment yang digunakan adalah DS = 2000 dan alamat relatif yang menunjukkan alamat memory disimpan di register BXJawab:DS : IP = 20300 alamat fisik DS = 20000 alamat awal DS IP = 0300Intruksi yang digunakan

MOV AX, 2000MOV DS, AXMOV BX, 0300MOV AX, A1B2MOV [BX], AX

MOV AX, 2000MOV DS, AXMOV AX, A1B2MOV [0300], AX

DIRECT:

Muchlas, Mode Pengalamatan Mikroprosesor

26

Page 27: Mp 4 mode-pengalamatan

V. Base Plus Index Addressing Yaitu mode pengalamatan yang digunakan untuk mentransfer byte/word antar register dan memori yang alamatnya ditunjukkan oleh jumlah register base dan index.Bentuk1: MOV [BX + SI], AX

Bentuk2: MOV AX,[BX+SI]

Tugas2:Susun intruksi dalam bahasa assembly untuk memindahkan isi akumulator AX yakni A1B2 ke alamat memori 10500 heksadesimal dengan menggunakan mode pengalamatan base plus index, anggap segmen yang digunakan DS = 1000 dan register indeks yang digunakan SI = 300

Muchlas, Mode Pengalamatan Mikroprosesor

27

Page 28: Mp 4 mode-pengalamatan

V. Register Relative Addressing Yaitu mode pengalamatan untuk tranfer byte/word antar register dan memori yang alamatnya ditunjukkan oleh isi suatu register dan jaraknya (displacement)

Contoh MOV [BX + 4], AX

Muchlas, Mode Pengalamatan Mikroprosesor

28

Page 29: Mp 4 mode-pengalamatan

Contoh permasalahan Susun intruksi dalam bahasa assembly untuk memindahkan data A1B2 dari akumulator AX ke alamat memori 20304 H dengan menggunakan register relative addressing , anggap segmen yang digunakan DS : 2000 dan dan displacement 4

DS : IP = 20304 DS = 20000 IP = 0304

Intruksi yang digunakan Mov AX,2000Mov DS, AXMov BX,0300Mov AX,A1B2Mov [Bx + 4], AX

Muchlas, Mode Pengalamatan Mikroprosesor

29

Page 30: Mp 4 mode-pengalamatan

VI. Base Relative Plus Index Addressing

Merupakan mode pengalamtan yang digunakan untuk mentransfer byte/word antar register dan memori yang alamatnya ditunjukkan oleh suatu register base dan register index ditambah displacement nya Contoh :

MOV AX, [BX + DI + 4]

Muchlas, Mode Pengalamatan Mikroprosesor

30

Page 31: Mp 4 mode-pengalamatan

Mode Pengalamatan Pada SMS32V23

• Immediate Addressing

MOV AL,15 ; Copy 15 heksadesimal ke register ALMOV BL,40 ; Copy 40 heksadesimal ke register BL

MOV CL,50 ; Copy 50 heksadesimal ke register CL

MOV DL,60 ; Copy 60 heksadesimal ke register DL

• Ingat! SMS32V23 atau SMS32V50 hanya memiliki 4 buah register serbaguna yakni AL, BL, CL dan DL.

Muchlas, Mode Pengalamatan Mikroprosesor

31

Page 32: Mp 4 mode-pengalamatan

Mode Pengalamatan Pada SMS32V23

• Indirect Addressing

MOV [40],AL ; Copy value in AL to RAM location [40]

MOV BL,[40] ; Copy value in RAM location [A0] into BL

Muchlas, Mode Pengalamatan Mikroprosesor

32

Page 33: Mp 4 mode-pengalamatan

Mode Pengalamatan Pada SMS32V23

• Register Indirect Addressing

MOV [CL],AL ; Copy the value in AL to the RAM location

that CL points to.

MOV BL,[CL] ; Copy the RAM location that CL points to

into the BL register.

• Ingat! Ukuran RAM (memori) SMS32V23 atau SMS32V50 adalah 256 byte.

Muchlas, Mode Pengalamatan Mikroprosesor

33

Page 34: Mp 4 mode-pengalamatan

Mode Pengalamatan Pada SMS32V23

• Register Addressing

SMS32V23 atau SMS32V50 tidak menyediakan mode pengalamatan ini. Mode ini dijalankan dengan bantuan memori stack dengan perintah PUSH dan POP. Contoh: jika ingin copy data dari register AL ke BL, maka dilakukan dengan cara:

PUSH AL

POP BL

Muchlas, Mode Pengalamatan Mikroprosesor

34

Page 35: Mp 4 mode-pengalamatan

Mode Pengalamatan Pada SMS32V23

• Register Addressing

Muchlas, Mode Pengalamatan Mikroprosesor

35

5

AL BL

5

Memori Stack

PUSH AL

5

AL BL

5

5

Memori Stack

POP BLInstruksinya:MOV AL,5PUSH ALPOP BL

Page 36: Mp 4 mode-pengalamatan

Mode Pengalamatan Pada SMS32V23

• Contoh persoalan

Susun program untuk mengisi alamat 50 dengan data A1 mengunakan akumulator AL. Data tersebut selanjutnya dipindah ke register BL dan isi BL ditambah dengan 5 dan hasilnya di copy ke register CL. Lakukan pengujian dengan simulator SMS32V23 atau SMS32V50!

Muchlas, Mode Pengalamatan Mikroprosesor

36

Page 37: Mp 4 mode-pengalamatan

Mode Pengalamatan Pada SMS32V23

• Jawab:

MOV AL,A1

MOV [50],AL

MOV BL,[50]

ADD BL,5

PUSH BL

POP CL

Muchlas, Mode Pengalamatan Mikroprosesor

37