Mikroprosesor

Bab 3: Arsitektur Mikroprosesor
INTEL 8085 INTEL 8086 SIMULATOR SMS32V23

Arsitektur Mikroprosesor

1

Arsitektur Mikroprosesor INTEL 8085

Arsitektur Mikroprosesor

2

Arsitektur Mikroprosesor INTEL 8085
ALU dan Register yang digunakan • ALU dalam 8085 menerima masukan dari dua register yakni AKUMULATOR (REGISTER A) dan register sementara TMP.
8-BIT INTERNAL DATA BUS ACCUMULATOR TEMP. REG. ALU

Arsitektur Mikroprosesor

3

Arsitektur Mikroprosesor INTEL 8085
ALU dan Register yang digunakan • ALU melaksanakan penjumlahan, pengurangan dan operasi logika khusus pada pasangan byte masukan dalam register A dan TMP. • Akumulator: sebagai sumber masukan dan tujuan hasil operasi ALU, dapat diakses oleh pemrogram. • Register TMP diisi data dari lokasi lainnya, tak dapat diakses pemrogram sehingga dinamakan register tak tampak.
Arsitektur Mikroprosesor 4

Arsitektur Mikroprosesor INTEL 8085
ALU dan Register yang digunakan • Contoh: Suatu perintah untuk menambahkan isi lokasi memori ke akumulator akan menyebabkan isi lokasi tertentu dipindahkan ke register TMP sebelum proses penjumlahan yang sebenarnya dilakukan. Keadaan awal: Isi akumulator : 5, isi TMP=0 Keadaan berikutnya: Isi akumulator : 5, isi TMP=3 Keadaan setelah ALU melakukan penjumlahan: Isi akumulator : 8, isi TMP=3
Arsitektur Mikroprosesor 5

8-BIT INTERNAL DATA BUS ACC TMP FLAG FLIP FLOPS ALU Arsitektur Mikroprosesor 6 .Arsitektur Mikroprosesor INTEL 8085 ALU dan Register yang digunakan • ALU membangkitkan bit bendera (flag bit) yang disimpan dalam REGISTER BENDERA.

Arsitektur Mikroprosesor INTEL 8085 ALU dan Register yang digunakan • Lokasi bit setiap bendera dalam register bendera: S Z AC P CY S: Sign Flag (bendera tanda) Z: Zero Flag (bendera nol) AC: Auxiliary Carry Flag (bendera sisa tambahan) P: Parity Flag (bendera paritas) CY: Carry Flag (bendera sisa) Arsitektur Mikroprosesor 7 .

• Bendera sign akan diset (S=1). jika pelaksanaan perintah oleh ALU menghasilkan bilangan negatif. Arsitektur Mikroprosesor 8 . jika operasi ALU memberikan hasil 0. • Bendera zero akan diset (Z=1).Arsitektur Mikroprosesor INTEL 8085 ALU dan Register yang digunakan • Register bendera (flag register) digunakan untuk mengetahui keadaan hasil pelaksanaan instruksi oleh ALU.

bit ke 3 menghasilkan carry.Arsitektur Mikroprosesor INTEL 8085 ALU dan Register yang digunakan • Bendera AC akan diset (AC=1). jika dalam penjumlahan. Contoh: Bit ke-7 Bit ke-3 Bit ke-0 0011 0010 0000 0101 + 0011 0111 Penjumlahan bit ke-3 tidak menghasilkan carry sehingga AC=0 isi Akumulator isi TMP isi Akumulator setelah perintah penjumlahan dilaksanakan 9 Arsitektur Mikroprosesor .

Arsitektur Mikroprosesor INTEL 8085 ALU dan Register yang digunakan • Contoh yang lain 0010 1000 0000 1001 + 0011 0001 Penjumlahan bit ke-3 menghasilkan carry sehingga AC=1 isi Akumulator isi TMP isi Akumulator setelah perintah penjumlahan dilaksanakan Arsitektur Mikroprosesor 10 .

Arsitektur Mikroprosesor INTEL 8085 ALU dan Register yang digunakan • Bendera paritas (parity flag) akan diset (P=1). maka P= 1 Output ALU=00101010. Contoh: Output ALU=01100011. maka P= 0 Arsitektur Mikroprosesor 11 . jika pelaksanaan perintah oleh ALU menghasilkan jumlah bit 1 genap dan reset (P=0) jika jumlah bit 1 ganjil.

Contoh: 1 ---> carry 1010 1000 1000 1001 + 0011 0001 Penjumlahan bit ke-7 menghasilkan carry sehingga CY=1 isi Akumulator isi TMP isi Akumulator setelah perintah penjumlahan dilaksanakan 12 Arsitektur Mikroprosesor . jika operasi ALU menghasilkan carry.Arsitektur Mikroprosesor INTEL 8085 ALU dan Register yang digunakan • Bendera carry akan diset (CY=1).

Arsitektur Mikroprosesor INTEL 8085 Bagian Register • Memiliki 6 buah register serbaguna yang dapat digunakan secara terpisah sebagai register 8-bit. L • Pasangan Register HL. Arsitektur Mikroprosesor 13 . C. D. • Register B dan C sering dipakai sebagai penyimpan sementara untuk data tunggal. atau berpasangan untuk menyimpan data 16 bit. • Register 8-bit: B. E. isi HL dan DE dapat ditukar dengan perintah tunggal. H. pasangan register DE sering digunakan sebagai register pasangan untuk menyimpan alamat memori.

Arsitektur Mikroprosesor INTEL 8085 Bagian Register • Register Serbaguna Pada 8085: 8-bit 8-bit REGISTER B REGISTER C REGISTER D REGISTER E REGISTER H REGISTER L 16-bit Arsitektur Mikroprosesor 14 .

tetapi menggunakan sebagian lokasi RAM.Arsitektur Mikroprosesor INTEL 8085 Bagian Register • Register SP (stack pointer) atau penunjuk tumpukan merupakan register 16 bit yang menunjuk lokasi tumpukan di RAM. 8085 tidak memiliki register tumpukan internal. sehingga panjang tumpukan tidak tetap dapat diubah sesuai keperluan. Arsitektur Mikroprosesor 15 .

Register PC pada 8085 panjang 16-bit sehingga prosesor ini mampu mengalamati : 216 lokasi alamat memori atau 65536 lokasi memori atau 64 kilo byte Stack Pointer (SP) Program Counter (PC) 16-bit Arsitektur Mikroprosesor 16 . Setelah RESET.Arsitektur Mikroprosesor INTEL 8085 Bagian Register • Register PC (program counter): merupakan register yang berisi alamat perintah berikutnya yang akan diambil. PC=0.

• 8086 memiliki bus data 16-bit. dan sebagian besar instruksi-instruksinya dirancang untuk bekerja pada data 16-bit. Arsitektur Mikroprosesor 17 . artinya bagian ALU. register internalnya. jadi ia dapat membaca data dari atau menyimpan data ke memori dan port-port yang ada dalam format 16-bit atau 8-bit .Arsitektur Mikroprosesor INTEL 8086 Tinjauan Umum • 8086 merupakan mikroprosesor 16-bit.

8088 memiliki ALU. • Prosesor lain yang sejenis dengan 8086 adalah 8088. dan set instruksi yang sama dengan 8086. jadi ia juga bisa mengalamati memori 1 MB. Arsitektur Mikroprosesor 18 . sedangkan register PC atau IP (instruction pointer) yang dimilikinya panjangnya 16-bit.Arsitektur Mikroprosesor INTEL 8086 Tinjauan Umum • 8086 memiliki bus alamat 20-bit. register.576 lokasi memori atau 1 MB memori. 8088 juga memiliki bus alamat 20-bit.048. sehingga ia dapat mengalamati 220 atau 1. Hal inilahyang merupakan keunggulan dari 8086.

8088 hanya dapat membaca dari atau menulisi data ke memori dan portport dengan panjang 8-bit. Arsitektur Mikroprosesor 19 . Untuk membaca word 16-bit dari dua lokasi memori. 8088 selalu mengerjakan dengan dua operasi baca.Arsitektur Mikroprosesor INTEL 8086 Tinjauan Umum • Perbedaan 8088 dan 8086. sedangkan 8086 lebar bus datanya 16-bit. 8088 memiliki bus data 8-bit. 8088 pada awalnya digunakan sebagai CPU pada The Original IBM Personal Computer.

Arsitektur Mikroprosesor INTEL 8086 20 bit 16 bit Register Antrian (FIFO) Arsitektur Mikroprosesor 20 .

dan membaca data dari port dan memori. BIU menangani semua trnasfer data dan alamat pada bus untuk membantu EU. • BIU bertugas mengirim kode-kode alamat keluar. • EU meminta BIU untuk mengambilkan instruksi dan data dari memori. mendekode dan melaksanakan instruksi Arsitektur Mikroprosesor 21 . mengambil instruksi dari memori. yakni BIU (bus interface unit) dan EU (execution unit).Arsitektur Mikroprosesor INTEL 8086 • Prosesor 8086 terbagi menjadi 2 bagian fungsional yang independen.

increment. atau shift bilangan biner. XOR. decrement. • Dekoder pada EU menerjemahkan instruksiinstruksi yang telah diambil dari memori ke dalam urutan aksi. AND. OR. pengurangan. • EU memilki ALU 16-bit dan dapat melakukan penjumlahan.Arsitektur Mikroprosesor INTEL 8086 EXECUTION UNIT (EU) • EU mengandung rangkaian-rangkaian kontrol yang berfungsi mengarahkan operasi-operasi internal. Arsitektur Mikroprosesor 22 . complement.

ZF(zero flag). AF(auxiliary carry flag).Arsitektur Mikroprosesor INTEL 8086 EXECUTION UNIT (EU) : FLAG REGISTER • 8086 memiliki register bendera dengan panjang 16-bit. PF(parity flag). • Dari 9 bendera yang aktif. dan OF(overflow flag). 6 bendera di antaranya (bendera kondisi) digunakan untuk menunjukkan kondisi-kondisi yang dihasilkan oleh pelaksanaan instruksi yakni bendera CF(carry flag). Arsitektur Mikroprosesor 23 . Dari 16-bit itu terdapat 9 bendera yang aktif. SF(sign flag).

Arsitektur Mikroprosesor INTEL 8086 EXECUTION UNIT (EU): FLAG REGISTER • Sedangkan 3 bendera lainnya (bendera kontrol) digunakan untuk mengendalikan beberapa operasi prosesor. berdasarkan hasil operasi-operasi aritmetika atau logika. dan DF (direction flag). sedangkan 3 bendera kontrol diset dan direset oleh instruksi-instruksi khusus yang ada pada program. Bendera-bendera kontrol ini berbeda dengan 6 bendera kondisi dalam hal cara set dan reset-nya. Arsitektur Mikroprosesor 24 . IF (interrupt flag). Bendera itu adalah TF (trap flag). Keenam bendera kondisi diset dan direset oleh EU.

Arsitektur Mikroprosesor INTEL 8086 EXECUTION UNIT (EU): FLAG REGISTER Arsitektur Mikroprosesor 25 .

maka bendera OF akan set. Contoh: jika suatu operasi menghasilkan bilangan dengan panjang 17-bit.Arsitektur Mikroprosesor INTEL 8086 EXECUTION UNIT (EU): FLAG REGISTER • Set dan reset dari bendera CF(carry flag). sedangkan akumulator 8086 hanya 16-bit. dan SF(sign flag) sama seperti bendera pada prosesor 8085. ZF(zero flag). Arsitektur Mikroprosesor 26 . PF(parity flag). • Bendera OF(overflow flag) akan set jika terjadi overflow yakni jumlah bit hasil operasi lebih besar dari lebar akumulator. AF(auxillary carry flag).

Arsitektur Mikroprosesor INTEL 8086 EXECUTION UNIT (EU): FLAG REGISTER • Bendera TF (trap flage) digunakan pada mode operasi langkah tunggal (single step atau trace). Jika bendera ini set. Arsitektur Mikroprosesor 27 . • Bendera IF digunakan untuk mengijinkan interupsi dari program. maka pelaksanaan instruksi akan dilakukan step demi step. • Bendera DF digunakan pada operasi string.

AL. BH. DH.Arsitektur Mikroprosesor INTEL 8086 EXECUTION UNIT (EU): REGISTER SERBAGUNA (GENERAL-PURPOSE REGISTERS) • 8086 memiliki 8 buah register serbaguna yakni: AH. CL. DL.d Arsitektur Mikroprosesor 28 . BL. CH. BH dan BL membentuk BX. Khusus untuk AL dinamakan pula AKUMULATOR. maka pasangan AH dan AL membentuk AX. serta DH dan DL membentuk DX 16-bit. CH dan CL membentuk CX. • Jika register-register tersebut akan digunakan sebagai register 16-bit.

16-bit DX. 16-bit CX. 16-bit Arsitektur Mikroprosesor 29 8-bit AL BL CL DL . 16-bit BX.Arsitektur Mikroprosesor INTEL 8086 EXECUTION UNIT (EU): REGISTER SERBAGUNA (GENERAL-PURPOSE REGISTERS) 8-bit AH BH CH DH AX.

• DX: dapat digunakan sebagai register data.Arsitektur Mikroprosesor INTEL 8086 EXECUTION UNIT (EU): REGISTER SERBAGUNA (GENERAL-PURPOSE REGISTERS) • AX: merupakan akumulator. sering digunakan untuk menyimpan hasil sementara setelah operasi aritmetika dan logika • BX: sering digunakan sebagai register base untuk menyimpan address base data yang terletak di dalam memori dan juga address base tabel data. Arsitektur Mikroprosesor 30 . • CX: dapat digunakan sebagai register count.

Arsitektur Mikroprosesor INTEL 8086 Bus Interface Unit (BIU) Register Antrian • Pada saat EU mendekode atau melaksanakan suatu instruksi. • Instruksi-instruksi tersebut dinamakan prefetched instruction dan oleh BIU disimpan dalam register FIFO (first-in first-out) yang disebut juga register antrian. ia tidak memerlukan menggunakan bus sehingga dapat digunakan oleh BIU untuk mengambil 6 byte instruksi sebagai instruksi berikutnya yang akan dilaksanakan. Arsitektur Mikroprosesor 31 .

• Jadi. bus dapat digunakan oleh BIU untuk menulis dan membaca memori serta mengambi instruksi berikutnya. Arsitektur Mikroprosesor 32 . ia dengan mudah membaca instruksi-instruksi dari register antrian dalam BIU. ketika EU sedang melaksanakan suatu instruksi.Arsitektur Mikroprosesor INTEL 8086 Bus Interface Unit (BIU) Register Antrian • Ketika EU siap melaksanakan instruksi berikutnya.

Arsitektur Mikroprosesor INTEL 8086 Bus Interface Unit (BIU) Register Antrian • Teknologi yang memungkinkan pengambilan instruksi berikutnya sambil melaksanakan instruksi yang ada dinamakan pipelining. Nampak bahwa pipelining memberikan tingkat penggunaan bus yang lebih efektif. pelaksanaan instruksi. Arsitektur Mikroprosesor 33 . Berikut ini adalah contoh perbedaan prosesor 8085 tanpa pipelining dan 8086 dengan pipelining dalam melakukan pengambilan instruksi. operasi read dan operasi write.

Arsitektur Mikroprosesor INTEL 8086 Bus Interface Unit (BIU) Register Antrian 8085 8086 Arsitektur Mikroprosesor 34 .

8086 menggunakan bantuan register segmen. • Untuk memperoleh 20-bit sinyal alamat. sedangkan panjang register IP yang dimilikinya hanya 16-bit. Arsitektur Mikroprosesor 35 .Arsitektur Mikroprosesor INTEL 8086 Bus Interface Unit (BIU) Register Segmen • 8086 mampu mengalamati 220 lokasi memori. Gabungan antara register segmen 16-bit dan IP 16-bit akan menghasilkan 20-bit sinyal alamat.

Arsitektur Mikroprosesor 36 . SS (stack segment). ES (extra segment). Setiap segmen menempati 64K byte memori. maka CS dianggap memiliki alamat awal 348A0. dan dapat ditempatkan di mana saja di dalam ruang alamat 1-M byte. • Jika suatu register segmen berisi kode misalnya CS berisi 348A. BIU secara otomatis akan menambahkan angka 0 di belakang isi segmen. dan DS (data segment).Arsitektur Mikroprosesor INTEL 8086 Bus Interface Unit (BIU) Register Segmen • 8086 memilki 4 buah register segmen yakni CS (code segment).

Arsitektur Mikroprosesor INTEL 8086 Bus Interface Unit (BIU) Register Segmen • Contoh penempatan alamat segmen pada memori 8086. Arsitektur Mikroprosesor 37 .

Arsitektur Mikroprosesor 38 .Arsitektur Mikroprosesor INTEL 8086 Bus Interface Unit (BIU) Instrustion Pointer (IP) • IP berisi instruksi berikutnya yang akan diambil. Alamat fisik yang dihasilkan BIU diperoleh dengan cara seperti di samping.

Pada contoh.Arsitektur Mikroprosesor INTEL 8086 Bus Interface Unit (BIU) Register Segmen • Bagian alamat awal segmen yang tersimpan di dalam register segmen dinamakan segment base. IP=4214 berarti merupakan jarak antara348A0 (alamat awal segmen) s. Arsitektur Mikroprosesor 39 . 38AB4 (alamat fisik). dalam contoh 348A adalah segment base yang tersimpan dalam CS.d. • Isi IP merupakan offset atau jarak (displacement) antara alamat awal segmen dengan alamat fisik yang dihasilkan.

Arsitektur Mikroprosesor INTEL 8086 • Format penulisan alamat fisik: segment base : offset form Contoh: Jika CS berisi 348A dan IP=4214. akan menghasilkan alamat fisik 38AB4. Alamat fisik tersebut dapat direpresentasikan/disajikan atau ditulis dalam bentuk: CS:IP atau 348A:4214 atau CS:IP=38AB4 Berapa alamat fisik yang direpresentasikan oleh 4370:561E. dan 7A32:0028 Arsitektur Mikroprosesor 40 .

Arsitektur Mikroprosesor 41 . Untuk membangkitkan alamat fisik 20-bit. isi stack dikembalikan ke lokasi semula. • SP merupakan register yang berisi offset 16-bit yang menghasilkan alamat fisik teratas dari memori stack. Jika sub program selesai dilaksanakan. yakni IP dan akumulator.Arsitektur Mikroprosesor INTEL 8086 Register Stack Pointer(SP) • Stack adalah bagian memori yang digunakan untuk menyimpan alamat dan data selama subprogram dilaksanakan. SP memerlukan bantuan register SS (stack segment).

maka akan menghasilkan alamat fisik: SS 5 0 0 0 0 ← hardwired zero SP + F F E 0 Alamat ------> 5 F F E 0 fisik • Alamat fisik tersebut dapat direpresentasikan dalam 5FFE0 (single number) atau dalam bentuk SS:SP yakni 5000:FFE0.Arsitektur Mikroprosesor INTEL 8086 Register Stack Pointer(SP) • Contoh: jika isi SS=5000 dan isi SP=FFE0. Arsitektur Mikroprosesor 42 .

dan DI (destination index) 16-bit. dan juga register index SI (source index) 16-bit. SI. Contoh: Alamat fisik data pada memori akan dibangkitkan dengan menambah isi SI dengan alamat segmen base yang direpresentasikan oleh bilangan 16-bit dalam register DS. EU pada 8086 juga memiliki register base pointer (BP) 16-bit. dan DI dapat digunakan sebagai penyimpan sementara dari data seperti halnya pada register serbaguna. Arsitektur Mikroprosesor 43 . • Walaupun BP. namun penggunaan utama mereka adalah menyediakan offset 16-bit dari data untuk suatu segmen base.Arsitektur Mikroprosesor INTEL 8086 Register Index dan Pointer • Kecuali SP.

RET. Arsitektur Mikroprosesor 44 . • Memiliki RAM yang terkoneksi dengan CPU dengan kapasitas 256 byte. INT dan IRET.Arsitektur Simulator SMS32V23 Deskripsi Simulator: • Arsitektur SMS32V23 atau versi terbarunya SMS32V50 hampir mirip dengan CPU 8-bit keluarga 80x86 sehingga simulator ini dapat mengemulasi watak prosesor keluarga 80x86. dengan demikian hardware timer interrupt juga tidak bisa berfungsi. • Versi shareware tidak bisa menjalankan instruksi: CALL.

Arsitektur Simulator SMS32V23/SMS32V50 .

sign flag. BL. SR (status register) dan SP (stack pointer) 8-bit. DL • Register khusus: IP (instruction pointer) 8bit. Arsitektur Mikroprosesor 46 . CL.Register SMS32V23/SMS32V50 • Register serbaguna 8-bit: AL. • Register SR atau flags register memiliki panjang 8-bit tetapi hanya aktif 4-bit saja yakni: zero flag. overflow flag dan interrupt flag.

Memori stack pada simulator ini diawali pada alamat BF. • Memori stack diakses dengan perintah PUSH dan POP Arsitektur Mikroprosesor 47 . SP berisi alamat stack teratas dari memori.Register SMS32V23/SMS32V50 Stack Pointer (SP) • Stack merupakan area memori yang diatur menggunakan aturan LIFO (last-in firstout).

Arsitektur Mikroprosesor 48 .

contoh [7C] dengan 7C merupakan bilangan heksadesimal menunjukkan “data disimpan di lokasi 7C".Memori SMS32V23/SMS32V50 Random Access Memory • Simulator memiliki memori berkapasitas 256 byte dengan alamat dari 0 sd 255 dalam decimal atau dari [00] sd [FF] dalam hexadecimal. Arsitektur Mikroprosesor 49 . Alamat RAM biasanya ditulis di anatara tanda [ dan ].

Arsitektur SMS32V23: RAM .

A. Contoh: pemrograman Matlab untuk menghitung 5+2: A=5. A=A+B. Low Level Language (assembly): bahasa pemrograman yang menggunakan register sebagai peyimpan data.5 ADD AL. B=2. Contoh HLL yang lain: Pascal (Delphi).Bahasa Pemrograman • High Level Language (HLL): bahasa pemrograman yang menggunakan variabel sebagai peyimpan data. dan C adalah variabel. dan C++.2 AL adalah register • . B. Contoh: pemrograman untuk menghitung 5+2: MOV AL.

Level Kode Format Assembly Format Heksadesimal Level Manusia Level Mesin .

Baris kedua instruksi mesin 1 alamat seperti MOTOROLA.Format instruksi assembly LABEL OPCODE OPERAND COMMENT Contoh: MOV LDAA AL. Baris pertama adalah instruksi mesin 2 alamat seperti INTEL.5 #$5 1. atinya pindahkan/isikan ke dalam Register A bilangan 5 heksadesimal. . artinya pindahkan/isikan (MOV) ke dalam register AL bilangan 5 heksadesimal 2.