Definisi: Mikroprosesor adalah suatu chip (IC=integrated circuits) yang di dalamnya terkandung rangkaian ALU (arithmetic-logic unit), rangkaian CU (control unit), dan register-register. Mkroprosesor disebut juga dengan CPU (Central Processing Unit)
ALU: menyediakan fungsi pengolahan
CU: mengontrol fungsi prosesor
Register: penyimpan sementara dalam mikroprosesor
3. 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
4. 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
5. 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
6. Arsitektur Mikroprosesor
INTEL 8085
ALU dan Register yang digunakan
• ALU membangkitkan bit bendera (flag bit)
yang disimpan dalam REGISTER BENDERA.
8-BIT INTERNAL DATA BUS
FLAG
FLIP FLOPS
ALU
ACC TMP
Arsitektur Mikroprosesor 6
7. 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
8. Arsitektur Mikroprosesor
INTEL 8085
ALU dan Register yang digunakan
• Register bendera (flag register) digunakan
untuk mengetahui keadaan hasil
pelaksanaan instruksi oleh ALU.
• Bendera sign akan diset (S=1), jika
pelaksanaan perintah oleh ALU
menghasilkan bilangan negatif.
• Bendera zero akan diset (Z=1), jika operasi
ALU memberikan hasil 0.
Arsitektur Mikroprosesor 8
9. Arsitektur Mikroprosesor
INTEL 8085
ALU dan Register yang digunakan
• Bendera AC akan diset (AC=1), jika dalam
penjumlahan, bit ke 3 menghasilkan carry.
Contoh:
Bit ke-7 Bit ke-3 Bit ke-0
0011 0010 isi Akumulator
0000 0101 + isi TMP
0011 0111 isi Akumulator setelah
perintah penjumlahan
dilaksanakan
Penjumlahan bit ke-3
tidak menghasilkan
carry sehingga AC=0
Arsitektur Mikroprosesor 9
10. Arsitektur Mikroprosesor
INTEL 8085
ALU dan Register yang digunakan
• Contoh yang lain
0010 1000 isi Akumulator
0000 1001 + isi TMP
0011 0001 isi Akumulator setelah
perintah penjumlahan
dilaksanakan
Penjumlahan bit ke-3
menghasilkan carry
sehingga AC=1
Arsitektur Mikroprosesor 10
11. Arsitektur Mikroprosesor
INTEL 8085
ALU dan Register yang digunakan
• Bendera paritas (parity flag) akan diset
(P=1), jika pelaksanaan perintah oleh ALU
menghasilkan jumlah bit 1 genap dan reset
(P=0) jika jumlah bit 1 ganjil.
Contoh: Output ALU=01100011, maka P= 1
Output ALU=00101010, maka P= 0
Arsitektur Mikroprosesor 11
12. Arsitektur Mikroprosesor
INTEL 8085
ALU dan Register yang digunakan
• Bendera carry akan diset (CY=1), jika
operasi ALU menghasilkan carry. Contoh:
1 ---> carry
1010 1000 isi Akumulator
1000 1001 + isi TMP
0011 0001 isi Akumulator setelah
perintah penjumlahan
dilaksanakan
Penjumlahan bit ke-7
menghasilkan carry
sehingga CY=1
Arsitektur Mikroprosesor 12
13. Arsitektur Mikroprosesor
INTEL 8085
Bagian Register
• Memiliki 6 buah register serbaguna yang
dapat digunakan secara terpisah sebagai
register 8-bit, atau berpasangan untuk
menyimpan data 16 bit.
• Register 8-bit: B, C, D, E, H, L
• Pasangan Register HL, pasangan register
DE sering digunakan sebagai register
pasangan untuk menyimpan alamat memori,
isi HL dan DE dapat ditukar dengan perintah
tunggal.
• Register B dan C sering dipakai sebagai
penyimpan sementara untuk data tunggal.
Arsitektur Mikroprosesor 13
14. 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
15. 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,
tetapi menggunakan sebagian lokasi RAM,
sehingga panjang tumpukan tidak tetap
dapat diubah sesuai keperluan.
Arsitektur Mikroprosesor 15
16. Arsitektur Mikroprosesor
INTEL 8085
Bagian Register
• Register PC (program counter): merupakan
register yang berisi alamat perintah
berikutnya yang akan diambil. Setelah
RESET, PC=0. 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
17. Arsitektur Mikroprosesor
INTEL 8086
Tinjauan Umum
• 8086 merupakan mikroprosesor 16-bit,
artinya bagian ALU, register internalnya, dan
sebagian besar instruksi-instruksinya
dirancang untuk bekerja pada data 16-bit.
• 8086 memiliki bus data 16-bit, 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 17
18. Arsitektur Mikroprosesor
INTEL 8086
Tinjauan Umum
• 8086 memiliki bus alamat 20-bit, sehingga ia
dapat mengalamati 220 atau 1.048.576 lokasi
memori atau 1 MB memori, sedangkan
register PC atau IP (instruction pointer) yang
dimilikinya panjangnya 16-bit. Hal inilahyang
merupakan keunggulan dari 8086.
• Prosesor lain yang sejenis dengan 8086
adalah 8088. 8088 memiliki ALU, register,
dan set instruksi yang sama dengan 8086.
8088 juga memiliki bus alamat 20-bit, jadi ia
juga bisa mengalamati memori 1 MB.
Arsitektur Mikroprosesor 18
19. Arsitektur Mikroprosesor
INTEL 8086
Tinjauan Umum
• Perbedaan 8088 dan 8086, 8088 memiliki
bus data 8-bit, sedangkan 8086 lebar bus
datanya 16-bit. 8088 hanya dapat membaca
dari atau menulisi data ke memori dan port-port
dengan panjang 8-bit. Untuk membaca
word 16-bit dari dua lokasi memori, 8088
selalu mengerjakan dengan dua operasi
baca. 8088 pada awalnya digunakan
sebagai CPU pada The Original IBM
Personal Computer.
Arsitektur Mikroprosesor 19
21. Arsitektur Mikroprosesor
INTEL 8086
• Prosesor 8086 terbagi menjadi 2 bagian
fungsional yang independen, yakni BIU (bus
interface unit) dan EU (execution unit).
• BIU bertugas mengirim kode-kode alamat
keluar, mengambil instruksi dari memori,
dan membaca data dari port dan memori.
BIU menangani semua trnasfer data dan
alamat pada bus untuk membantu EU.
• EU meminta BIU untuk mengambilkan
instruksi dan data dari memori, mendekode
dan melaksanakan instruksi
Arsitektur Mikroprosesor 21
22. Arsitektur Mikroprosesor
INTEL 8086
EXECUTION UNIT (EU)
• EU mengandung rangkaian-rangkaian
kontrol yang berfungsi mengarahkan
operasi-operasi internal.
• Dekoder pada EU menerjemahkan instruksi-instruksi
yang telah diambil dari memori ke
dalam urutan aksi.
• EU memilki ALU 16-bit dan dapat melakukan
penjumlahan, pengurangan, AND, OR, XOR,
increment, decrement, complement, atau
shift bilangan biner.
Arsitektur Mikroprosesor 22
23. Arsitektur Mikroprosesor
INTEL 8086
EXECUTION UNIT (EU) : FLAG REGISTER
• 8086 memiliki register bendera dengan
panjang 16-bit. Dari 16-bit itu terdapat 9
bendera yang aktif.
• Dari 9 bendera yang aktif, 6 bendera di
antaranya (bendera kondisi) digunakan
untuk menunjukkan kondisi-kondisi yang
dihasilkan oleh pelaksanaan instruksi yakni
bendera CF(carry flag), PF(parity flag),
AF(auxiliary carry flag), ZF(zero flag),
SF(sign flag), dan OF(overflow flag).
Arsitektur Mikroprosesor 23
24. Arsitektur Mikroprosesor
INTEL 8086
EXECUTION UNIT (EU): FLAG REGISTER
• Sedangkan 3 bendera lainnya (bendera
kontrol) digunakan untuk mengendalikan
beberapa operasi prosesor. Bendera-bendera
kontrol ini berbeda dengan 6 bendera kondisi
dalam hal cara set dan reset-nya. Keenam
bendera kondisi diset dan direset oleh EU,
berdasarkan hasil operasi-operasi aritmetika
atau logika, sedangkan 3 bendera kontrol diset
dan direset oleh instruksi-instruksi khusus yang
ada pada program. Bendera itu adalah TF (trap
flag), IF (interrupt flag), dan DF (direction flag).
Arsitektur Mikroprosesor 24
26. Arsitektur Mikroprosesor
INTEL 8086
EXECUTION UNIT (EU): FLAG REGISTER
• Set dan reset dari bendera CF(carry flag),
PF(parity flag), AF(auxillary carry flag), ZF(zero
flag), dan SF(sign flag) sama seperti bendera
pada prosesor 8085.
• Bendera OF(overflow flag) akan set jika terjadi
overflow yakni jumlah bit hasil operasi lebih
besar dari lebar akumulator. Contoh: jika suatu
operasi menghasilkan bilangan dengan
panjang 17-bit, sedangkan akumulator 8086
hanya 16-bit, maka bendera OF akan set.
Arsitektur Mikroprosesor 26
27. 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, maka pelaksanaan
instruksi akan dilakukan step demi step.
• Bendera IF digunakan untuk mengijinkan
interupsi dari program.
• Bendera DF digunakan pada operasi string.
Arsitektur Mikroprosesor 27
28. Arsitektur Mikroprosesor
INTEL 8086
EXECUTION UNIT (EU): REGISTER SERBAGUNA
(GENERAL-PURPOSE REGISTERS)
• 8086 memiliki 8 buah register serbaguna yakni:
AH, AL, BH, BL, CH, CL, DH, DL. Khusus
untuk AL dinamakan pula AKUMULATOR.
• Jika register-register tersebut akan digunakan
sebagai register 16-bit, maka pasangan AH
dan AL membentuk AX, BH dan BL
membentuk BX, CH dan CL membentuk CX,
serta DH dan DL membentuk DX 16-bit.d
Arsitektur Mikroprosesor 28
30. 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.
• CX: dapat digunakan sebagai register count.
• DX: dapat digunakan sebagai register data.
Arsitektur Mikroprosesor 30
31. Arsitektur Mikroprosesor
INTEL 8086
Bus Interface Unit (BIU)
Register Antrian
• Pada saat EU mendekode atau melaksanakan
suatu instruksi, ia tidak memerlukan
menggunakan bus sehingga dapat digunakan
oleh BIU untuk mengambil 6 byte instruksi
sebagai instruksi berikutnya yang akan
dilaksanakan.
• Instruksi-instruksi tersebut dinamakan
prefetched instruction dan oleh BIU disimpan
dalam register FIFO (first-in first-out) yang
disebut juga register antrian.
Arsitektur Mikroprosesor 31
32. Arsitektur Mikroprosesor
INTEL 8086
Bus Interface Unit (BIU)
Register Antrian
• Ketika EU siap melaksanakan instruksi
berikutnya, ia dengan mudah membaca
instruksi-instruksi dari register antrian dalam
BIU.
• Jadi, ketika EU sedang melaksanakan suatu
instruksi, bus dapat digunakan oleh BIU untuk
menulis dan membaca memori serta
mengambi instruksi berikutnya.
Arsitektur Mikroprosesor 32
33. Arsitektur Mikroprosesor
INTEL 8086
Bus Interface Unit (BIU)
Register Antrian
• Teknologi yang memungkinkan pengambilan
instruksi berikutnya sambil melaksanakan
instruksi yang ada dinamakan pipelining.
Berikut ini adalah contoh perbedaan prosesor
8085 tanpa pipelining dan 8086 dengan
pipelining dalam melakukan pengambilan
instruksi, pelaksanaan instruksi, operasi read
dan operasi write. Nampak bahwa pipelining
memberikan tingkat penggunaan bus yang
lebih efektif.
Arsitektur Mikroprosesor 33
35. Arsitektur Mikroprosesor
INTEL 8086
Bus Interface Unit (BIU)
Register Segmen
• 8086 mampu mengalamati 220 lokasi memori,
sedangkan panjang register IP yang dimilikinya
hanya 16-bit.
• Untuk memperoleh 20-bit sinyal alamat, 8086
menggunakan bantuan register segmen.
Gabungan antara register segmen 16-bit dan
IP 16-bit akan menghasilkan 20-bit sinyal
alamat.
Arsitektur Mikroprosesor 35
36. Arsitektur Mikroprosesor
INTEL 8086
Bus Interface Unit (BIU)
Register Segmen
• 8086 memilki 4 buah register segmen yakni CS
(code segment), SS (stack segment), ES (extra
segment), dan DS (data segment).
• Jika suatu register segmen berisi kode
misalnya CS berisi 348A, maka CS dianggap
memiliki alamat awal 348A0. BIU secara
otomatis akan menambahkan angka 0 di
belakang isi segmen. Setiap segmen
menempati 64K byte memori, dan dapat
ditempatkan di mana saja di dalam ruang
alamat 1-M byte.
Arsitektur Mikroprosesor 36
37. Arsitektur
Mikroprosesor
INTEL 8086
Bus Interface Unit
(BIU)
Register Segmen
• Contoh
penempatan
alamat segmen
pada memori 8086.
Arsitektur Mikroprosesor 37
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.
Arsitektur Mikroprosesor 38
39. Arsitektur Mikroprosesor
INTEL 8086
Bus Interface Unit (BIU)
Register Segmen
• Bagian alamat awal segmen yang tersimpan di
dalam register segmen dinamakan segment
base, dalam contoh 348A adalah segment
base yang tersimpan dalam CS.
• Isi IP merupakan offset atau jarak
(displacement) antara alamat awal segmen
dengan alamat fisik yang dihasilkan. Pada
contoh, IP=4214 berarti merupakan jarak
antara348A0 (alamat awal segmen) s.d.
38AB4 (alamat fisik).
Arsitektur Mikroprosesor 39
40. 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
41. Arsitektur Mikroprosesor
INTEL 8086
Register Stack Pointer(SP)
• Stack adalah bagian memori yang digunakan
untuk menyimpan alamat dan data selama
subprogram dilaksanakan. Jika sub program
selesai dilaksanakan, isi stack dikembalikan ke
lokasi semula, yakni IP dan akumulator.
• SP merupakan register yang berisi offset 16-bit
yang menghasilkan alamat fisik teratas dari
memori stack. Untuk membangkitkan alamat
fisik 20-bit, SP memerlukan bantuan register
SS (stack segment).
Arsitektur Mikroprosesor 41
42. Arsitektur Mikroprosesor
INTEL 8086
Register Stack Pointer(SP)
• Contoh: jika isi SS=5000 dan isi SP=FFE0, 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 42
43. Arsitektur Mikroprosesor
INTEL 8086
Register Index dan Pointer
• Kecuali SP, EU pada 8086 juga memiliki register
base pointer (BP) 16-bit, dan juga register index
SI (source index) 16-bit, dan DI (destination index)
16-bit.
• Walaupun BP, SI, dan DI dapat digunakan sebagai
penyimpan sementara dari data seperti halnya
pada register serbaguna, namun penggunaan
utama mereka adalah menyediakan offset 16-bit
dari data untuk suatu segmen base. 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.
Arsitektur Mikroprosesor 43
44. 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.
• Memiliki RAM yang terkoneksi dengan CPU dengan
kapasitas 256 byte.
• Versi shareware tidak bisa menjalankan instruksi: CALL,
RET, INT dan IRET, dengan demikian hardware timer
interrupt juga tidak bisa berfungsi.
Arsitektur Mikroprosesor 44
46. Register SMS32V23/SMS32V50
• Register serbaguna 8-bit: AL, BL, CL, DL
• Register khusus: IP (instruction pointer) 8-
bit, SR (status register) dan SP (stack
pointer) 8-bit.
• Register SR atau flags register memiliki
panjang 8-bit tetapi hanya aktif 4-bit saja
yakni: zero flag, sign flag, overflow flag dan
interrupt flag.
Arsitektur Mikroprosesor 46
47. Register SMS32V23/SMS32V50
Stack Pointer (SP)
• Stack merupakan area memori yang diatur
menggunakan aturan LIFO (last-in first-out).
SP berisi alamat stack teratas dari
memori. Memori stack pada simulator ini
diawali pada alamat BF.
• Memori stack diakses dengan perintah
PUSH dan POP
Arsitektur Mikroprosesor 47
49. 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. Alamat RAM biasanya ditulis
di anatara tanda [ dan ], contoh [7C] dengan
7C merupakan bilangan heksadesimal
menunjukkan “data disimpan di lokasi 7C".
Arsitektur Mikroprosesor 49
51. 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++.
• Low Level Language (assembly): bahasa pemrograman yang
menggunakan register sebagai peyimpan data. Contoh: pemrograman
untuk menghitung 5+2:
MOV AL,5
ADD AL,2
AL adalah register
52. Level Kode
Format Assembly Format
Heksadesimal
Level Manusia Level Mesin
53. Format instruksi assembly
LABEL OPCODE OPERAND COMMENT
Contoh: MOV AL,5
LDAA #$5
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.