Sie sind auf Seite 1von 64

Organisasi Komputer (Materi Pendukung)

ARSITEKTUR SOFTWARE MIKROPROSESOR 8088


1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Model Software Mikroprosesor 8088 Space Address Memory dan Organisasi Data Register Segmen dan Segmentasi Memory Pemakaian Khusus dan Umum dari Memory Instruction Pointer Data Registers Pointer dan Index Register Flag Register Pembentukan Address Memory Stack Space Address Input/Output Addressing Mode (Bentuk Pengalamatan) Mikroprosesor 8088

FTI (belum dikoreksi)

UNIVERSITAS BUDI LUHUR

Organisasi Komputer (Materi Pendukung)

Model Software Microprocessor 8088

Model Software: Menjelaskan tentang register-register model pemprograman yang dimiliki oleh microprocessor. Terdapat 13 register 16-bit dan satu register 9-bit.

FTI (belum dikoreksi)

UNIVERSITAS BUDI LUHUR

Organisasi Komputer (Materi Pendukung)

Instruction Pointer (IP) : Segment Register : - CS (Code Segment Register) - DS (Data Segment Register) - SS (Stack Segment Register) - ES (Extra Segment Register) Data Register : - AX (Accumulator Register) - BX (Base Register) - CX (Count Register) - DX (Data Register) Pointer Register : - BP (Base Pointer Register) - SP (Stack Pointer Register) Index Register : - SI (Source Index Register) - DI (Destination Index Register) Satu register 9-bit : SR (Status Register)

FTI (belum dikoreksi)

UNIVERSITAS BUDI LUHUR

Organisasi Komputer (Materi Pendukung)

00000H IP CS DS SS ES AH BH CH DH SP BP SI DI SR FFFFFH AL BL CL DL AX BX CX DX External Memory Code Segment (64K bytes) Data Segment (64K bytes) Stack Segment (64K bytes) Extra Segment (64K bytes)

FTI (belum dikoreksi)

UNIVERSITAS BUDI LUHUR

Organisasi Komputer (Materi Pendukung)

SPACE ALAMAT MEMORY DAN ORGANISASI DATA


00000H 00001H 00002H 00003H 8-bit 1 byte LSB MSB

FFFFBH FFFFCH FFFFDH FFFFEH FFFFFH LSB = least significant byte word MSB = most significant byte word

FTI (belum dikoreksi)

UNIVERSITAS BUDI LUHUR

Organisasi Komputer (Materi Pendukung)

FORMAT DATA DI MEMORY


1 Word data = 2-byte = 16-bit Contoh word data dalam memory: Alamat Memory (biner) 00759H 0075AH Memory (hexadecimal) 0011 0010 1010 0110 32 A6

Pada alamat 00759H berisi: 00110010 = 32H Pada alamat 0075AH berisi: 10100110 = A6H Representasi word dua byte: 1010011000110010 = A632H Least significant bit word data : 0 (genap), word data disimpan pada alamat: 0075AH (genap). word data yang disimpan pada alamat: 0075AH = A632H

FTI (belum dikoreksi)

UNIVERSITAS BUDI LUHUR

Organisasi Komputer (Materi Pendukung)

Alamat Memory (biner) 0083CH 0083DH

Memory (hexadecimal) 1011 1010 1000 0101 BA 45

Pada alamat 0083CH berisi: 10111010 = BAH Pada alamat 0083DH berisi: 01000101 = 45H Representasi word dalam dua byte: 1011101001000101 = BA45H Least significant bit word data : 1 (ganjil), 0 word data disimpan pada alamat: 0083DH (ganjil). Word data yang disimpan pada alamat: 0083DH = BA45H

FTI (belum dikoreksi)

UNIVERSITAS BUDI LUHUR

Organisasi Komputer (Materi Pendukung)

DOUBLE WORD DATA

Double word data digunakan sebagai pointer alamat. Alamat 00563H 00564H 00565H 00566H Memory Offset value low Offset value - high Segment base addr.-low Segment base addr.-high

FTI (belum dikoreksi)

UNIVERSITAS BUDI LUHUR

Organisasi Komputer (Materi Pendukung) Alamat Memory (biner) 00563H 00564H 00565H 00566H Memory (hexadecimal) 1010 1011 0000 0000 0001 1001 0100 0111 AB 00 19 47

Alamat 00563H berisi : 1010 1011 = ABH Alamat 00564H berisi : 0000 0000 = 00H Offset = 00ABH Alamat 00565H berisi : 0001 1001 = 19H Alamat 00566H berisi : 0100 0111 = 47H Segment base addresss = 4719H

FTI (belum dikoreksi)

UNIVERSITAS BUDI LUHUR

Organisasi Komputer (Materi Pendukung) Alamat 00008H 00009H 0000AH 0000BH Memory F 5 0 A F 5 0 0

Alamat 00008H berisi = FFH (LSB) Alamat 00009H berisi = 55H (MSB) Offset = 55FFH Alamat 0000AH berisi = 00H (LSB) Alamat 0000BH berisi = A0H (MSB) Segment base addresss = A000H

FTI (belum dikoreksi)

UNIVERSITAS BUDI LUHUR

10

Organisasi Komputer (Materi Pendukung)

SEGMENT REGISTERS DAN SEGMENTASI MEMORY


Microprocessor 8088 memiliki memory 1Mbyte yang tak dapat diktifkan dalam satu saat. 1M memory dibagi dalam segment-segment 64Kbyte. Hanya yaitu: ada 4 (empat) segment yang dapat diaktifkan pada saat bersamaan; Code segment (CS) Stack Segment (SS) Data Segment (DS) Extra Segment (ES)

FTI (belum dikoreksi)

UNIVERSITAS BUDI LUHUR

11

Organisasi Komputer (Materi Pendukung)

Extra Segment Data Segment

Stack Segment Code Segment

ES DS SS CS

Segment memory yang aktif

FTI (belum dikoreksi)

UNIVERSITAS BUDI LUHUR

12

Organisasi Komputer (Materi Pendukung)

Lokasi segment memori yang aktif dapat diketahui dari masing-masing isi registerregister : CS, SS, DS dan ES Setiap register berisi 16-bit base address yang merupakan lowest-addressed byte dari segment memory. Dari keempat segment yang aktif ini total 256Kbyte; yang dialokasikan menjadi: 64Kbyte untuk Code (program storage) 64Kbyte untuk Stack 128Kbyte untuk Data (data storage)

Contoh : Word di CS menunjuk lokasi penyimpanan byte-wide yang pertama di code segment yang berlaku.

FTI (belum dikoreksi)

UNIVERSITAS BUDI LUHUR

13

Organisasi Komputer (Materi Pendukung)

00000H

K J I

H G Exctra:ES Stack: SS Code: CS Data: DS J H E D B C B E F

FFFFFH

Kondisi segment memory: berdekatan, bersinggungan dan overlapping

FTI (belum dikoreksi)

UNIVERSITAS BUDI LUHUR

14

Organisasi Komputer (Materi Pendukung)

PERUNTUKAN DAN PEMAKAIAN UMUM MEMORY 00000H 00013H 00014H 0007FH 00080H Open FFFEFH FFFF0H FFFFBH FFFFCH FFFFFH Dedicated Reserved Didecated 128-byte dipakai untuk menyimpan pointers to intrrupt service routine. Setiap pointer memerlukan 4-byte; 2-byte untuk untuk menyimpan 16-bit alamat segmen dan 2-byte lainnya untuk menyimpan 16-bit offset.

Reserved

Untuk pemakaian umum Untuk penyimpanan misal: hardware reset jump instruction Untuk fitur product dan biasanya tidak terpakai

FTI (belum dikoreksi)

UNIVERSITAS BUDI LUHUR

15

Organisasi Komputer (Materi Pendukung)

INSTRUCTION POINTER
Instruction Pointer (IP) akan menunjuk alamat berikutnya yang akan dieksekusi dalam Code Segmen (CS) yang berlaku. IP berisi offset dari alamat aktual dari instruksi berikutnya. Offset dalam IP akan dikombinasikan dengan isi register CS untuk menghasilkan alamat instruksi 20-bit. Dalam operasi pengambilan instruksi, satu instruksi diambil dan kemudian di decode dalam 8088, dan operand dibaca dari data segment (DS) atau register. Setiap kali suatu instruksi diambil dari memory, isi IP akan di update sesuai dengan instruksi yang dambil. Dengan demikian IP akan selalu siap untuk menunjuk lokasi instruksi berikutnya yang akan dieksekusi.

FTI (belum dikoreksi)

UNIVERSITAS BUDI LUHUR

16

Organisasi Komputer (Materi Pendukung)

Selam program dieksekusi regsiter-2 ini digunakan sebagai penyimpanan sementara atau untuk penyimpanan hasil sementara. Kelebihan register dari memory adalah register dapat diakses sangat cepat dibanding memory. Data register terdiri dari : AX = Accumulator BX = Base Register CX = Count Register DX = Data register Register AX AL AH BX CX CL DX Operasi Word multiply, word divide, word I/O Byte multiply, byte divide, byte I/O, translate, decimal arithmetic Byte multiply, byte divide Translate String operation, loops Variable shift and Rotate Word multiply, word divide, indirect I/O

DATA REGISTER

FTI (belum dikoreksi)

UNIVERSITAS BUDI LUHUR

17

Organisasi Komputer (Materi Pendukung) Data register dapat digunakan untuk source (sumber) atau destination (tujuan) suatu operand selama operasi arithmetic; seperti ADD atau operasi logika; seperti AND.

Untuk beberapa operasi; sebagaimana yang dibentuk oleh instruksi string, maka akan digunakan register yang tertentu.

Dalam kasus instruksi string, register C digunakan untuk menyimpan byte bilangan yang diproses, sehingga C dikatakan sebagai count register.

Pemakaian C lainnya adalah untuk menghitung bit bilangan dimanan isi operand di geser (shift) atau di putar (rotate) selama eksekusi instruksi multibit shift atau rotate. Pemakaian data register adalah: semua operasi I/O memerlukan data yang akan menjadi input atau output dalam register A, saat address I/O port dipegang oleh register D.

FTI (belum dikoreksi)

UNIVERSITAS BUDI LUHUR

18

Organisasi Komputer (Materi Pendukung)

POINTER REGISTER DAN INDEX REGISTER


Empat General purpose register yang lainnya adalah; dua register pointer: - Stack Pionter Register (SP) - Base Pointer Register (BP) dua register indeks: - Source Index Register (SI) - Destination Index Register (DI). Register-2 tersebut digunakan untuk menyimpan offset address lokasi memory yang relatif terhadap segment register. Nilai yang ada dalam register ini dapat dibaca, diisikan atau diubah.

FTI (belum dikoreksi)

UNIVERSITAS BUDI LUHUR

19

Organisasi Komputer (Materi Pendukung)

SP BP SI DI

Stack Pointer Base Pointer Source Index Destination Index

SP dan BP digunakan sebagai Offset dari sis regsiter SS yang berlaku selama eksekusi instruksi yang melibatkan stack segment memory. Dalam hal ini, memudahkan untuk mengakses lokasi dalam bagian stack memory.

Isi dari SP selalu menampilkan offset dari lokasi stack berikutnya yang akan diakses. Hal tersebut terjadi saat dikombinasikan dengan isi SS, akan menghasilkan address 20-bit yang menunjuk puncak dari stack.

FTI (belum dikoreksi)

UNIVERSITAS BUDI LUHUR

20

Organisasi Komputer (Materi Pendukung)

Pembentukan alamat memory untuk pembacaan data dari memory: (SS SP) 3 0 3 3 4 0 4 4 0 5 0 5 5 3 6 3 9 6 4 0 4 4 SS: Base address SP: Offset SS: Base address SP: Offset 20-bit physical address

BP juga menampilkan relative offset terhadap SS register. Untuk pemakaian dalam mengakses data dalam stack segment di memory.

BP akan digunakan sebagai offset dalam addressing mode (bentuk pengalamatan) yang disebut sebagai Based Addressing mode.

FTI (belum dikoreksi)

UNIVERSITAS BUDI LUHUR

21

Organisasi Komputer (Materi Pendukung) Index regsiter dipakai sebagai offset address untuk instruksi pengakses data yang disimpan di data segment. Oleh karena itu, Register index selalu dikombinasikan dengan dengan nilai yang ada di register DS.

Dalam instruksi yang memakai jenis index addressing: Source Index (SI) register digunakan untuk menyimpan offset address untuk source operand (operand sumber). Destination Index (DI) digunakan untuk menyimpan offset yang mengidentifikasi lokasi dari destination operand (operand tujuan). Contoh: Suatu instruksi string memerlukan suatu offset untuk lokasi source atau destination operand yang akan digunakan oleh register tersebut. Index register dapat juga dipakai sebagai source atau destination register dalam operasi aritmatik maupun operasi logika.

FTI (belum dikoreksi)

UNIVERSITAS BUDI LUHUR

22

Organisasi Komputer (Materi Pendukung)

Tidak seperti general-purpose register, register index harus selalu dipakai dalam operasi 16-bit dan tak dapat sebagai byte yang terpisah. Pembentukan alamat memory untuk pembacaan data dari memory : (DS SI) 1 0 1 1 2 0 2 3 0 3 2 0 4 2 6 3 2 0 1 1 4 1 DS: Base address SI: Offset DS: Base address SI: Offset 20-bit physical address

FTI (belum dikoreksi)

UNIVERSITAS BUDI LUHUR

23

Organisasi Komputer (Materi Pendukung)

STATUS REGISTER
TF DF IF OF SF ZF AF PF CF 1. Carry flag (CF) = 1 : Carry-out atau borrow-in untuk MSB dari hasil eksekusi instruksi aritmatika 0 : sebaliknya 2. Parity flag (PF) = 1 : hasil operasi dari suatu instruksi memiliki paritas genap (even) 0 : hasil operasi dari suatu instruksi memiliki paritas ganjil (odd) 3. Auxiliary carry flag = 1: carry-out (borrow-in) dari low nibble ke high nibble (dari high nibble ke low nibble) atau byte untuk word 16-bit. 4. Zero flag (ZF) = 1 : hasil operasi aritmatik atau logika adalah nol. 0 : sebaliknya 5. Sign flag (SF) = 1 : hasil operasi adalah bilangan negativ 0 : hasil operasi adalah bilangan positif 6. Overflow flag (OF) = 1 : menunjukkan terjadi luapan (overflow) dari hasil operasi. 0 : sebaliknya

FTI (belum dikoreksi)

UNIVERSITAS BUDI LUHUR

24

Organisasi Komputer (Materi Pendukung)

1. Trap flag (TF) = 1: Single Step Mode, mikroprosesor mengeksekusi satu instruksi pada satu saat. Jenis operasi ini sangat bermanfaat untuk debugging program. 2. Interrupt flag (IF) = 1 : mikroprosesor dapat mengenali adanya maskable interrpt request pada INT input 0 : mikroprosesor mengabaikan adanya maskable interrupt request pada INT input pada (masakable interrupt interface disable) 3. Direction flag (DF) = 1: Instruksi string akan secara otomatis men decrement address 0 : instruksi string akan secara otomatis meng increment address

FTI (belum dikoreksi)

UNIVERSITAS BUDI LUHUR

25

Organisasi Komputer (Materi Pendukung)

GENERATING A MEMORY ADDRESS


Sumber dari offset address bisa tergantung dari memory yang ditunjuk sebagai tempat penyimpanan. antara lain : Base Pointer (BP) Stack Pointer (SP) Base Register (BX) Source Index (SI) Destination Index (DI) Instruction Pointer (IP)

Base address selalu berada dalam register segment : Code Segment (CS) Data Segment (DS) Stack Segment (SS) Extra Segment (ES)

FTI (belum dikoreksi)

UNIVERSITAS BUDI LUHUR

26

Organisasi Komputer (Materi Pendukung)

Pembentukan alamat memory untuk pengambilan instruksi: (CS IP) 1 0 1 1 2 0 2 2 0 3 0 3 3 2 4 2 6 4 1 0 1 1 CS: Segment Pointer (base address) IP: Offset CS: Segment Pointer IP: Offset 20-bit physical address

FTI (belum dikoreksi)

UNIVERSITAS BUDI LUHUR

27

Organisasi Komputer (Materi Pendukung)

Pembentukan alamat memory untuk penulisan data ke memory: (DS DI) 4 0 4 4 3 0 3 3 0 2 0 2 2 1 1 1 2 1 2 0 2 2 DS: Segment Pointer DI: Offset DS: Segment Pointer DI: Offset 20-bit physical address

FTI (belum dikoreksi)

UNIVERSITAS BUDI LUHUR

28

Organisasi Komputer (Materi Pendukung)

Pembentukan alamat memory untuk penyimpanan parameter ke stack: (SS SP) 4 0 4 4 3 0 3 3 0 2 0 2 2 2 1 2 3 1 1 0 1 1 SS: Segment Pointer SP: Offset SS: Segment Pointer SP: Offset 20-bit physical address

Pada saat suatu instruksi diambil dari memory: base address nya: code segment (CS) offset nya : Instruction Pointer (IP). Jika nilai dari suatu variabel ditulis ke memory selama eksekusi dari suatu instruksi: base address adalah: data segement (DS) offset nya adalah destination index (DI).

FTI (belum dikoreksi)

UNIVERSITAS BUDI LUHUR

29

Organisasi Komputer (Materi Pendukung)

Stack segment diperlukan pada saat pushing suatu parameter ke stack, alamat ini akan dibentuk dari : base address: stack segment (SS) offset nya : stack pointer (SP)

FTI (belum dikoreksi)

UNIVERSITAS BUDI LUHUR

30

Organisasi Komputer (Materi Pendukung)

STACK
Kapasitas stack 64K byte dan diorganisasikan dari sisi pandang software sebagai 32-K word, atau dengan kata lain setiap word memiliki panjang 16-bit SP : SS : 01050H 01052H 01054H 01054H 01056H 01058H 0105AH 0105CH 0105EH 1104FH 00 08 01 05 CD 89 45 01 AA 88 66 33 73 EF AB 67 23 BB 99 78 12 69

Current Top of the stack

Bottom of the stack

FTI (belum dikoreksi)

UNIVERSITAS BUDI LUHUR

31

Organisasi Komputer (Materi Pendukung) Bottom of the stack : 0 F 0 1 1 F 1 1 F 0 F 0 0 F 5 F 4 5 F 0 F F SS: Segment Pointer SP: Offset SS: Segment Pointer SP: Offset 20-bit address : BOS

FTI (belum dikoreksi)

UNIVERSITAS BUDI LUHUR

32

Organisasi Komputer (Materi Pendukung) Contoh: Setelah instruksi : PUSH AX SP : SS : AX : 01050H 01052H 01054H 01054H 01056H 01058H 0105AH 0105CH 0105EH dieksekusi eksekusi : 00 01 12 CD 89 45 01 34 88 66 33 73 06 05 34 EF AB 67 23 12 99 78 12 69

Current Top of the stack

Bottom of the stack

1104FH

FTI (belum dikoreksi)

UNIVERSITAS BUDI LUHUR

33

Organisasi Komputer (Materi Pendukung) Contoh: Setelah instruksi : POP AX POP BX dieksekusi: SP : SS : AX : BX : 01050H 01052H 01054H 01056H 01058H 0105AH 0105CH 0105EH 1104FH 00 0A 01 05 12 34 99 88 CD 89 01 34 88 66 33 73 EF AB 23 12 99 78 12 69

Current Top of the stack

Bottom of the stack

FTI (belum dikoreksi)

UNIVERSITAS BUDI LUHUR

34

Organisasi Komputer (Materi Pendukung)

INPUT/OUTPUT ADDRESS SPACE


0000H Open 00F7H 00F8H 00FFH 0100H Open

Reserved

FFFFH address 0000H - 00FFH : page 0.

FTI (belum dikoreksi)

UNIVERSITAS BUDI LUHUR

35

Organisasi Komputer (Materi Pendukung)

ADDRESSING MODE
Mikroprosesor mengeksekusi suatu instruksi, berarti mikroprosesor mengerjakan suatu fungsi tertentu terhadap data. Data disebut sebagai operand dan boleh jadi merupakan suatu bagian dari instruksi, diletakkan dalam salah satu regsiter, disimpan dalam memory atau dipegang di port I/O. Untuk mengakses jenis operand yang berbeda tersebut mikroprosesor dilengkapi dengan berbagai Addressing Mode, yang terdiri dari: 1. REGISTER ADDR. MODE 2. IMMEDIATE ADDR. MODE 3. DIRECT ADDR. MODE 4. REGISTER INDIRECT ADDR. MODE 5. BASED ADDR. MODE 6. INDEXED ADDR. MODE 7. BASED INDEXED ADDR. MODE 8. STRING ADDR. MODE 9. PORT ADDR. MODE Kecuali addressing mode: register addressing, port addressing dan immediate addressing, semua addressing mode akan menunjuk suatu operand yang disimpan di memory.

FTI (belum dikoreksi)

UNIVERSITAS BUDI LUHUR

36

Organisasi Komputer (Materi Pendukung)

REGISTER ADDRESSING MODE:


source operand dan destination operand yang merupakan bagian dari instruksi keduanya berada dalam register, maka instruksi yang demikian akan disebut Ciri: source operand dan destination operand berada dalam register. Contoh: MOV AX,BX

Kedua operand pada addressing mode ini adalah register BX : operand sumber AX : operand tujuan.

FTI (belum dikoreksi)

UNIVERSITAS BUDI LUHUR

37

Organisasi Komputer (Materi Pendukung) Address Isi 01000H 01001H 01002H memory Instruksi 8B MOV AX,BX C3 XX Instruksi berikutnya

0000 0100

IP CS DS SS ES AX BX CX DX SP BP SI DI

XXXX ABCD

Instruksi register addressing mode : MOV AX,BX

sebelum dieksekusi

FTI (belum dikoreksi)

UNIVERSITAS BUDI LUHUR

38

Organisasi Komputer (Materi Pendukung) Address Isi 01000H 01001H 01002H memory Instruksi 8B MOV AX,BX C3 XX Instruksi berikutnya

0002 0100

IP CS DS SS ES AX BX CX DX SP BP SI DI

ABCD ABCD

Instruksi register addressing mode : MOV AX,BX setelah dieksekusi

FTI (belum dikoreksi)

UNIVERSITAS BUDI LUHUR

39

Organisasi Komputer (Materi Pendukung)

IMMEDIATE ADDRESSING MODE:


source operand (immediate operand) yang merupakan bagian dari instruksi berada dalam register atau memory. Ciri: immediate operand merepresentasikan data konstanta. Contoh: MOV AL,15H

15H : immediate source operand; nilai immediate operand harus diawali dengan salah satu dari antara bilangan 0 sampai 9; sebagai contoh jika ingin menuliskan A5H maka harus dituliskan sebagai 0A5H. AL : destination operand; isi register AL digunakan sebagai register addressing mode. register ini bekerja diantara immediate dan register addressing mode.

FTI (belum dikoreksi)

UNIVERSITAS BUDI LUHUR

40

Organisasi Komputer (Materi Pendukung) Address Isi 01000H 01001H 01002H 01003H memory Instruksi B0 MOV AL,15H 15 XX Instruksi berikutnya XX

0000 0100

IP CS DS SS ES

XX AX BX CX DX SP BP SI DI Instruksi immediate addressing mode: MOV AL,15H sebelum dieksekusi

FTI (belum dikoreksi)

UNIVERSITAS BUDI LUHUR

41

Organisasi Komputer (Materi Pendukung) Address Isi 01000H 01001H 01002H 01003H memory Instruksi 8B MOV AX,15H C3 XX Instruksi berikutnya XX

0002 0100

IP CS DS SS ES

15 AX BX CX DX SP BP SI DI Instruksi immediate addressing mode: MOV AL,15H sesudah dieksekusi

FTI (belum dikoreksi)

UNIVERSITAS BUDI LUHUR

42

Organisasi Komputer (Materi Pendukung)

DIRECT ADDRESSING MODE :


Lokasi setelah instruksi adalah merupakan suatu effective memory address (EA) dimana data yang dimaksud di simpan. Effective address: offset 16-bit dari lokasi penyimpanan operand dari lokasi yang ditunjuk oleh register DS. EA dikombinasikan dengan isi DS untuk menghasilkan physical address operand didalam memory. Contoh: MOV CX,BETA

Move isi dari suatu lokasi memory yang diberi label BETA dalam data segment DS ke register CX. Assembler akan menghitung offset BETA dari awal data segment dan dikodekan sebagai bagian dari instruksi kode mesin. Nilai dari offset disimpan dalam dua lokasi (dua byte) setelah instruksi. Nilai ini diketahui sebagai penggeser (displacement). Nilai yang ditandai sebagai BETA adalah 1234H. Pada saat instruksi yang dieksekusi, 1234H dikombinasikan dengan 0200H dan didapatkan physical address sebagai berikut :

FTI (belum dikoreksi)

UNIVERSITAS BUDI LUHUR

43

Organisasi Komputer (Materi Pendukung) 0 1 0 0 2 1 3 2 2 0 2 2 0 3 0 3 3 0 4 0 4 4 DS: Segment Pointer BETA: Offset DS: Segment Pointer BETA: Offset 20-bit physical address

Pada alamat 03234H adalah alamat memory yang berisi data BEEDH yang kemudian dipindahkan ke register CX.

FTI (belum dikoreksi)

UNIVERSITAS BUDI LUHUR

44

Organisasi Komputer (Materi Pendukung) Address Isi 01000H 01001H 01002H 01003H 01004H memory Instruksi 8B MOV CX,BETA 0E 34 12 XX Instruksi berikutnya

0000 0100 0200

IP CS DS SS ES AX BX CX DX SP BP SI DI

02000H 02001H

XX XX

XXXX

03234H 03235H

ED BE

Source operand

Instruksi Direct addressing mode: MOV CX,BETA sebelum dieksekusi

FTI (belum dikoreksi)

UNIVERSITAS BUDI LUHUR

45

Organisasi Komputer (Materi Pendukung) Address Isi 01000H 01001H 01002H 01003H 01004H memory Instruksi 8B MOV CX,BETA 0E 34 12 XX Instruksi berikutnya

0004 0100 0200

IP CS DS SS ES AX BX CX DX SP BP SI DI

02000H 02001H

XX XX

BEED

03234H 03235H

ED BE

Source operand

Instruksi Direct addressing mode: MOV CX,BETA setelah dieksekusi

FTI (belum dikoreksi)

UNIVERSITAS BUDI LUHUR

46

Organisasi Komputer (Materi Pendukung)

REGISTER INDIRECT ADDRESSING :


Effective memory address (EA) ditempatkan pada salah satu register BX atau register BP, dan index register dapat source index (SI) atau dfestination index (DI). Register indirect addressing mode serupa dengan direct addressing mode, perbedaannya adalah pada spesifikasi offset. CONTOH: MOV AX,[SI]

Instruksi ini akan memindahkan isi lokasi offset memory dengan nilai EA dalam SI yang dimulai dengan awalnya adalah data segment ke register AX. Jika SI berisi 2345H dan DS berisi 0200H, hasil dari eksekusi instruksi akan menghasilkan physical address:

FTI (belum dikoreksi)

UNIVERSITAS BUDI LUHUR

47

Organisasi Komputer (Materi Pendukung) 0 2 0 0 2 2 4 2 3 0 3 3 0 4 0 4 4 0 5 0 5 5 DS: Segment Pointer SI: Offset DS: Segment Pointer SI: Offset 20-bit physical address

Isi dari lokasi memori : 04345H kemudian dipindahkan ke register AX. Perbedaan dengan direct addressing mode adalah cara menghasilkan physical address: pada direct addressing offsetnya dan effective memory address (EA) adalah konstanta sedangkan pada register indirect addressing EA dihitung dan disimpan dalam regsiter index (pada contoh yang digunakan SI).

FTI (belum dikoreksi)

UNIVERSITAS BUDI LUHUR

48

Organisasi Komputer (Materi Pendukung) Address Isi 01000H 01001H 01002H 01003H 01004H 02000H 02001H memory Instruksi 88 MOV AX,[SI] 07 45 23 XX Instruksi berikutnya XX XX

0000 0100 0200

IP CS DS SS ES AX BX CX DX SP BP SI DI

XXXX

2345

04345H 04346H

B0 A0

Source operand

Instruksi Register direct addressing mode: MOV AX,[SI] sebelum dieksekusi

FTI (belum dikoreksi)

UNIVERSITAS BUDI LUHUR

49

Organisasi Komputer (Materi Pendukung) Address Isi 01000H 01001H 01002H 01003H 01004H 02000H 02001H memory Instruksi 88 MOV AX,[SI] 07 45 23 XX Instruksi berikutnya XX XX

0004 0100 0200

IP CS DS SS ES AX BX CX DX SP BP SI DI

A0B0

2345

04345H 04346H

B0 A0

Source operand

Instruksi Register direct addressing mode: MOV AX,[SI] setelah dieksekusi

FTI (belum dikoreksi)

UNIVERSITAS BUDI LUHUR

50

Organisasi Komputer (Materi Pendukung)

BASE ADDRESSING MODE :


Dalam base addressing mode physical address operand didapatkan dengan menjumlahkan suatu penggeser langsung (direct displacement) atau tak langsung (indirect displacement) ke isi dari salah satu dari register BX atau regsiter BP dan isi dari register DS atau SS. Instruksi MOV yang memakai based addressing mode adalah untuk menentukan lokasi dari operand tujuannya. CONTOH: MOV (BX)+BETA,AL Instruksi ini memakai base register BX dan direct displacement BETA untuk menentukan EA dari operand tujuan. Based addressing mode di implementasi kan dengan spesifikasi register base dalam kurung diikuti dengan tanda + dan direct displacement. Source operand dalam contoh ini diletakkan ke dalam 1-byte accumulator AL. Sebagaimana ditujukkan dalam gambar, pengambilan dan eksekusi dari instruksi ini akan menghasilkan physical address dari operand tujuan dari isi DS, BX dan direct displacement.

FTI (belum dikoreksi)

UNIVERSITAS BUDI LUHUR

51

Organisasi Komputer (Materi Pendukung) 0 1 1 0 0 2 1 1 4 2 0 2 0 0 2 2 0 0 3 0 0 3 3 0 0 4 0 0 4 4 DS: Segment Pointer BX : Offset BETA : Direct displ. DS: Segment Pointer BX : Offset BETA : Direct displ 20-bit physical address

Physical address : 04234H physical address dari destination operand. Jika instruksi ini menggunakan register BP maka register DS diganti dengan register SS. Maka bentuk ini akan memungkinkan untuk mengakses data dalam stack segment memory.

FTI (belum dikoreksi)

UNIVERSITAS BUDI LUHUR

52

Organisasi Komputer (Materi Pendukung) Address Isi 01000H 01001H 01002H 01003H 01004H memory Instruksi 8A MOV [BX]+BETA,AL 20 34 12 XX Instruksi berikutnya

0000 0100 0200

IP CS DS SS ES AX BX CX DX SP BP SI DI

BE ED 1000

05000H 05001H

04234H 04235H

XX XX

Destination operand

Instruksi based addressing mode : MOV [BX]+BETA,AL

sebelum dieksekusi

FTI (belum dikoreksi)

UNIVERSITAS BUDI LUHUR

53

Organisasi Komputer (Materi Pendukung) Address Isi 01000H 01001H 01002H 01003H 01004H memory Instruksi 8A MOV [BX]+BETA,AL 20 34 12 XX Instruksi berikutnya

0004 0100 0200

IP CS DS SS ES AX BX CX DX SP BP SI DI

BE ED 1000

05000H 05001H

04234H 04235H

ED XX

Destination operand

Instruksi based addressing mode : MOV [BX]+BETA,AL

sesudah dieksekusi

FTI (belum dikoreksi)

UNIVERSITAS BUDI LUHUR

54

Organisasi Komputer (Materi Pendukung)

INDEXED ADDRESSING MODE :


Indexed addressing mode bekerja identik dengan based addressing mode, bedanya adalah menggunakan register index untuk menggantikan fungsi dari register BX atau BP dalam menghasilkan physical address. CONTOH: MOV AL,[SI]+ARRAY Source operand dispecifikasikan dengan memakai index register. Notasi dalam instruksi ini; misal ARRAY, adalah merupakan direct displacement, yang ditambahkan ke register index yang digunakan, SI. Seperti juga pada based addressing mode, index register dituliskan dalam tanda kurung. Effective addres dapat dihitung sebagai berikut: EA = (SI) + ARRAY Physical address didapatkan dari combinasi antara isi DS dengan EA. Dalam contoh, hasil eksekusi dari instruksi tersebut akan menghasilkan physical address yang dihitung dari DS dan EA atau dari DS, SI dan direcct displacement.

FTI (belum dikoreksi)

UNIVERSITAS BUDI LUHUR

55

Organisasi Komputer (Materi Pendukung)

0 2 1 0 0 2 2 1 5

2 0 2 0 0 2 2

0 0 3 0 0 3 3

0 0 4 0 0 4 4

DS: Segment Pointer SI : Offset ARRAY : Direct displ. DS: Segment Pointer SI : Offset ARRAY : Direct displ. 20-bit physical address

FTI (belum dikoreksi)

UNIVERSITAS BUDI LUHUR

56

Organisasi Komputer (Materi Pendukung) Address Isi memory Instruksi 01000H 8A MOV AL,[SI]+ARRAY 01001H 44 01002H 34 01003H 12 01004H XX Instruksi berikutnya 01005H

0000 0100 0200

IP CS DS SS ES

XX

XX AX BX CX DX SP BP SI DI

04000H 04001H

XX XX

2000

05234H

BE

source operand

Instruksi indexed addressing mode : MOV AL, [SI]+ARRAY

sebelum dieksekusi

FTI (belum dikoreksi)

UNIVERSITAS BUDI LUHUR

57

Organisasi Komputer (Materi Pendukung) Address Isi 01000H 01001H 01002H 01003H 01004H 01005H memory Instruksi 8A MOV AL,[SI]+ARRAY 44 34 12 XX Instruksi berikutnya

0004 0100 0200

IP CS DS SS ES

XX

BE AX BX CX DX SP BP SI DI

04000H 04001H

XX XX

2000

05234H

BE

source operand

Instruksi indexed addressing mode : MOV AL, [SI]+ARRAY

setelah dieksekusi

FTI (belum dikoreksi)

UNIVERSITAS BUDI LUHUR

58

Organisasi Komputer (Materi Pendukung)

BASED INDEXED ADDRESSING MODE :


Kombinasi antara based addressing mode dengan indexed addressing mode menghasilkan suatu addressing mode yang disebut sebagai based indexed addressing mode. Contoh source operand yang diakses memakai based indexed addressing mode adalah: MOV AH,[BX][SI]+BETA Effective memory address (EA) dari source operand didapat sebagai: EA = (BX) + (SI) + BETA Dan physical address dari operand adalah data segment BS yang dihitung dengan EA. Perhitungan untuk contoh adalah sebagai berikut:

FTI (belum dikoreksi)

UNIVERSITAS BUDI LUHUR

59

Organisasi Komputer (Materi Pendukung)

0 1 2 1 0 2 1 2 1 6

2 0 0 2 0 0 0 2 2

0 0 0 3 0 0 0 3 3

0 0 0 4 0 0 0 4 4

DS: Segment Pointer BX SI BETA : Direct displ. DS: Segment Pointer BX SI BETA : Direct displ 20-bit physical address

FTI (belum dikoreksi)

UNIVERSITAS BUDI LUHUR

60

Organisasi Komputer (Materi Pendukung) Address Isi 01000H 01001H 01002H 01003H 01004H 01005H memory Instruksi 8A MOV AH,[BX][SI]+BETA 44 34 Instruksi berikutnya 12 XX

0000 0100 0200

IP CS DS SS ES

XX XX AX 1000 BX CX DX SP BP SI DI

04000H 04001H

XX XX

2000

06234H

BE

Source operand

Instruksi indexed addressing mode : MOV AH, [BX][SI]+BETA sebelum dieksekusi Address Isi memory Instruksi

FTI (belum dikoreksi)

UNIVERSITAS BUDI LUHUR

61

Organisasi Komputer (Materi Pendukung) 01000H 0004 0100 0200 IP CS DS SS ES 01001H 01002H 01003H 01004H 01005H 8A 44 34 12 XX MOV AH,[BX][SI]+BETA

Instruksi berikutnya

BE XX AX 1000 BX CX DX SP BP SI DI

04000H 04001H

XX XX

2000

06234H

BE

source operand

Instruksi indexed addressing mode : MOV AH, [BX][SI]+BETA

setelah dieksekusi

FTI (belum dikoreksi)

UNIVERSITAS BUDI LUHUR

62

Organisasi Komputer (Materi Pendukung)

STRING ADDRESSING MODE :

Instruksi string dari instruksi set 8088 secara otomatis dipakai sebagai source dan destination index register untuk menentukan effective address dari source dan destination operand. Contoh instruksi string : MOVS

Tidak salah satupun register SI atau DI akan muncul dalam deskripsi dari instruksi string, tetapi keduanya dipakai selama instruksi dieksekusi.

FTI (belum dikoreksi)

UNIVERSITAS BUDI LUHUR

63

Organisasi Komputer (Materi Pendukung)

PORT ADDRESSING MODE :


Port addressing mode digunakan dalam instruksi IN dan OUT untuk mengakses I/O port. Untuk port yang ada dalam I/O address space, hanya direct addressing mode dan indirect addressing mode yang menggunakan DX. Contoh direct addressing mode dari suatu port input digunakan dalam instruksi: IN AL,15H Instruksi ini akan memungkinkan input data dari port input pada alamat 15H dari I/O address space ke register AL. Contoh lainnya, dengan memakai indirect port addressing mode untuk source operand dalam instruksi IN : IN AL,DX Instruksi ini memiliki arti input data dari input port yang ditunjuk oleh isi register DX. Jika isi DX = 1234H, maka isi dari port 1234H dari address space akan diisikan ke register AL.

FTI (belum dikoreksi)

UNIVERSITAS BUDI LUHUR

64