diktat mikroprosessor - i -...
TRANSCRIPT
DIKTAT
MIKROPROSESSOR - IDisusun Oleh : Aqwam Rosadi Kardian. SKom., MM.
2009
STMIK JAKARTA STI&K2009
Aqwam Rosadi K. SKom.,MM. 2009
D I K T A T A J A R HAL - 2
DIKTATMIKROPROSESSOR I
Disusun oleh :AQWAM ROSADI K. SKom., MM.
JAKARTA2009
Aqwam Rosadi K. SKom.,MM. 2009
D I K T A T A J A R HAL - 3
Bab – ITERMINOLOGI
Istilah-istilah yang sering digunakan dalam dunia komputer :1. Sistem bilangan adalah metode yg menyepadankan suatu besaran dengan suatu
simbol tertentu. Contoh: kita biasanya menggunakan sistem bilangan desimal (10). Iniberarti kita memiliki 10 buah simbol untuk menyatakan 10 buah besaran, yaitu :‘0’, ‘1’, ‘2’, ‘3’, ‘4’, ‘5’, ‘6’, ‘7’, ‘8’, ‘9’.
2. Sistem bilangan biner (Binary) menggunakan 2 (dua) buah simbol untukmerepresentasikan 2 besaran, yaitu : ‘0’ dan ‘1’.
3. Suatu simbol biner sering disebut sebagai bit (binary digit)4. Sistem bilangan Hexadecimal menggunakan 16 (enambelas) buah simbol untuk
merepresentasikan 16 besaran, yaitu : ‘0’, ‘1’, ‘2’, ‘3’, ‘4’, ‘5’, ‘6’, ‘7’, ‘8’, ‘9’, ‘A’,‘B’, ‘C’, ‘D’, ‘E’, ‘F’.
5. Kesatuan 4 simbol biner yg merepresentasikan suatu informasi disebut dgn nibble6. Kesatuan 8 simbol biner yg merepresentasikan suatu informasi disebut dgn byte7. Kesatuan 16 simbol biner yg merepresentasikan suatu informasi disebut dgn word8. Dunia digital menggunakan 2 buah tegangan (0 volt dan +5 volt). Karena hanya ada 2
besaran, kedua besaran tersebut akan direpresentasikan dengan sistem bilangan biner(‘0’ dan ‘1’)
9. Transistor adalah komponen aktif yang dapat digunakan sebagai penguat sinyal(dalam dunia analog) atau sebagai saklar (dalam dunia digital). Tergantung dari bahandan media pembuatannya, transistor digital dibedakan menjadi nMOS (negativeMetal Oxide Semiconductor), CMOS (Complementary MOS), dan TTL (Transistor-Transistor Logic)
10. Gerbang logika (Logic Gate) adalah komponen dasar dari rangkaian digitalyang dibentuk dari beberapa transistor digital untuk membentuk suatu fungsitertentu (contoh : AND Gate, OR Gate, INVERTER)
11. Integrated Circuit (IC) adalah gabungan komponen-komponen yang menjalankansuatu fungsi khusus dan dikemas dalam satu paket (packaging).Ada beberapa jenis IC dilihat dari komponen yang digabungkan, yaitu :
a. IC analog: integrasi komponen analog (contoh : Operational Amplifier)b. IC hybrid: integrasi miniatur komponen analog (contoh : Integrated
Amplifier)c. IC digital: integrasi komponen digital ke dalam plat MOSd. ASIC (Application Specific IC): integrasi komponen yang dirancang untuk
melakukan suatu fungsi khusus (contoh : Prosesor pada HandPhone)12. Very Large Scale Integration (VLSI) adalah IC digital yang memiliki jumlah
transistor digital lebih dari 100.000 buah (contoh : Microprocessor)13. Microprocessor (atau CPU = Central Processing Unit) adalah sebuah VLSI yang
didesain khusus untuk memproses/mengerjakan tugas-tugas standar. UP adalah otakdari komputer karena dialah yang bertugas menghitung dan mengontrol peralatan laindisekitarnya (contoh : Zilog dengan Z80, Intel dengan PentiumTM)
14. Microcontroller adalah sebuah Microprocessor dengan fasilitas memori didalamnya
Aqwam Rosadi K. SKom.,MM. 2009
D I K T A T A J A R HAL - 4
(yang dapat diprogram oleh user) untuk mengerjakan tugas tertentu yang dikehendaki
Aqwam Rosadi K. SKom.,MM. 2009
D I K T A T A J A R HAL - 5
oleh pemrogramnya dan terkadang juga diperlengkapi dengan port Input/Output(contoh : Zilog dengan Z8, Intel dengan 8051)
15. Arithmetic and Logic Unit (ALU) adalah bagian dari Microprocessor yang bertugasuntuk melakukan proses aritmetika (penjumlahan dan pengurangan) dan proses logika(AND, OR, dan Shift) pada data yang melaluinya
16. Flip-Flop adalah rangkaian digital yg dapat digunakan untuk menyimpan suatu nilaibiner (‘0’ atau ‘1’). Karena kemampuannya untuk menyimpan nilai biner, Flip-Flopmenjadi komponen dasar memori (contoh : Data Flip-Flop)
17. Memori adalah serangkaian Flip-Flop yg dikombinasikan untuk menyimpan suatuinformasi.
18. Register adalah memori yg diimplementasikan di dalam microprocessor sehinggamemiliki kecepatan yg sama dgn microprocessor.
19. Random Access Memory (RAM) adalah tempat penyimpanan sementara bagi datadan code (program) untuk dapat digunakan oleh Microprocessor sebagai scratch book(contoh : SDRAM, DDR). Karena bersifat sebagai scratch book, maka data harusdapat ditulis, dibaca, dan kemudian ditulis kembali ke dalam RAM. Data di dalamRAM akan hilang jika powernya dimatikan (volatile)
20. Read Only Memory (ROM) adalah tipe memori yang bersifat baca saja dimana dataditulis sekali ke dalamnya dan untuk seterusnya hanya dibaca saja. ROM padaumumnya digunakan sebagai tempat penyimpanan program atau pustaka (contoh :EEPROM untuk bootstrap loader). Perbedaan dengan RAM adalah jika power supplyke ROM diputuskan isinya tidak akan hilang.
21. Control Unit (CU) adalah bagian dari Microprocessor yang bertugas untukmengontrol kerja dari bagian-bagian khusus Microprocessor di atas (ALU, Register)
22. Peripheral adalah adalah semua perangkat yang digunakan untuk menambahutilitas/kegunaan komputer (contoh : printer, plotter, mouse, joystick, gamepad)
23. Input/Output (I/O) adalah saluran transmisi yg digunakan oleh komputer untukberinteraksi dgn peripheral (contoh : ISA (IBM Standard Architecture), EISA(Enhanced ISA), PCI, Parallel Port)
24. Bus adalah jalur pengiriman sinyal informasi antar komponen. Dilihat dari jenisinformasi yang dibawa, terdapat bus data, bus address, dan bus control.Jika dilihat dari lokasinya ada bus internal dan bus eksternal.
25. HardDisk adalah tempat penyimpanan sekunder untuk penyimpanan data danprogram dalam jumlah/ukuran yang besar
26. x86 adalah sebutan untuk keluarga mikroprosesor 8086, 80286, 80386, 80486,Pentium, Celeron, Pentium II, Pentium IV, K5, K6, K6/2, K6/3, Athlon, Duron,Cx5x86, Cx6x86, MII
27. Variable Length Instruction (VLI) adalah set instruksi dimana lebar instruksibervariasi tergantung kebutuhan, ada yg hanya 1 instruksi = 1 byte dan ada yg 1instruksi mencapai 4 byte. Contoh : Instruksi pada uP 8088 s.d. Pentium IV
28. Fixed Length Instruction (FLI) adalah set instruksi dimana lebar semua instruksiadalah sama, misalnya 4 byte.Contoh : uP Alpha dari DEC (Digital Equipment Computer)dan PowerPC pada Apple Macintosh dari Motorola
Aqwam Rosadi K. SKom.,MM. 2009
D I K T A T A J A R HAL - 6
29. Complex Instruction Set Computer (CISC) adalah desain uP dimana instruksi yang dapatdijalankan oleh uP tersebut sangat banyak dan kompleks (mencapai 200 instruksi). Contoh :uP 8088 s.d Pentium IV
30. Reduced Instruction Set Computer (RISC) adalah desain uP dimana instruksi yang dapatdijalankan oleh uP tersebut sangat terbatas namun sederhana (kurang dari 50 instruksi).Contoh : Sharp SH3 pada Palmtop HP320LX
31. Pipeline adalah suatu metode yg mengeksploitasi setiap komponen di dalam uP untuk selalubekerja setiap saat. Contoh : pada x86, pipeline mulai diterapkan sejak80386DX
32. Stalled adalah suatu kondisi dimana suatu instruksi baru tidak dapat dijemputsehingga penjemputannya terpaksa ditunda (delayed) sampai semua kondisimendukung.
33. Hazard adalah hal-hal yang menyebabkan stall terjadi.34. Structural Hazard adalah yang menyebabkan stall terjadi karena adanya
keterbatasan resource sistem35. Data Hazard adalah yang menyebabkan stall terjadi karena adanya ketergantungan data
antar instruksi yg berdekatan36. Control Hazard adalah yang menyebabkan stall terjadi karena eksekusi instruksi kontrol37. Paralelism adalah instruksi-instruksi yang tidak memiliki ketergantungan satu sama lainnya
sehingga dapat dikerjakan pada saat yg bersamaan38. Instruction Scheduling adalah teknik untuk meminimisasi terjadinya Data Hazard dengan
cara menyusun ulang semua instruksi yang akan dikerjakan39. Superscalar adalah mesin yang mengerjakan beberapa instruksi sekaligus dimana instruksi-
instruksi yang akan dikerjakan dipilih oleh hardware khusus secara dinamis40. Very Long Instruction Wide (VLIW) adalah mesin yang mengerjakan beberapa
instruksi sekaligus dimana instruksi-instruksi yang akan dikerjakan dipilih olehsoftware secara statis
41. Million Instruction Per Second (MIPS) adalah satuan kecepatan uP yg menunjukkan berapajuta instruksi yg bisa dikerjakan oleh uP tsb dalam sedetiknya. Standar 1 MIPS adalah uP VAX(tahun 1970). Satuan lainnya adalah MOPS (Million Operation Per Second), MFLOPS(Million Floating Point Operation Per Second)
42. Cycles Per Instruction (CPI) adalah ukuran kecepatan pengerjaan instruksi. Yangdiukur adalah jumlah rata-rata cycles yang digunakan untuk mengerjakan 1 instruksi.
43. Temporal locality adalah suatu metode yg menganggap : jika suatu data sedang diakses,maka kemungkinan besar data selanjutnya yg akan diakses adalah data yg pernah diaksessebelumnya (berdasarkan history)
44. Spatial locality adalah suatu metode yg menganggap : jika suatu data sedang diakses, makakemungkinan besar data selanjutnya yg akan diakses adalah data yg letaknya berdekatan(berdasarkan space)
45. Predict-taken dan Predict-not-taken adalah suatu metode untuk memprediksi apakahsuatu instruksi jump akan dilakukan (taken) atau tidak (not-taken).
46. Tomasulo algorithm adalah metode pengembangan (penggabungan) antara metodePredict-taken dan Predict-not-taken.
Aqwam Rosadi K. SKom.,MM. 2009
D I K T A T A J A R HAL - 7
Bab-IIUsing DEBUG
Debug adalah suatu program kecil yang telah ada sejak MS-DOS versi 3.0 dikeluarkan. Sampaisekarangpun program Debug tetap disertakan pada saat anda menginstall MS Windows.Program ini digunakan untuk melihat isi suatu blok memori (view), mengubahnya (edit), danmenjalankan (run) instruksi-instruksi yang ada di blok tersebut.
Cara mengaktifkan :1. Cara pertama : Di lingkungan Windows, klik ‘Start’ dan kemudian pilih ‘Run’. Dariwindow ‘Run’ ketikkan ‘Debug’ dan klik tombol ‘OK’.
2. Cara kedua : Di lingkungan DOS, pindahlah ke subdirectory yang berisi instruksi-instruksi DOS. Jika Windows terinstall, pindahlah ke C:\Windows\Command, dankemudian ketik ‘Debug’ dan tekan tombol ‘Enter’.
Salah satu dari kedua cara tersebut akan memanggil program Debug denganmenampilkan cursor berbentuk strip (-)
Aqwam Rosadi K. SKom.,MM. 2009
D I K T A T A J A R HAL - 8
C:\>Debug
Command pada DEBUGDisini Debug menanti perintah (command) dari kita
command arti keterangana assemble menulis instruksi-instruksi yang akan dijalankan ke memoriu unassemble melihat instruksi-instruksi yg ada di memorid dump melihat isi dari memori (128 bytes ditampilkan)f fill mengisi secara langsung suatu blok memori
t trace menjalankan instruksi-instruksi yang ada di memoriinstruction-by-instruction (1 ‘t’ menjalankan 1 instruksi)
g go menjalankan semua instruksi yg ada di memorin name memberikan nama file yg akan di-edit atau di-save
l load Load suatu file ke memori (nama file telah didefinisikanterlebih dahulu dengan command ‘n’)
w write menulis isi memori ke filer register menampilkan isi semua registerrxx register xx mengubah isi suatu register xx (contoh : rax, rip, rss)
Aqwam Rosadi K. SKom.,MM. 2009
D I K T A T A J A R HAL - 1
Bab-IIIORGANISASI KOMPUTER
Sistem mikroprosesor bekerja pada 2 level tegangan, yaitu 0 Volt dan +5 Volt.Oleh karenanya kita dapat mempergunakan sistem bilangan Biner (Binary)untuk merepresentasikan kedua level tegangan tersebut dengan simbol ‘0’dan simbol ‘1’. Sistem yang hanya mengenal 2 besaran, seperti halnyamikroprosesor, disebut sistem digital. Sementara sistem yang mengenaljumlah besaran yang sangat banyak (bahkan mencapai tak berhingga) disebutsistem analog.
Pada umumnya, diluar sistem mikroprosesor, digunakan sistem analog. Olehkarena adanya perbedaan ini, sebelum mikroprosesor dapat mengolah datadari luar sistemnya, data tersebut harus dikonversi terlebih dahulu ke sistemdigital. Pengubahan ini dilakukan oleh blok Input dan Output.
Sinyal I sinyal sinyalOU sinyal
analog N biner MICROPROCESSOR biner
PUT
T analog
PUT
Control Unit
Fungsi dari masing-masing bagian :
1. Blok Input memiliki 2 fungsi yaitu (1) mengkonversi besaran yg berlaku diluar sistem P menjadi besaran biner, dan (2) menyimpan informasi bineruntuk sementara waktu sampai P memiliki waktu untuk membacanya.Contoh : agar sinyal dari microphone dapat direkam oleh P, diperlukanADC (Analog to Digital Converter) yg terdapat di Sound Card dalamkomputer anda
2. Control Unit (CU) berfungsi untuk mengatur operasi seluruh sistemdengan menghasilkan atau memproses sinyal kontrol
3. Arithmetic and Logic Unit (ALU) berfungsi untuk membantu CU saatmelakukan perhitungan aritmetika (ADD, SUB) dan logika (AND, OR, XOR,SHL, SHR)
4. Memory berfungsi untuk menyimpan informasi biner5. Blok Output memiliki 2 fungsi yaitu (1) mengkonversi besaran biner menjadi
Aqwam Rosadi K. SKom.,MM. 2009
D I K T A T A J A R HAL - 2
suatu besaran tertentu, dan (2) menyimpan informasi biner dari mikroprosesorsampai perangkat luar yg akan membaca data tersebut siap. Contoh : agarinformasi lagu yg tersimpan di memori dapat didengarkan dari speaker, makadiperlukan DAC (Digital to Analog Converter) yg terdapat di Sound Carddalam komputer anda
Aqwam Rosadi K. SKom.,MM. 2009
D I K T A T A J A R HAL - 3
CARA KERJA1. Sistem diluar sistem uP bekerja pada besaran analog. Blok Input berfungsi
Untuk mengubah besaran tersebut menjadi besaran biner yang dapatdimengerti oleh uP. Setelah blok Input mengubahnya menjadi besaran biner,maka informasi biner tersebut dikirimkan ke uP.
2. Agar uP mengetahui bahwa blok Input akan mengirim data, terlebih dahuluBlok Input mengirim sinyal kontrol ke uP.
3. CU setelah menerima sinyal kontrol tersebut akan membaca informasi yangdiberikan oleh blok Input dan menyimpannya di memori.
4. Jika diperlukan, informasi yang disimpan di memori tersebut akan diambilkembali untuk diproses lebih lanjut dengan bantuan ALU.
5. Hasil proses ini dikirimkan oleh CU ke blok Output. Blok Output akanmengubah besaran biner menjadi suatu besaran tertentu sesuai keinginanpembuatnya.
CASE STUDY : ALAT PENGUKUR RATA-RATA TEMPERATURE1. Blok Input adalah termometer digital untuk mengukur suhu diluar sistem dan
mengubahnya menjadi representasi biner2. mengirim sinyal kontrol ‘ada data’ ke uP untuk mendapatkan perhatian uP3. CU akan membaca informasi biner tersebut dan menyimpannya di memori4. Setelah informasi terkumpul selama 1 menit, CU harus memproses semua
informasi yang telah terkumpul dan menghitung rata-ratanya5. Hasil proses ini dikeluarkan ke blok Output untuk diubah menjadi suatu
Tegangan Tegangan hasil blok Output akan menggerakkan jarum penunjukuntuk memberikan informasi rata-rata temperatur
Aqwam Rosadi K. SKom.,MM. 2009
D I K T A T A J A R HAL - 4
Bab-IVINTERAKSI P DENGAN MEMORI
Dari bagan organisasi komputer di atas, terlihat bahwa uP dapat :1. Mengambil(membaca) informasi dari memori.2. Menyimpan(menulis) informasi ke memori
Seperti halnya manusia yg ingin menulis pada suatu buku dan membaca suatuinformasi dari buku, pertama-tama manusia harus dapat menentukan dimanalokasi informasi tersebut berada (i.e. nomor halaman, alinea, baris, etc.). Barusetelah itu dapat menuliskan informasinya atau membaca informasinya.
Hal yg sama juga berlaku di uP, dimana :sebelum uP dapat membaca data darimemori, pertama-tama uP harus menyediakan informasi mengenai dimana datatersebut berada. Sebelum uP dapat menuliskan suatu data ke memori, pertama-tama uP harus menyediakan informasi mengenai dimana data tersebut akanditulis. Informasi mengenai ‘dimana data tersebut’ disebut dengan Alamat.
Proses pembacaan data oleh uP dari memori (arah data : uP memori)
alamat
8088read Memoridata
URUTAN KERJA :1. uP8088 mempersiapkan alamat (lokasi) dari data yg akan dibaca2. uP8088 mengirimkan sinyal read ke memori3. setelah menerima sinyal read, memori mencari data yg diinginkan P8088
sesuai dgn alamat yg diberikan4. data yg sesuai dikirimkan oleh memori ke P8088
Aqwam Rosadi K. SKom.,MM. 2009
D I K T A T A J A R HAL - 5
Proses penulisan data oleh uP ke memori (arah data : uP memori)
8088
alamat
data memoriwrite
URUTAN KERJA :
1. P8088 mempersiapkan alamat (lokasi) dimana data akan ditulis (diletakkan)2. P8088 mempersiapkan data yg akan ditulis3. P8088 mengirimkan sinyal write ke memori4. setelah menerima sinyal write, memori membaca data yg diberikan oleh
P8088 dan meletakkannya sesuai dgn alamat yg ditentukan
Pada proses penulisan dan pembacaan data, uP8088 menggunakan 3 (tiga)buah saluran khusus untuk mengirimkan (1) alamat, (2) data, dan (3) kontrolbaca/tulis. Ketiga saluran ini disebut sebagai (1) bus alamat, (2) bus data, dan (3)bus kontrol.
Aqwam Rosadi K. SKom.,MM. 2009
D I K T A T A J A R HAL - 6
11 30
Bab-VMIKROPROSESOR 8088
Mikroprosesor Intel 8088 adalah multipurpose mikroprosesor yangdiimplementasikan dengan teknologi N-channel, depletion load, silicon gate(HMOS-II). Dipasarkan dengan format 40-pin CERDIP (Ceramic Dual InlinePackage). Mikroprosesor ini termasuk keluarga mikroprosesor 8 bit dan 16 bit.Mikroprosesor Intel 8088 kompatible secara langsung dengan software yangdidesain untuk mikroprosesor 8086 dan 8080/8085, dan secara hardware jugakompatible dengan mikroprosesor 8080/8085.
KETERANGAN
GND : ground (0 volt)Vcc : +5 volt
GNDA14A13A12A11A10A9A8
D7 / A7D6 / A6D5 / A5D4 / A4D3 / A3D2 / A2D1 / A1D0 / A0
clockGND
1 402 393 384 375 366 357 348 339 3210 8088 31
12 2913 2814 2715 2616 2517 2418 2319 2220 21
VccA15A16A17A18A19
read
write
ALE
reset
D0 – D7 : Data bus (8 informasi biner = 1 byte)ada 28 = 256 kombinasi data (00H – FFH) untuk kode ASCII
A0 – A19 : Address bus (20 informasi biner)ada 220 = 1048576 kombinasi harga, berartiada 1048576 lokasi memori yg dpt dialamati
Read : sinyal kontrol untuk membacaWrite : sinyal kontrol untuk menulisClock : frekuensi kerja P8088 (5 MHz atau 8 MHz) reset: menginisialisasi
kembali semua isiRegister ALE : Address Latch Enable, menandakan bahwa pin 9 s.d pin 16 menyimpan
informasi alamat
Aqwam Rosadi K. SKom.,MM. 2009
D I K T A T A J A R HAL - 7
blok 00
blok 01
blok 10
blok 11
KEMAMPUAN BUS
1. Lebar dari bus data sering digunakan untuk mengklasifikasikan uP.Contoh: P8088 adalah microprocessor 8-bit karena jumlah pin untuk bus datasebanyak 8 buah (D0–D1–D2–D3–D4–D5–D6–D7 : pin no. 9 – 16).
2. Lebar dari bus alamat menyatakan jumlah maksimum blok memory yg dapat diaksesoleh mikroprosesor.a. P dengan 1 buah alamat (A) hanya dapat mengakses 2 blok memori yaitu
pada saat A=0 dan A=1
blok 0uP
blok 1
dapat diakses jika A = 0
dapat diakses jika A = 1
b. uP dengan 2 buah alamat (A0 dan A1) hanya dapat mengakses 4 blok memoriyaitu pada saat
A0
uPA1
dapat diakses jika A0 = 0 dan A1 = 0
dapat diakses jika A0 = 1 dan A1 = 0
dapat diakses jika A0 = 0 dan A1 = 1
dapat diakses jika A0 = 1 dan A1 = 1
JUMLAHJALUR
ALAMAT
TOTAL BLOKMEMORI
KAPASITAS MEMORI(1 BLOK MEMORI = 1 BYTE) KETERANGAN
1 21=2 2 byte2 22=4 4 byte16 216=65536 65536 byte = 64 Kbyte i8080, Z8020 220=1048576 1048576 byte = 1024 Kbyte = 1 Mbyte i8088
Contoh: uP 8088 memiliki bus alamat dengan lebar 20 bit sehingga uP 8088 dapatmengakses memori berkapasitas maksimum 220=1048576 blok memori atau1 Mb. Sedangkan bus kontrol memiliki lebar 1 saluran untuk setiap fungsi.
REGISTERPada bagan organisasi komputer, memori diletakkan terpisah dari mikroprosesor. Jikabagan tersebut diimplementasikan, uP harus mengakses memori setiap saat. Dankarena kecepatan memori jauh lebih lambat dari uP (sebagai contoh uP PentiumIV telah mencapai kecepatan 2 GHz sedangkan DDRAM maksimum hanyamemiliki kecepatan 0.8 GHz), maka kecepatan kerja uP akan sangat dipengaruhioleh kecepatan memori. Untuk mempercepat pemrosesan data di dalammikroprosesor, selain CU dan ALU, Mikroprosesor juga akan membutuhkanmemori yg memiliki kecepatan sama dengan uP. Untuk melakukannya, memori
Aqwam Rosadi K. SKom.,MM. 2009
D I K T A T A J A R HAL - 8
tersebut harus diimplementasikan didalam mikroprosesor. Memori ini disebutdengan register.
Aqwam Rosadi K. SKom.,MM. 2009
D I K T A T A J A R HAL - 9
- - - - OF DF IF TF SF ZF - AF - PF - CF
-rAX=0000 BX=0000 CX=0000 DX=0000 SP=FFEEDS=0EA0 ES=0EA0 SS=0EA0 CS=0EA0 IP=0100
-rAX=0000 BX=0000 CX=0000 DX=0000 SP=FFEEDS=0EA0 ES=0EA0 SS=0EA0 CS=0EA0 IP=0100
-rAX=0000 BX=0000 CX=0000 DX=0000 SP=FFEEDS=0EA0 ES=0EA0 SS=0EA0 CS=0EA0 IP=0100
JENIS REGISTER BERDASARKAN INFORMASI YG DISIMPANNYA DAPATDIBAGI MENJADI 4.
1. REGISTER DATAdigunakan untuk menyimpan data yg diperlukan untuk suatu operasiTerdiri dari: AX (Accumulator), BX (Base), CX (Counter), DX (Data)
BP=0000 SI=0000 DI=0000NV UP EI PL NZ NA PO NC
2. REGISTER ALAMATkarena jumlah register data sangat terbatas, maka sebagian besar data tetap diletakkan dimemori. Untuk dapat mengaksesnya, uP membutuhkan alamat dari data tersebut ygdisimpan oleh register alamat.Terdiri dari: SP (Stack Pointer), BP (Base Pointer), SI (Source Index), DI (DestinationIndex), DS (Data Segment), ES (Extra Segment), SS (Stack Segment), CS (CodeSegment), IP (Instruction Pointer) dan BX (Base)
BP=0000 SI=0000 DI=0000NV UP EI PL NZ NA PO NC
3. REGISTER STATUS (FLAGS)digunakan untuk menyimpan status dari hasil operasi yg menggunakan ALU.Terdiri dari: OF (Overflow Flag), DF, IF, TF, SF (Sign Flag), ZF (Zero Flag), AF, PF, CF(Carry Flag)
Flag :
BP=0000 SI=0000 DI=0000NV UP EI PL NZ NA PO NC
4. REGISTER INSTRUKSIdigunakan untuk menyimpan instruksi yang sedang dikerjakan
Catatan:Register BX selain dapat digunakan sebagai register data dapat juga digunakan sebagairegister alamat Lebar semua register uP8088 adalah 16 bit = 2 byte. Sehingga setiapregister dapat berharga 0000H s.d. FFFFH atau 216 = 65536 kombinasi harga. Setiapregister akan diakses (dibaca/ditulis) dalam format 16 bit tersebut, kecuali register datadapat diakses dalam format 8 bit = 1 byte (AH, AL, BH, BL, CH, CL, DH, DL).
16 bit8 bit
Aqwam Rosadi K. SKom.,MM. 2009
D I K T A T A J A R HAL - 10
AH ALBH BLCH CLDH DL
Aqwam Rosadi K. SKom.,MM. 2009
D I K T A T A J A R HAL - 11
Bab-VISTRUKTUR MEMORI PADA P 8088
Memori pada sistem P 8088 memiliki dua ciri :1. Diakses dgn alamat selebar 16 bit (00000H s.d. FFFFFH) atau 2 byte2. Data yg diakses untuk setiap alamat adalah 8 bit atau 1 byte
contoh :Alamat data yg disimpan pada alamat tsb
(dlm Hexa) (dlm Biner) (dlm Hexa)
FFFF 1 0 0 0 1 0 1 0 = 8A
8000 1 1 1 0 1 0 0 0 = E8
0002 1 0 1 1 1 1 0 0 = BC
0001 0 0 0 0 1 1 0 1 = 0D0000 1 1 1 1 1 1 1 0 = FE
Alamat dari suatu cell memori direpresentasikan dalam format 2 byte (0000H – FFFFH)yg disimpan dalam register alamat (yg lebarnya juga 2 byte). Karena kapasitasregister alamat adalah 2 byte, maka jumlah cell memori yg dapat disimpan
alamatnya adalah 216
= 65536 cell memori. Dan karena suatu cell memori menyimpan data 1 byte (00H – FFH)maka suatu register alamat P 8088 dapat mengakses (membaca/menulis) memoriberkapasitas 65536 byte = 64 KByte.
Alamat data (Hexa) data (ASCII)
0D9C:0100 0E E8 DC FC 89 46 FA 89-56 FC 0B D0 75 04 33 C0 .....F..V...u.3.0D9C:0110 C9 C3 8B 46 F8 FF 5E FA-89 46 FE 8B 34 00 8B 0D ...F..^..F..4...0D9C:0120 C8 08 00 00 C7 46 FE 00-00 C7 46 F8 40 00 0E E8 [email protected]:0130 AE FC 89 46 FA 89 56 FC-0B D0 75 04 33 C0 C9 C3 ...F..V...u.3...0D9C:0140 8B 46 F8 FF 5E FA 89 46-FE 8B 46 FE C9 C3 C8 08 .F..^..F..F.....0D9C:0150 00 00 C7 46 FE 00 00 C7-46 F8 41 00 0E E8 80 FC ...F....F.A.....0D9C:0160 89 46 FA 89 56 FC 0B D0-75 04 33 C0 C9 C3 8B 46 .F..V...u.3....F0D9C:0170 F8 FF 5E FA 89 46 FE 8B-46 FE C9 C3 C8 08 00 00 ..^..F..F.......
Dari hasil ‘dumping’ memori dgn Debug, memori ditampilkan dalam format 128 byte.
Aqwam Rosadi K. SKom.,MM. 2009
D I K T A T A J A R HAL - 12
Dapat dilihat bahwa pada alamat 0000 isi datanya 0E, dan pada alamat 0001 isi datanyaE8, dan pada alamat 0002 isi datanya DC, dst.
Aqwam Rosadi K. SKom.,MM. 2009
D I K T A T A J A R HAL - 13
0 F 8 C0 0 0 5
SEGMENTASI
Mikroprosesor harus dapat mengakses semua cell memori dari alamat terendah sampaialamat tertinggi. Alamat tersebut akan disimpan didalam register alamat. Secara fisik,uP8088 memiliki 20 buah jalur alamat (A0 – A19) untuk menyediakan informasi alamatselebar 20 bit dimana informasi alamat tersebut dapat berharga 00000H s.d FFFFFH. Ke-20 bit tersebut digunakan untuk mengakses memori dgn kapasitas 220 = 1048576 cell.
Namun masalah timbul pada lebar register alamat. P 8088 memiliki register alamatdengan lebar hanya 16 bit dari 20 yang dibutuhkan untuk mengakses semua memori.Ini berarti jika suatu register alamat menyimpan alamat memori, dia hanya dapatdigunakan untuk mengakses alamat 0000 sampai FFFF atau 64 KByte.Untuk mengatasi kekurangan ini, Intel menggunakan 2 register untuk pengalamatan.Satu register akan menyimpan alamat segment (suatu area memori seluas 64 Kbyte), danSatu register akan menyimpan alamat offset (menentukan byte yang mana di dalamsegment tersebut yg akan diakses).
Contoh:
Segment address DS =Offset address BX =
4 bit 4 bit 4 bit 4 bit 4 bit
Physical Address DS+BX 0 F 8 C 5
SegmentF000
FFFFF FA Offset FFFFFFFFE 3B Offset FFFEFFFFD 43 Offset FFFD
64
F0001 20 Offset 0001F0000 15 Offset 0000
Segment1000
1FFFF 55 Offset FFFF1FFFE CD Offset FFFE
10002 9A Offset 000210001 2B Offset 000110000 53 Offset 00000FFFF 06 Offset FFFF0FFFE 7A Offset FFFE
1024
64
Segment0000
64
00002 80 Offset 0002
Aqwam Rosadi K. SKom.,MM. 2009
D I K T A T A J A R HAL - 14
-rAX=0000 BX=0000 CX=0AA0 DX=0000 SP=4000DS=0F8C ES=0F8C SS=1086 CS=0F9C IP=0000
-rAX=0000 BX=0000 CX=28E7 DX=0000 SP=FFFEDS=0F8C ES=0F8C SS=0F8C CS=0F8C IP=0100
00001 DE Offset 000100000 1F Offset 0000
P8088 menyediakan 4 segment untuk menjalankan suatu program.
Segment untuk Program (Code/Instruksi) CS:IPCS (Code Segment) menyimpan alamat segment (64 Kb of memory) dari program.IP (Instruction Pointer) menyimpan alamat offset dari program yang akan menentukaninstruksi mana di dalam 64 Kb tadi yang akan dieksekusi
Segment untuk Data DS:BXDS (Data Segment) menyimpan alamat segment (64 Kb of memory) dari data.BX (Base Register) menyimpan alamat offset dari data yang akan menentukan data manadi dalam 64 Kb tadi yang akan diambil
Segment untuk Stack SS:SPSS (Stack Segment) menyimpan alamat segment (64 Kb of memory) dari stack.SP (Stack Pointer) menyimpan alamat offset dari top of the stack yang akan menentukantumpukan (stack) mana di dalam 64 Kb tadi yang akan diambil (POP)
Extra SegmentES (Extra Segment) menyimpan alamat segment (64 Kb of memory) yg digunakan untuktambahan lokasi penyimpanan data jika segment Data tidak mencukupi.
Suatu program dapat memakai 4 segment yg berbeda-beda (format program *.EXE)atau hanya menggunakan sebuah segment untuk menampung program + data + stack +extra (format program *.COM)
C:\WINDOWS\COMMAND>debug-n CHKDSK.EXE-l loading file ‘chkdsk.exe’ ke memori
BP=0000 SI=0000 DI=0000NV UP EI PL NZ NA PO NC
Perhatikan bahwa program berekstensi EXE menggunakan 3 segment :1. segment program ada di segment nomor 0F9C2. segment stack ada di segment nomor 10863. segment data = segment extra = 0F8C
C:\WINDOWS\COMMAND>debug-n FORMAT.COM-l loading file ‘format.com’ ke memori
BP=0000 SI=0000 DI=0000NV UP EI PL NZ NA PO NC
Perhatikan bahwa program berekstensi COM hanya menggunakan 1 segment yaitusegment nomor 0F8C
Aqwam Rosadi K. SKom.,MM. 2009
D I K T A T A J A R HAL - 15
-tAX=1234 BX=0000 CX=0000 DX=0000 SP=FFEEDS=0EA0 ES=0EA0 SS=0EA0 CS=0EA0 IP=0103
-tAX=1234 BX=5678 CX=0000 DX=0000 SP=FFEEDS=0EA0 ES=0EA0 SS=0EA0 CS=0EA0 IP=0106
-tAX=1234 BX=5678 CX=0000 DX=0000 SP=FFECDS=0EA0 ES=0EA0 SS=0EA0 CS=0EA0 IP=0107
Bab-VIISTACK
Karena jumlah register data terbatas (hanya 4 buah : AX, BX, CX, DX), makadiperlukan suatu lokasi penyimpanan data untuk sementara yang disebut stack.Kelebihan stack adalah dari kesederhanaannya didalam menyimpan danmengembalikan kembali data yg telah tersimpan dibandingkan denganpenyimpanan ke memori. Dari arti katanya stack adalah tumpukan. Ini berarti jikakita akan menyimpan data di stack, data tersebut akan ditumpuk berdasarkanurutan siapa yang terakhir datang. Oleh karenanya, sistem akses data di stackdisebut LIFO (Last In First Out) dimana data yang akan diambil adalah data yangditumpuk terakhir. Penumpukan data di stack dilakukan dari bawah.
FFFF 5EFFFE CD tumpukan terakhir
tumpukan baru
Untuk mengidentifikasi tumpukan data terakhir (paling bawah), digunakan registerSP (Stack Pointer). Jadi SP akan ‘menunjuk’ ke tumpukan terendah dari stack.Setiap kali ada data yang ditumpuk, isi SP akan berkurang (counting down).Instruksi yang digunakan untuk operasi stack adalah PUSH dan POP. PUSHakan ‘mendorong’ data ke stack dan POP akan ‘mengeluarkan’ data dari stack.
-a0EA0:0100 mov ax,12340EA0:0103 mov bx,56780EA0:0106 push ax0EA0:0107 push bx0EA0:0108 pop ax0EA0:0109 pop bx
SP=FFEE
-d ffe0 0EA0:FFE0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 isi stack
0EA0:0103 BB7856 MOV BX,5678
BP=0000 SI=0000 DI=0000NV UP EI PL NZ NA PO NC
0EA0:0106 50 PUSH AX
BP=0000 SI=0000 DI=0000NV UP EI PL NZ NA PO NC
0EA0:0107 53PUS
Aqwam Rosadi K. SKom.,MM. 2009
D I K T A T A J A R HAL - 16
H BX BP=0000 SI=0000 DI=0000NV UP EI PL NZ NA PO NC
-d ffe0
Aqwam Rosadi K. SKom.,MM. 2009
D I K T A T A J A R HAL - 17
-tAX=1234 BX=5678 CX=0000 DX=0000 SP=FFEADS=0EA0 ES=0EA0 SS=0EA0 CS=0EA0 IP=0108
-tAX=5678 BX=5678 CX=0000 DX=0000 SP=FFECDS=0EA0 ES=0EA0 SS=0EA0 CS=0EA0 IP=0109
-tAX=5678 BX=1234 CX=0000 DX=0000 SP=FFEEDS=0EA0 ES=0EA0 SS=0EA0 CS=0EA0 IP=010A
0EA0:FFE0 00 00 00 00 00 00 00 00-00 00 00 00 34 12 00 00 AX ada di stack
0EA0:0108 58 POP AX
BP=0000 SI=0000 DI=0000NV UP EI PL NZ NA PO NC
-d ffe0 0EA0:FFE0 00 00 00 00 00 00 00 00-00 00 78 56 34 12 00 00 BX ada di stack
0EA0:0109 5B POP BX
BP=0000 SI=0000 DI=0000NV UP EI PL NZ NA PO NC
BP=0000
SI=0000
DI=0000NV
UP
EI
PL
NZ
NA
PO
NC
Aqwam Rosadi K. SKom.,MM. 2009
D I K T A T A J A R HAL - 18
Aqwam Rosadi K. SKom.,MM. 2009
D I K T A T A J A R HAL - 19
1000 10dw1011 wreg1010 000w1010 001w
modregr/mdataaddr-lowaddr-low
contoh 1:MOV AL,BL = 88D8
d=0,MOV AX,BX = 89D8
d=0,MOV [BX],AL = 8807
d=0,MOV [BX],AX = 8907
d=0,MOV AL,[BX] = 8A07
d=1,MOV AX,[BX] = 8B07
d=1,
contoh 2:MOV AX,1234 = B834
w=1,MOV AL,78 = B078
w=0,
contoh 3:
MOV AX,[1234]
contoh 4:
= A134w=1,
MOV [1234],AX
PUSH - Push
= A334w=1,
1. Register 0101 0reg2. Segment Register 000reg110
Bab-VIII8086/8088 INSTRUCTION SET SUMMARYDATA TRANSFER
MOV – Move
1. Reg/Mem to/from Reg2. Immediate to Register3. Memory to Accumulator4. Accumulator to Memory
data (w=1)addr-highaddr-high
(10001000 11011000)w=0, mod=11, reg=011(BL), r/m=000(AL)(10001001 11011000)w=1, mod=11, reg=011(BX), r/m=000(AX)(10001000 00000111)w=0, mod=00, reg=000(AL), r/m=111([BX])(10001001 00000111)w=1, mod=00, reg=000(AX), r/m=111([BX])(10001010 00000111)w=0, mod=00, reg=000(AL), r/m=111([BX])(10001011 00000111)w=1, mod=00, reg=000(AX), r/m=111([BX])
12 (10111000 34H 12H)reg=000(AX), Low-data=34H, Hi-data=12H(10110000 78H )
reg=000(AL), data=78H
12 (10100001 34H 12H))addr-low=34H,addr-high=12H
12 (10100011 34H 12H))addr-low=34H,addr-high=12H
contoh 1: PUSH AX = 50 (0101 0000): reg=000(AX)contoh 2: PUSH CS = 0E (0000 1110): reg=01(CS)
Aqwam Rosadi K. SKom.,MM. 2009
D I K T A T A J A R HAL - 20
1. Register 0101 1reg2. Segment Register 000reg111
POP - Pop
contoh 1: POP AX = 58 (0101 1000): reg=000(AX)contoh 2: POP CS = 0F (0000 1111): reg=01(CS)
ARITHMETIC
ADD - Add
1. Reg/Mem with Register 0000 00dw modregr/m2. Immediate to Reg/Mem 1000 00sw mod000r/m data data(sw=013. Immediate to AX/AL 0000 010w data data (w=1)
contoh 1:ADD BX,CX = 01CB (00000001 11001011)
d=0, w=1, mod=11, reg=001(CX), r/m=011(BX)ADD BL,CL = 00CB (00000000 11001011)
d=0, w=0, mod=11, reg=001(CL), r/m=011(BL)
contoh 2:ADD BX,1234 = 81C33412 (10000001 11000011 34H 12H)
sw=01, mod=11, r/m=011
contoh 3:ADD AX,1234 = 053412 (00000101 34H 12H)
w=1, Low-data=34H, Hi-data=12H
SUB - Subtract
1. Reg/Memory and Reg 0010 10dw modregr/m2. Immediate from Reg/Mem 1000 00sw mod101r/m data data(sw=013. Immediate from AX/AL 0010 110w data data (w=1)
contoh 1:SUB BX,CX = 29CB (00101001 11001011)
d=0, w=1, mod=11, reg=001(CX), r/m=011(BX)SUB BL,CL = 28CB (00101000 11001011)
d=0, w=0, mod=11, reg=001(CL), r/m=011(BL)
contoh 2:SUB BX,1234 = 81EB3412 (10000001 11101011 34H 12H)
sw=01, mod=11, r/m=011
contoh 3:SUB AX,1234 = 2D3412 (00101101 34H 12H)
w=1, Low-data=34H, Hi-data=12H
Aqwam Rosadi K. SKom.,MM. 2009
D I K T A T A J A R HAL - 21
1. Reg/Memory and Reg 0010 00dw modregr/m2. Immediate to Reg/Mem 1000 000w mod100r/m data data (w=1)3. Immediate to AX/AL 0010 010w data data (w=1)
0D9C:0108-u 1000D9C:0100 EB0D JMP 010F0D9C:0102 EBFC JMP 01000D9C:0104 7409 JZ 010F0D9C:0106 74F8 JZ 0100
LOGIC
NOT - Invert 1111 011w mod01 0r/mSHL = Shift Logical Left 1101 00vw mod10 0r/mSHR = Shift Logical Right 1101 00vw mod10 1r/m
AND - And
OR - Or
1. Reg/Memory and Reg 0000 10dw modregr/m2. Immediate to Reg/Mem 1000 000w mod001r/m data data (w=1)3. Immediate to AX/AL 0000 110w data data (w=1)
XOR - Exclusive Or
1. Reg/Memory and Reg 0011 00dw modregr/m2. Immediate to Reg/Mem 1000 000w mod110r/m data data (w=1)3. Immediate to AX/AL 0011 010w data data (w=1)
CONTROL TRANSFER
JMP - Unconditional JumpDirect w/in Segment Short 1110 1011 disp
JE/JZ - Jump on Equal/Zero 0111 0100 disp
contoh:-a 1000D9C:0100 jmp 010f0D9C:0102 jmp 01000D9C:0104 jz 010f0D9C:0106 jz 0100
jadi:JMP 010F = EB0D (11101011 00001101):jump 0D(=+13) bytes forward (IP=IP+13)JMP 0100 = EBFC (11101011 11111100):jump FC(=-4) bytes forward (IP=IP-4)JZ 010F = 7409 (01110100 00001011):jump 09(=+9) bytes forward (IP=IP+9)JZ 0100 = 74F8 (01110100 11111000):jump FB(=-8) bytes forward (IP=IP-8)
(angka minus menggunakan format 2’s complement)
Aqwam Rosadi K. SKom.,MM. 2009
D I K T A T A J A R HAL - 22
KETERANGANd = direction:
if d=1 then ‘to’ reg (RegMem)if d=0 then ‘from’ reg (Reg Reg, Mem Reg)
w = word:if w=1 then word operation (1 word = 2 bytes)if w=0 then byte operation
mod = mode:if mod=11 then r/m is treated as a REG fieldif mod=00 then DISP=0, disp-low and disp-high are absent
disp = displacement:show how far should the CPU jump from recent point (reg. IP)
r/m:if r/m = 000 then EA = (BX) + (SI) + DISPif r/m = 001 then EA = (BX) + (DI) + DISP
if r/m = 010 then EA = (BP) + (SI) + DISP ifr/m = 011 then EA = (BP) + (DI) + DISP
if r/m = 100 then EA = (SI) + DISPif r/m = 101 then EA = (DI) + DISPif r/m = 110 then EA = (BP) + DISP*if r/m = 111 then EA = (BX) + DISPif s:w=01 then 16 bits of immediate data form the operandif s:w=11 then an immediate data byte is sign extended to form the 16-bit operand
REG is assigned according to the following table:
16-Bit (w=1) 8-Bit (w=0) Segment000 AX001 CX010 DX011 BX100 SP101 BP110 SI111 DI
000 AL001 CL010 DL011 BL100 AH101 CH110 DH111 BH
00 ES01 CS10 SS11 DS
Aqwam Rosadi K. SKom.,MM. 2009
D I K T A T A J A R HAL - 23
Instruksi pada uP selalu memiliki 2 bagian yaitu operation code (op-code) dan data.
Instruksi 1 byte : op-code
Instruksi 2 byte : op-code data
Instruksi 3 byte : op-code data data
Instruksi 3 byte : op-code data data data
-a 01000EA0:0100 mov ax,12340EA0:0103 mov bl,f70EA0:0105 push ax-u 01000EA0:0100 B83412 MOV AX,12340EA0:0103 B3F7 MOV BL,F70EA0:0105 50 PUSH AX
Yang tercetak tebal merupakan op-code nya dimana :B8 berarti MOV AX, ?? ??B3 berarti MOV BL, ??
Aqwam Rosadi K. SKom.,MM. 2009
D I K T A T A J A R HAL - 24
AH ALBH BLCH CLDH DL
Stack SegmentStack Pointer
Code SegmentInstruction Pointer
Memory Controller1 1 0
8-bit Memory (max of 1 Mb)1 1 1
0 1 0 0 0 01 0 0 1 1 11 1 1 1 1 11 0 0 1 1 10 1 0 0 0 01 0 0 1 1 10 0 0 0 0 0
Bab-IXBAGAN DASARP INTEL 8088
8 - bit Data BusInternal
FlagInstruction reg
Accumulator
A L UInstructionDecoder
Data bus buffer Address buffer
MemRead
MemWrite
A0 A4A2 A6
A8A10
A12A14
A16A18
D6 D4 D2 D0
1 byte
1048576 cell
ELEMEN DIDALAM MIKROPROSESOR ADALAH :
CU (Control Unit) adalah manajer dari semua unit. CU mengatur keselarasan kerja setiapunit. Apa yang harus dilakukan oleh suatu unit, semuanya diketahui oleh CU denganbantuan microprogram yang ditanamkan padanya. Pengontrolan oleh CU dilakukan melaluiBus Kontrol (panah dari/ke Control Unit).
Instruction Decoder bertugas untuk menerjemahkan suatu instruksi dengan caramembandingkannya dengan tabel instruksi yang dimilikinya. Hasil dekoding diberikan keCU, dan CU akan membangkitkan sinyal-sinyal kontrol yang diperlukan untukmelaksanakan instruksi tersebut.
Aqwam Rosadi K. SKom.,MM. 2009
D I K T A T A J A R HAL - 25
Register adalah memori khusus di dalam uP. Untuk mengidentifikasikannya,register memiliki nama khusus yang juga sekaligus mencerminkan fungsi registertersebut. Berdasarkan isinya, register dapat dibedakan menjadi :
Register Data memiliki lebar 16 bit namun dapat diakses dalam format2x8 bit: Accumulator : AX = AH+ALBase Register : BX = BH+BLCounter Register : CX = CH+CLData Register : DX = DH+DL
Register Alamat memiliki lebar 16 bit :Code Segment : CS, menyimpan alamat segment dari programInstruction Pointer : IP, menyimpan alamat offset dari programData Segment : DS, menyimpan alamat segment dari dataIndex Register : BI (Base Index), SI (Source Index), DI (Destination Index),Pointer Register : BP (Base pointer),Stack Segment : SS, menyimpan alamat segment dari stackStack Pointer : SP, menyimpan alamat offset dari stackBase Register : BX
Register status (Flag) berfungsi untuk menyimpan status dari suatu operasi
Register instruksi menyimpan instruksi yang akan dikerjakan oleh CPU(Instruction Register)
ALU (Arithmetic and Logic Unit) adalah mesin penghitung (kalkulator) dari CPU.CU akan menggunakan ALU jika instruksi yang dikerjakan membutuhkanperhitungan aritmetika (contoh: ADD, SUB) atau logika (contoh: AND, OR, XOR).Jika suatu instruksi aritmetika dan logika dieksekusi, maka hasil operasinya dapatmengubah salah satu bit di register status.
Aqwam Rosadi K. SKom.,MM. 2009
D I K T A T A J A R HAL - 26
-tAX=0000 BX=000F CX=0000 DX=0000 SP=FFEEDS=0EA0 ES=0EA0 SS=0EA0 CS=0EA0 IP=0103
-tAX=000F BX=000F CX=0000 DX=0000 SP=FFEEDS=0EA0 ES=0EA0 SS=0EA0 CS=0EA0 IP=0105
-tAX=2503 BX=000F CX=0000 DX=0000 SP=FFEEDS=0EA0 ES=0EA0 SS=0EA0 CS=0EA0 IP=0107
Bab-XENCODING INSTRUKSI MESIN
Di dalam CPU (tepatnya pada blok Instruction Decoder), terdapattabel instruksi yang memuat daftar semua instruksi yang dapatdimengerti oleh CPU tersebut. Daftar ini disebut sebagai microcodedan setiap kali CPU menerima sebuah instruksi, CPU akan memecahkode instruksi tersebut (tahap decoding) dan kemudian melihat artidari masing-masing pecahan tersebut di microcode. Hal inimenunjukkan bahwa tidak semua CPU memiliki microcode yangsama. Beda arsitektur berarti berbeda juga microcode-nya. Sebagaicontoh, program yang dapat dijalankan di IBM PC tidak akan jalan diApple Macintosh, begitu pula sebaliknya.
Hampir semua instruksi memerlukan data untuk dioperasikan. BerdasarkanAddressingMode-nya (bagaimana uP mendapatkan data yg dibutuhkan oleh suatuinstruksi), instruksi-instruksi uP 8088 dapat dibedakan menjadi :
Addressing Mode Contoh instruksi A r t iImmediate Add AX, 3F 5B AX AX + 3F 5BRegister Direct Add AX, BX AX AX + BXRegister Indirect Add AX, [BX] AXMem[BX]Displacement Add AX, [BX+128] AXMem[BX+128]Direct atau Absolute Add AX, [1001] AXMem[1001]
[000D] [000F]-d 0000 0EA0:0000 CD 20 00 A0 00 9A EE FE - 1D F0 4F 03 27 08 8A 030EA0:0010 25 08 17 03 25 08 2A 07 - 01 01 01 00 02 FF FF FF
[0010]
0EA0:0103 89D8 MOV AX,BX
BP=0000 SI=0000 DI=0000NV UP EI PL NZ NA PO NC
BP=0000 SI=0000 DI=0000NV UP EI PL NZ NA PO NC
0EA0:0105 8B07 MOV AX,[BX] DS:000F=2503
BP=0000 SI=0000 DI=0000NV UP EI PL NZ NA PO NC
0EA0:0107 8B47FF MOV AX,[BX-01] DS:000E=038A
Aqwam Rosadi K. SKom.,MM. 2009
D I K T A T A J A R HAL - 27
-tAX=038A BX=000F CX=0000 DX=0000 SP=FFEEDS=0EA0 ES=0EA0 SS=0EA0 CS=0EA0 IP=010A
-tAX=8A08 BX=000F CX=0000 DX=0000 SP=FFEEDS=0EA0 ES=0EA0 SS=0EA0 CS=0EA0 IP=010D
BP=0000 SI=0000 DI=0000NV UP EI PL NZ NA PO NC
0EA0:010A A10D00 MOV AX,[000D] DS:000D=8A08
BP=0000 SI=0000 DI=0000NV UP EI PL NZ NA PO NC
Aqwam Rosadi K. SKom.,MM. 2009
D I K T A T A J A R HAL - 28
Bab-XIMEMORY
ROM (Read Only Memory)merupakan media penyimpan data non-volatile (volatile = menguap) yang berarti datanyatidak akan hilang meskipun power supplynya diputuskan.Contoh:ROM BIOS (ROM Basic Input Output System) pada motherboard yang bertugas untukmemeriksa keberadaan dan kondisi semua peripheral yang terpasang, menghitung danmengecek main memory, dan bootstrap loader (memanggil OS pada Hard Disk).
RAM (Random Access Memory)merupakan media penyimpan data volatile yang berarti datanya akan hilang jika powersupplynya diputuskanContoh:SDRAM pada Main Memory komputer anda (yang mencapai 64 Mb, 256 Mb).
RAM dibagi menjadi 2 jenis :SRAM (Static RAM) menggunakan hanya transistor digital ( 10 buah transistor)DRAM (Dynamic RAM) menggunakan 2 buah transistor dan kapasitorSRAM : Price = Rp 100.000 u/ Capacity 0,5 Mb, Size 50 mikron per cell, Speed 2 nsDRAM : Price = Rp 100.000 u/ Capacity 64 Mb, Size 20 mikron per cell, Speed 10 ns
Hirarki Memory
Seorang pengguna komputer akan membutuhkan memori yang cepat dalamjumlah yang tidak terbatas. Namun hal ini akan memakan biaya yang sangatmahal. Solusi ekonomis untuk keinginan tersebut adalah dengan menggunakanhirarki memori. Dengan hirarki memori, kita dapat menyeimbangkan antara Speed,Capacity, Size, dan Price.
Tujuannya adalah untuk menyediakan sistem memori dengan harga serendah-rendahnya dan kecepatan setinggi mungkin.
uP 8088
Price Capacity Size Speed
Cache memory
Main memory
Hard Disk
Aqwam Rosadi K. SKom.,MM. 2009
D I K T A T A J A R HAL - 29
PENGALAMATAN MEMORI
Metode pengalamatan memori untuk tiap-tiap desain uP amat berbeda. Disini kita akanmempelajari metode pengalamatan yang dipakai oleh uP 8088.
LOGICAL MEMORYMemori logika adalah system memori yang dilihat dari sudut programmer.Memori logika biasanya diberikan nomor dalam format Hexadecimal.
FFFFFF
1 MByte- 8086- 8088- 80186
16 MByte
- 80286,- 386 SX
4 GByte
- 386 DX- 80486
FFFF
FFFF
000
Aqwam Rosadi K. SKom.,MM. 2009
D I K T A T A J A R HAL - 30
AX=EE9A BX=0000 CX=0000 DX=0000 SP=FFEEDS=11A8 ES=11A8 SS=11A8 CS=11A8 IP=0103
Karena semua cell memori pada sistem uP 8088 memiliki lebar 8-bit (1 byte),maka jikauP hendak mengakses 16-bit (2 byte) data dari memori, 2 byte berturutanakan diambil. Peletakan data di memori diurutkan dari LSB (least significantbyte) dengan alamat memori terendah sampai MSB (most significant byte)dengan alamat memori tertinggi. Sistem ini disebut Little Endian dan berlakuuntuk semua keluarga uP x86 yang berarti alamat memori dari suatu data akanmenunjuk ke LSB dari data.
-a11A8:0100 mov ax,[0005]
[0000] [0005] [0006]-d 0000 11A8:0000 CD 20 00 A0 00 9A EE FE - 1D F0 4F 03 2D 0B 8A 03[0005] = 9A (LSB AL)[0006] = EE (MSB AH)
-tBP=0000 SI=0000 DI=0000NV UP EI PL NZ NA PO NC
Physical MemoryPada keluarga microprocessor Intel, perbedaan memori secara hardwarenyaterletak padalebarnya dimana 8088 : 8-bit, 8086-80386SX : 16-bit, dan 80386DX-80486 : 32-bit. Meskipun terdapat perbedaan lebar data pada tiap desain microprocessor diatas, seorangprogrammer tetap mengaksesnya seakan-akan mereka adalah 8-bit. Perbedaan
lebar data tersebut hanya menjadi masalah bagi hardware desainer.
Aqwam Rosadi K. SKom.,MM. 2009
D I K T A T A J A R HAL - 31
4164
4164
4125
641
256
4164
4164
4125
641
256
4164
4164
4125
641
256
4164
4164
4125
641
256
4164
4164
4125
641
256
4164
4164
4125
641
256
4164
4164
4125
641
256
4164
4164
4125
641
256
4164
4164
4125
641
256
Mai
nM
emor
y=
(256
Kby
tex
2)+
(64K
byte
x2)
=64
0K
byte
8284
8288
8253
=P
rogr
amm
able
Inte
rval
Tim
er82
37=
DM
AC
ontro
ller
8255
=P
rogr
amm
able
Per
iphe
ralI
nter
face
Pow
er S
uppl
yC
ryst
al
Bab-XIIPC-XT
Personal ComputereXtended Technology
8-bit ISA bus ON
Dip Switch Keyboard
82598088 8087
8253
8259 = Programmable Interrupt Controller8088 = Microprocessor8087 = Floating Point Numeric Processor8288 = Bus Controller8284 = Clock GeneratorCrystal = 14.318 MHz
ROM ROM ROM8237 8255
Aqwam Rosadi K. SKom.,MM. 2009
D I K T A T A J A R HAL - 32
PC-XT adalah komputer komersial pertama yang dikeluarkan IBM. Dengan prosesorIntel 8088 dan DRAM 640KB, komputer ini dipasarkan sekitar tahun 1985.
Motherboard komputer PC-XT memiliki beberapa komponen penting :
8088 (Microprocessor)adalah mikroprosesor yang bertugas mengontrol semua komponen
8087 (Arithmatic Co-Processor)adalah arithmatic co-prosesor yang bertugas untuk membantu 8088dalam menangani kalkulasi atau perhitungan aritmetikyang melibatkan angka sangat besar
8237 (DMA Controller)adalah prosesor khusus untuk menangani proses DMA (Direct Memory Access)yaitu suatu proses dimana yang menulis / membaca data di memoribukan lagi mikroprosesor, melainkan peripheral (perangkat luar)
8251 (Serial Communication Controller)adalah prosesor khusus untuk transaksi data serial (misalnya untuk modem)(terpasang pada I/O card, tidak pada motherboard)
8253 (Programmable Interval Timer)adalah prosesor khusus untuk menangani timing
8255 (Programmable Peripheral Interface)adalah prosesor khusus untuk transaksi data paralel (misalnya untuk floppy disk)
8259 (Programmable Interrupt Controller)adalah prosesor khusus untuk mengontrol mekanisme interupsi
8284 (Clock Generator)adalah IC yg digunakan untuk menghasilkan :sinyal clock (4.77 MHz), sinyal Reset, dan sinyal Ready.
8288 (Bus Controller)adalah prosesor khusus untuk mengontrol penggunaan bus data dan bus alamat
4164 (Dynamic RAM)adalah memori DRAM dengan kapasitas 65536 x 1 bit (64 Kbit).Oleh karena DRAM ini hanya dapat menyimpan 1 bit,maka untuk dapat menyimpan 8 bit, digunakan 8 x 4164.Ditambah 1 x 4164 untuk menyimpan Parity Bit.
41256 (Dynamic RAM)adalah memori DRAM dengan kapasitas 262144 x 1 bit (256 Kbit).Oleh karena DRAM ini hanya dapat menyimpan 1 bit,maka untuk dapat menyimpan 8 bit, digunakan 8 x 41256.Ditambah 1 x 41256 untuk menyimpan Parity Bit.
Aqwam Rosadi K. SKom.,MM. 2009
D I K T A T A J A R HAL - 33
Peta memori
Peta memori adalah suatu peta yang menggambarkan lokasi dari data di memori. Petamemori digambarkan sebagai blok yang memiliki alamat dan 8-bit data.Cell memori dengan alamat terendah digambarkan paling bawah
FFFF 8A
7777 E8
0000 FE
Untuk P x86, sistem operasi MSDOS (Real Mode) membagi seluruh area memorimenjadi 3 :
unlimiteddepend onthe uP
100000
XMS(eXtended Memory System)
15 Mb for 80286 – 80386SX4 Gb for 80386DX and up
FFFFF
A0000
EMS(Expanded Memory System)
384 Kb System Area
9FFFF
00000
TPA(Transient and Program Area)
640 Kb Conventional Memory
Microprocessor x86 dan sistem operasi produk Microsoft selalu mempertahankankompatibilitasnya terhadap microprocessor dan sistem operasi pendahulunya. Olehkarenanya Intel Pentium® pun tetap mengacu pada peta memori uP i8088 denganmemori utamanya sebesar 1 Mb (Intel menyebutnya real memory).
Memori sebesar 1 Mb ini dibagi menjadi 2 menurut fungsinya.1. Daerah 640Kb pertama disebut TPA (Transient Program Area) atau conventionalmemory. Disini terdapat OS (Operating System), dan program aplikasi yg dijalankan(alamat fisik 00000 – 9FFFF)2. Diatas TPA terdapat EMS (Expanded Memory System) yang pada dasarnyamerupakan BIOS (Basic I/O System) system area untuk pengontrolan I/O (alamat fisikA0000 – FFFFF)
Untuk microprocessor diatas i8088, penggunaan memori diatas 1 Mb dimungkinkan dandaerah ini disebut dengan XMS (Extended Memory System).
Aqwam Rosadi K. SKom.,MM. 2009
D I K T A T A J A R HAL - 34
11 30
Bab-XIIIMIKROPROSESOR I8088
Mikroprosesor yg akan digunakan disini adalah P Intel 8088 yang memilikikarakteristik sebagai berikut (diambil dari spesifikasi teknis i8088 dari Intel®):
8-Bit Data Bus Interface (D0 – D7) Eksternal Data Bus= 8 jalur16-Bit Internal Architecture Internal Data Bus = 16 jalurDirect Addressing memori sampai 1 Mbyte Address Bus = A0 – A19
14 Register dengan lebar masing-masing 16 bit : 4 register serba guna AX, BX, CX, DX
dapat diakses dalam 8 bit menjadi AH-AL, BH-BL, CH-CL, DH-DL 9 register alamat SP, BP, SI, DI, DS, ES, SS, CS, IP 1 register status Flag
Operasi data dalam format Byte (8 bit), Word (16 bit), and Block (variable)
Dua frekuensi kerja : 5 MHz untuk type 8088 8 MHz untuk type 8088-2
Dua mode kerja : Mode Minimum Mode Maximum
Mikroprosesor 8088 difabrikasi dgn teknologi N-channel, depletion load, silicon gate(HMOS-II), dan dipasarkan dalam 40-pin CERDIP (Ceramic Dual In Line Package).
GNDA14A13A12A11A10A9A8
D7 / A7D6 / A6D5 / A5D4 / A4D3 / A3D2 / A2D1 / A1D0 / A0
NMIinterrupt
clockGND
1 402 393 384 375 366 357 348 339 3210 8088 31
12 2913 2814 2715 2616 2517 2418 2319 2220 21
VccA15A16/S3A17/S4A18/S5A19/S6SS0min/maxreadholdhold ackwriteIO/memDT/RDENALEinterrupt acktestreadyreset
Aqwam Rosadi K. SKom.,MM. 2009
D I K T A T A J A R HAL - 35
Pada i8088 ada beberapa pin yg harus diperhatikan (mode Minimum) :
Pin Nama Fungsi Tipe
1,20 GND disambungkan dengan Ground (0 Volt) Pow40 VCC disambungkan dengan power +5 V DC Pow
9-16 AD7–AD0Address line (A0 – A7) + Data line (D0 – D7)(termultipleks dalam time / TDMA)
I/O
2-8 A8 – A14 Address line (A8 – A14) Out35-39 A15 – A19 Address line (A15 – A19) Out
25 ALEAddress Latch Enable (Active High)jika ‘1’ berarti pin 9 – 16 (AD0 – AD7) = Address Bus (A0 – A7)jika ‘0’ berarti pin 9 – 16 (AD0 – AD7) = Data Bus (D0 – D7)
Out
18 INTR sinyal interupsi dari suatu I/O (Active High)yang menyebabkan i8088 melakukan service khusus
In
24 INTA Interrupt Acknowledge (Active Low)(balasan dari i8088 ke I/O yg mengirim sinyal interupsi)
Out
19 CLK masukan untuk frekuensi kerja (clock) In21 RESET Menginisialisasi semua register (Active High) In
28 IO / MMemori (Low) ataukah I/O (High) yg diakses oleh i8088 ?jika ‘1’ (High Voltage) berarti yg diakses adalah I/Ojika ‘0’ (Low Voltage) berarti yg diakses adalah memori
Out
29 WRSinyal Write (Active Low) berarti i8088 akan menulis dataAddress bus telah berisi alamat valid dari sel yg akan ditulisData bus telah berisi data valid dari data yg akan ditulis
Out
30 HLDA Hold Acknowledge (Active High) yg menandakanbahwa i8088 telah memutuskan dirinya dari bus
Out
31 HOLD Sinyal Hold (Active High) meminta i8088 memutuskanhubungan dengan Address Bus dan Data Bus (untuk DMA)
In
32 RD Sinyal Read (Active Low) berarti i8088 akan membaca data(Address bus telah berisi alamat valid dari data yg akan dibaca)
Out
33 MN / MXMenset i8088 untuk bekerja pada salah satu modejika ‘1’ (High Voltage) berarti bekerja dalam mode Minimumjika ‘0’ (Low Voltage) berarti bekerja dalam mode Maximum
In
Active High : pin tersebut dianggap aktif jika dalam kondisi High Voltage (VCC)Active Low : pin tersebut dianggap aktif jika dalam kondisi Low Voltage (Ground)In : arah sinyal masuk ke dalam i8088Out : arah sinyal keluar dari i8088Pow : Power Line (catu daya)
Inisialisasi register saat Reset diaktifkan: semua register akan berisi data 0000 kecualiCS=FFFF.
Aqwam Rosadi K. SKom.,MM. 2009
D I K T A T A J A R HAL - 36
SILABUS
MATA KULIAH : MIKROPROSESOR – I
SATUAN KREDIT SEMESTER : 2
SEMESTER :
TUJUAN : MEMAHAMI CARA KERJA MIKROPROSESOR
PRE - REQUISITES
Organisasi Komputer
Arsitektur Komputer
Sistem Digital
SILABUS SINGKAT
Struktur Mikroprosesor: Struktur Internal Mikroprosesor, Signal-signal Mikroprosesor
Mikroprosesor Populer : 8080, 8088, 6800, Pemilihan Mikroprosesor, Pemograman Mikroprosesor
Set Intruksi dan Addressing Mode , Timing
Teknik Input-output, Jenis Input-output , Memory Mapped I/O, Data Transferred Serial Paralel,
Handshaking, PIO, ACIA, VIA, Katalog Analog Digital, Fungsi Konverter, Cara Kerja ADC dan DAC.
Sistem Interupsi, Fungsi Interupsi, response Interupsi, Tranducer dan Controller, Tranduser
Pengukuran dan Sisten Kontrol
PRA AJAR
Konsep Dasar Mikroprosesor
Aqwam Rosadi K. SKom.,MM. 2009
D I K T A T A J A R HAL - 37
Prinsip Kerja Mikroprosesor
POST AJAR
Memahami prinsip dasar dan kerja dari Mikroprosesor
DAFTAR PUSTAKA
Ananta Candrakasan, William J Bowhill, Frank Fox, Design f High-performance microprocessorcircuit, IEEE Press, 2001.
Avtar Singh, Walter A. Triebel, The 8088 Microprocessor Programming, Interfacing, Software,Hardware, and Applications, Prentice Hall, 1989
Branco, Suacek, Microprosessor and Microcomputer, John Wiley and sons, 1982
Barry B Brey, The Intel Microprocessors, Architecture, Programming and Interfacing, Prentice Hall,2003.
Douglas V. Hall, Microprocessor and Interfacing: Programming and Hardware, McGraw-Hill, edition2, 1991.
http://developer.intel.com/design/pentium II & III/Manual/
Gene A. Streit Matter, Vito Fiore, Microprocessors Theory and Applications, Prentice Hall, 1982
James Antonakos, Kenneth C Mansfield, Microcomputer Hardware, Software, and Troubleshootingfor engineering and technology, Prentice Hall, 2000
James W Strwart, Kai X. Miao, The 8051 Microcontroller Hardware, Software amd Interfacing,Second Edition, Prentice Hall, 1999
John P. Shen,Mikko H. Lipasti, Modern Processor Design: Fundamentals of Superscalar Processor,Beta Edition, McGraw Hill, 2002
Paulus Andi Nalwan, Teknik Antarmuka dan Pemprograman Mikrokontroller AT89C51 Elex MediaKomputindo, 2003.
Peter Abel, IBM PC Assembly Language and Programming, Prentice Hall, 2001.
Rizkiawan, Tutorial Perancangan Hardware Jilid II, Elex Media Komputindo, 1996.
Soepono Soeparlan, Seri Dktat Kuliah Pengantar Mikroprosesor 8086/8088, 80186, 80286, 80386dan 80486 : Arsitektur, pemrograman, dan interfacing, Gunadarma, 1995.
Technical Education Council, Mikroprosssor Pripciples, Hutchkinson and Co, London, 1982
Tokheim, Microcomputers Fundamentals, McGraw Hill, 1986
Aqwam Rosadi K. SKom.,MM. 2009
D I K T A T A J A R HAL - 38
Zaks, Rodnay. Terj. S.H. Nasution : Dari chip ke Sistem : Pengantar Mikroprosesor, PT. Erlangga,Jakarta, 1986
DAFTAR REFERENSI MICROPROCESSOR
1. Ananta Candrakasan, William J Bowhill, Frank Fox, Design f High-performance microprocessor circuit, IEEE Press, 2001.
2. Avtar Singh, Walter A. Triebel, The 8088 Microprocessor Programming,Interfacing, Software, Hardware, and Applications, Prentice Hall, 1989.
3. Branco, Suacek, Microprosessor and Microcomputer, John Wiley and sons,1982
4. Barry B Brey, The Intel Microprocessors, Architecture, Programming andInterfacing, Prentice Hall, 2003.
5. Douglas V. Hall, Microprocessor and Interfacing: Programming andHardware, McGraw-Hill, edition 2, 1991.
6. http://developer.intel.com/design/pentium II & III/Manual/7. Gene A. Streit Matter, Vito Fiore, Microprocessors Theory and Applications,
Prentice Hall, 19828. James Antonakos, Kenneth C Mansfield, Microcomputer Hardware,
Software, and Troubleshooting for engineering and technology, PrenticeHall, 2000.
9. James W Strwart, Kai X. Miao, The 8051 Microcontroller Hardware,Software amd Interfacing, Second Edition, Prentice Hall, 1999.
10. John P. Shen,Mikko H. Lipasti, Modern Processor Design: Fundamentalsof Superscalar Processor, Beta Edition, McGraw Hill, 2002.
11. Paulus Andi Nalwan, Teknik Antarmuka dan PemprogramanMikrokontroller AT89C51 Elex Media Komputindo, 2003.
12. Peter Abel, IBM PC Assembly Language and Programming, Prentice Hall,2001.
13. Rizkiawan, Tutorial Perancangan Hardware Jilid II, Elex MediaKomputindo, 1996.
14. Soepono Soeparlan, Seri Dktat Kuliah Pengantar Mikroprosesor8086/8088, 80186, 80286, 80386 dan 80486 : Arsitektur, pemrograman,dan interfacing, Gunadarma, 1995.
15. Technical Education Council, Mikroprosssor Pripciples, Hutchkinson andCo, London, 1982
16. Tokheim, Microcomputers Fundamentals, McGraw Hill, 198617. Zaks, Rodnay. Terj S.H. Nasution : Dari chip ke Sistem : Pengantar
Mikroprosesor, PT. Erlangga, Jakarta, 1986
Aqwam Rosadi K. SKom.,MM. 2009
D I K T A T A J A R HAL - 39