DIKTAT KULIAH. MIKROPROSESOR dan ANTARMUKA (S1 TE)

Ukuran: px
Mulai penontonan dengan halaman:

Download "DIKTAT KULIAH. MIKROPROSESOR dan ANTARMUKA (S1 TE)"

Transkripsi

1 DIKTAT KULIAH MIKROPROSESOR dan ANTARMUKA (S1 TE) Disusun oleh : Nyoman Bogi Aditya Karna, ST., MSEE JURUSAN TEKNIK ELEKTRO SEKOLAH TINGGI TEKNOLOGI TELKOM BANDUNG

2 2002

3 LEMBAR PENGESAHAN DIKTAT KULIAH / MODUL / BUKU AJAR Diktat Kuliah Judul : Diktat Kuliah Pengenalan Komputer (EE 1122) Jenis : Diktat Kuliah Pada : Program Studi S1 Teknik Elektro Waktu : Mei 2002 Identitas Penulis : Nama lengkap dan gelar : Nyoman Bogi Aditya Karna, ST., MSEE Golongan / Pangkat dan NIP : 8 / Jabatan Akademik : -- Jurusan / Program / Unit Kerja : Teknik Elektro Perguruan Tinggi : Sekolah Tinggi Teknologi Telkom Jumlah Penulis : 1 orang Mengetahui, Ka. Perpustakaan Menyetujui, Kajur. Teknik Elektro Drs. Danang Mursita, Msi NIP : Ahmad Tri Hanuranto, Ir. MT. NIP :

4 Daftar Isi Judul Lembar Pengesahan Daftar Isi Terminologi. 1 Survival Guide Using DEBUG 4 Command pada DEBUG. 4 Organisasi Komputer... 7 Interaksi µp dengan Memori... 9 Pembacaan data Penulisan data Mikroprosesor Kemampuan Bus.. 12 Register Struktur Memori pada µp Segmentasi Instruksi Mesin µp Instruksi MOV. 18 Instruksi ADD & SUB. 20 Instruksi JMP & JZ. 22 Stack /8088 Instruction Set Summary 24 Data Transfer 24 Arithmetic Logic 26 Control Transfer Bagan Dasar µp Intel Proses Kerja (Bagaimana µp 8088 mengerjakan instruksi). 31 Encoding Instruksi Mesin 33 Memory 35 Klasifikasi Hirarki Pengalamatan Peta Memori PC-XT (Personal Computer extended Technology).. 38 Mikroprosesor µp Sistem Penunjang µp Memori pada sistem µp Interfacing µp 8088 dengan Memori Sambungan Data Sambungan Alamat.. 46 Sambungan Kontrol. 47 Sambungan µp 8088 dengan 1 keping memori... 48

5 Sambungan µp 8088 dengan 2 keping memori Sambungan µp 8088 dengan 4 keping memori Address Decoder. 52 Interfacing µp 8088 dengan I/O.. 56 Perangkat Input : Dip Switch.. 51 Perangkat Output : LED.. 51 PPI Interrupt 69 Studi Kasus Mikroprosesor secara Umum.. 73 Set Instruksi. 74 Addressing Mode. 75 Pipeline pada x Structural Hazard. 77 Data Hazard. 78 Control Hazard. 81 Referensi

6 Terminologi 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). Ini berarti kita memiliki 10 buah simbol untuk menyatakan 10 buah besaran, yaitu : 0, 1, 2, 3, 4, 5, 6, 7, 8, Sistem bilangan biner (Binary) menggunakan 2 (dua) buah simbol untuk merepresentasikan 2 besaran, yaitu : 0 dan 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 nibble 6. Kesatuan 8 simbol biner yg merepresentasikan suatu informasi disebut dgn byte 7. Kesatuan 16 simbol biner yg merepresentasikan suatu informasi disebut dgn word 8. 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 bahan dan media pembuatannya, transistor digital dibedakan menjadi nmos (negative Metal Oxide Semiconductor), CMOS (Complementary MOS), dan TTL (Transistor- Transistor Logic) 10. Gerbang logika (Logic Gate) adalah komponen dasar dari rangkaian digital yang dibentuk dari beberapa transistor digital untuk membentuk suatu fungsi tertentu (contoh : AND Gate, OR Gate, INVERTER) 11. Integrated Circuit (IC) adalah gabungan komponen-komponen yang menjalankan suatu 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 MOS d. 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 buah (contoh : Microprocessor) 13. Microprocessor (atau CPU = Central Processing Unit) adalah sebuah VLSI yang didesain khusus untuk memproses/mengerjakan tugas-tugas standar. UP adalah otak dari komputer karena dialah yang bertugas menghitung dan mengontrol peralatan lain disekitarnya (contoh : Zilog dengan Z80, Intel dengan Pentium TM ) 14. Microcontroller adalah sebuah Microprocessor dengan fasilitas memori didalamnya (yang dapat diprogram oleh user) untuk mengerjakan tugas tertentu yang dikehendaki

7 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 bertugas untuk 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 nilai biner ( 0 atau 1 ). Karena kemampuannya untuk menyimpan nilai biner, Flip-Flop menjadi komponen dasar memori (contoh : Data Flip-Flop) 17. Memori adalah serangkaian Flip-Flop yg dikombinasikan untuk menyimpan suatu informasi. 18. Register adalah memori yg diimplementasikan di dalam microprocessor sehingga memiliki kecepatan yg sama dgn microprocessor. 19. Random Access Memory (RAM) adalah tempat penyimpanan sementara bagi data dan code (program) untuk dapat digunakan oleh Microprocessor sebagai scratch book (contoh : SDRAM, DDR). Karena bersifat sebagai scratch book, maka data harus dapat ditulis, dibaca, dan kemudian ditulis kembali ke dalam RAM. Data di dalam RAM akan hilang jika powernya dimatikan (volatile) 20. Read Only Memory (ROM) adalah tipe memori yang bersifat baca saja dimana data ditulis sekali ke dalamnya dan untuk seterusnya hanya dibaca saja. ROM pada umumnya digunakan sebagai tempat penyimpanan program atau pustaka (contoh : EEPROM untuk bootstrap loader). Perbedaan dengan RAM adalah jika power supply ke ROM diputuskan isinya tidak akan hilang. 21. Control Unit (CU) adalah bagian dari Microprocessor yang bertugas untuk mengontrol kerja dari bagian-bagian khusus Microprocessor di atas (ALU, Register) 22. Peripheral adalah adalah semua perangkat yang digunakan untuk menambah utilitas/kegunaan komputer (contoh : printer, plotter, mouse, joystick, gamepad) 23. Input/Output (I/O) adalah saluran transmisi yg digunakan oleh komputer untuk berinteraksi dgn peripheral (contoh : ISA (IBM Standard Architecture), EISA (Enhanced ISA), PCI, Parallel Port) 24. Bus adalah jalur pengiriman sinyal informasi antar komponen. Dilihat dari jenis informasi 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 dan program 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 instruksi bervariasi tergantung kebutuhan, ada yg hanya 1 instruksi = 1 byte dan ada yg 1 instruksi mencapai 4 byte. Contoh : Instruksi pada up 8088 s.d. Pentium IV 28. Fixed Length Instruction (FLI) adalah set instruksi dimana lebar semua instruksi adalah sama, misalnya 4 byte. Contoh : up Alpha dari DEC (Digital Equipment Computer) dan PowerPC pada Apple Macintosh dari Motorola

8 29. Complex Instruction Set Computer (CISC) adalah desain up dimana instruksi yang dapat dijalankan 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 dapat dijalankan 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 selalu bekerja setiap saat. Contoh : pada x86, pipeline mulai diterapkan sejak 80386DX 32. Stalled adalah suatu kondisi dimana suatu instruksi baru tidak dapat dijemput sehingga penjemputannya terpaksa ditunda (delayed) sampai semua kondisi mendukung. 33. Hazard adalah hal-hal yang menyebabkan stall terjadi. 34. Structural Hazard adalah yang menyebabkan stall terjadi karena adanya keterbatasan resource sistem 35. Data Hazard adalah yang menyebabkan stall terjadi karena adanya ketergantungan data antar instruksi yg berdekatan 36. Control Hazard adalah yang menyebabkan stall terjadi karena eksekusi instruksi kontrol 37. Paralelism adalah instruksi-instruksi yang tidak memiliki ketergantungan satu sama lainnya sehingga dapat dikerjakan pada saat yg bersamaan 38. Instruction Scheduling adalah teknik untuk meminimisasi terjadinya Data Hazard dengan cara menyusun ulang semua instruksi yang akan dikerjakan 39. Superscalar adalah mesin yang mengerjakan beberapa instruksi sekaligus dimana instruksi-instruksi yang akan dikerjakan dipilih oleh hardware khusus secara dinamis 40. Very Long Instruction Wide (VLIW) adalah mesin yang mengerjakan beberapa instruksi sekaligus dimana instruksi-instruksi yang akan dikerjakan dipilih oleh software secara statis 41. Million Instruction Per Second (MIPS) adalah satuan kecepatan up yg menunjukkan berapa juta 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. Yang diukur 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 diakses sebelumnya (berdasarkan history) 44. Spatial locality adalah suatu metode yg menganggap : jika suatu data sedang diakses, maka kemungkinan 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 apakah suatu instruksi jump akan dilakukan (taken) atau tidak (not-taken). 46. Tomasulo algorithm adalah metode pengembangan (penggabungan) antara metode Predict-taken dan Predict-not-taken.

9 Survival Guide using DEBUG Debug adalah suatu program kecil yang telah ada sejak MS-DOS versi 3.0 dikeluarkan. Sampai sekarangpun program Debug tetap disertakan pada saat anda menginstall MS Windows. Program ini digunakan untuk melihat isi suatu blok memori (view), mengubahnya (edit), dan menjalankan (run) instruksi-instruksi yang ada di blok tersebut. Cara mengaktifkan : 1. Cara pertama : Di lingkungan Windows, klik Start dan kemudian pilih Run. Dari window Run ketikkan Debug dan klik tombol OK. 2. Cara kedua : Di lingkungan DOS, pindahlah ke subdirectory yang berisi instruksiinstruksi DOS. Jika Windows terinstall, pindahlah ke C:\Windows\Command, dan kemudian ketik Debug dan tekan tombol Enter. Salah satu dari kedua cara tersebut akan memanggil program Debug dengan menampilkan cursor berbentuk strip (-) C:\>Debug

10 - Command pada DEBUG Disini Debug menanti perintah (command) dari kita command arti keterangan a assemble menulis instruksi-instruksi yang akan dijalankan ke memori u unassemble melihat instruksi-instruksi yg ada di memori d dump melihat isi dari memori (128 bytes ditampilkan) f fill mengisi secara langsung suatu blok memori t trace menjalankan instruksi-instruksi yang ada di memori instruction-by-instruction (1 t menjalankan 1 instruksi) g go menjalankan semua instruksi yg ada di memori n name memberikan nama file yg akan di-edit atau di-save l load Load suatu file ke memori (nama file telah didefinisikan terlebih dahulu dengan command n ) w write menulis isi memori ke file r register menampilkan isi semua register rxx register xx mengubah isi suatu register xx (contoh : rax, rip, rss) C:\WINDOWS>debug -f 0000 ffff 90! mengisi memori dari alamat 0000 sampai ffff dengan data 90H -a! assemble a program 0F6C:0100 mov ax,1234 0F6C:0103 mov ax,bx 0F6C:0105 mov ax,[bx] 0F6C:0107 instruksi yg akan dijalankan -u! un-assemble program 0F6C:0100 B83412 MOV AX,1234 0F6C: D8 MOV AX,BX 0F6C:0105 8B07 MOV AX,[BX] alamat kode-instruksi instruksi -d! dump (view) isi memori 0F6C:0100 B D8 8B F6C: F6C: F6C: F6C: F6C: F6C: F6C:

11 alamat isi memori (dalam Hexadecimal) isi memori (ASCII)

12 -t! trace program (run per instruction) AX=1234 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=0F6C ES=0F6C SS=0F6C CS=0F6C IP=0103 NV UP EI PL NZ NA PO NC 0F6C: D8 MOV AX,BX! next instruction -t! run that next instruction AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=0F6C ES=0F6C SS=0F6C CS=0F6C IP=0105 NV UP EI PL NZ NA PO NC 0F6C:0105 8B07 MOV AX,[BX] DS:0000=20CD -t AX=20CD BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=0F6C ES=0F6C SS=0F6C CS=0F6C IP=0107 NV UP EI PL NZ NA PO NC 0F6C:0107 8B4701 MOV AX,[BX+01] DS:0001=0020 -n tes.aaa! set filename = tes.aaa -rcx CX 0000 :0007! mengubah isi register CX dari 0000 menjadi r AX=20CD BX=0000 CX=0007 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=0F6C ES=0F6C SS=0F6C CS=0F6C IP=0107 NV UP EI PL NZ NA PO NC -w! menulis isi memori sebanyak 7 bytes (reg. CX) ke file tes.aaa Writing bytes -q C:\WINDOWS>_

13 Organisasi 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 halnya mikroprosesor, disebut sistem digital. Sementara sistem yang mengenal jumlah besaran yang sangat banyak (bahkan mencapai tak berhingga) disebut sistem analog. Pada umumnya, diluar sistem mikroprosesor, digunakan sistem analog. Oleh karena adanya perbedaan ini, sebelum mikroprosesor dapat mengolah data dari luar sistemnya, data tersebut harus dikonversi terlebih dahulu ke sistem digital. Pengubahan ini dilakukan oleh blok Input dan Output. Microprocessor O Sinyal I sinyal = sinyal U sinyal analog N biner biner T analog P Control Unit P U U T T + Memory Fungsi dari masing-masing bagian : 1. Blok Input memiliki 2 fungsi yaitu (1) mengkonversi besaran yg berlaku di luar sistem µp menjadi besaran biner, dan (2) menyimpan informasi biner untuk sementara waktu sampai µp memiliki waktu untuk membacanya. Contoh : agar sinyal dari microphone dapat direkam oleh µp, diperlukan ADC (Analog to Digital Converter) yg terdapat di Sound Card dalam komputer anda 2. Control Unit (CU) berfungsi untuk mengatur operasi seluruh sistem dengan menghasilkan atau memproses sinyal kontrol 3. Arithmetic and Logic Unit (ALU) berfungsi untuk membantu CU saat melakukan perhitungan aritmetika (ADD, SUB) dan logika (AND, OR, XOR, SHL, SHR) 4. Memory berfungsi untuk menyimpan informasi biner 5. Blok Output memiliki 2 fungsi yaitu (1) mengkonversi besaran biner menjadi suatu besaran tertentu, dan (2) menyimpan informasi biner dari mikroprosesor sampai perangkat luar yg akan membaca data tersebut siap. Contoh : agar informasi lagu yg tersimpan di memori dapat didengarkan dari speaker, maka diperlukan DAC (Digital to Analog Converter) yg terdapat di Sound Card dalam komputer anda

14 Cara Kerja 1. Sistem diluar sistem up bekerja pada besaran analog. Blok Input berfungsi untuk mengubah besaran tersebut menjadi besaran biner yang dapat dimengerti 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 dahulu blok Input mengirim sinyal kontrol ke up. 3. CU setelah menerima sinyal kontrol tersebut akan membaca informasi yang diberikan oleh blok Input dan menyimpannya di memori. 4. Jika diperlukan, informasi yang disimpan di memori tersebut akan diambil kembali untuk diproses lebih lanjut dengan bantuan ALU. 5. Hasil proses ini dikirimkan oleh CU ke blok Output. Blok Output akan mengubah besaran biner menjadi suatu besaran tertentu sesuai keinginan pembuatnya. Case Study : Alat Pengukur Rata-rata Temperature 1. Blok Input adalah termometer digital untuk mengukur suhu diluar sistem dan mengubahnya menjadi representasi biner 2. mengirim sinyal kontrol ada data ke up untuk mendapatkan perhatian up 3. CU akan membaca informasi biner tersebut dan menyimpannya di memori 4. Setelah informasi terkumpul selama 1 menit, CU harus memproses semua informasi yang telah terkumpul dan menghitung rata-ratanya 5. Hasil proses ini dikeluarkan ke blok Output untuk diubah menjadi suatu tegangan. Tegangan hasil blok Output akan menggerakkan jarum penunjuk untuk memberikan informasi rata-rata temperatur

15 Interaksi µ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 suatu informasi dari buku, pertama-tama manusia harus dapat menentukan dimana lokasi informasi tersebut berada (i.e. nomor halaman, alinea, baris, etc.). Baru setelah itu dapat menuliskan informasinya atau membaca informasinya. Hal yg sama juga berlaku di up, dimana : sebelum up dapat membaca data dari memori, pertama-tama up harus menyediakan informasi mengenai dimana data tersebut berada. Sebelum up dapat menuliskan suatu data ke memori, pertama-tama up harus menyediakan informasi mengenai dimana data tersebut akan ditulis. Informasi mengenai dimana data tersebut disebut dengan Alamat. Proses pembacaan data oleh up dari memori (arah data : up! memori) alamat 8088 read data memori Urutan kerja : 1. µp8088 mempersiapkan alamat (lokasi) dari data yg akan dibaca 2. µp8088 mengirimkan sinyal read ke memori 3. setelah menerima sinyal read, memori mencari data yg diinginkan µp8088 sesuai dgn alamat yg diberikan 4. data yg sesuai dikirimkan oleh memori ke µp8088

16 Proses penulisan data oleh up ke memori (arah data : up " memori) alamat 8088 data write memori Urutan kerja : 1. µp8088 mempersiapkan alamat (lokasi) dimana data akan ditulis (diletakkan) 2. µp8088 mempersiapkan data yg akan ditulis 3. µp8088 mengirimkan sinyal write ke memori 4. 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) kontrol baca/tulis. Ketiga saluran ini disebut sebagai (1) bus alamat, (2) bus data, dan (3) bus kontrol.

17

18 8086/8088 Instruction Set Summary DATA TRANSFER MOV Move 1. Reg/Mem to/from Reg dw modregr/m 2. Immediate to Register 1011 wreg data data (w=1) 3. Memory to Accumulator w addr-low addr-high 4. Accumulator to Memory w addr-low addr-high contoh 1: MOV AL,BL = 88D8 ( ) d=0, w=0, mod=11, reg=011(bl), r/m=000(al) MOV AX,BX = 89D8 ( ) d=0, w=1, mod=11, reg=011(bx), r/m=000(ax) MOV [BX],AL = 8807 ( ) d=0, w=0, mod=00, reg=000(al), r/m=111([bx]) MOV [BX],AX = 8907 ( ) d=0, w=1, mod=00, reg=000(ax), r/m=111([bx]) MOV AL,[BX] = 8A07 ( ) d=1, w=0, mod=00, reg=000(al), r/m=111([bx]) MOV AX,[BX] = 8B07 ( ) d=1, w=1, mod=00, reg=000(ax), r/m=111([bx]) contoh 2: MOV AX,1234 = B83412 ( H 12H) w=1, reg=000(ax), Low-data=34H, Hi-data=12H MOV AL,78 = B078 ( H ) w=0, reg=000(al), data=78h contoh 3: MOV AX,[1234] contoh 4: MOV [1234],AX = A13412 ( H 12H)) w=1,addr-low=34h,addr-high=12h = A33412 ( H 12H)) w=1,addr-low=34h,addr-high=12h PUSH - Push 1. Register reg 2. Segment Register 000reg110 contoh 1: PUSH AX = 50 contoh 2: PUSH CS = 0E ( ): reg=000(ax) ( ): reg=01(cs)

19 POP - Pop 1. Register reg 2. Segment Register 000reg111 contoh 1: POP AX = 58 ( ): reg=000(ax) contoh 2: POP CS = 0F ( ): reg=01(cs) ARITHMETIC ADD - Add 1. Reg/Mem with Register dw modregr/m 2. Immediate to Reg/Mem sw mod000r/m data data(sw=01 3. Immediate to AX/AL w data data (w=1) contoh 1: ADD BX,CX = 01CB ( ) d=0, w=1, mod=11, reg=001(cx), r/m=011(bx) ADD BL,CL = 00CB ( ) d=0, w=0, mod=11, reg=001(cl), r/m=011(bl) contoh 2: ADD BX,1234 = 81C33412 ( H 12H) sw=01, mod=11, r/m=011 contoh 3: ADD AX,1234 = ( H 12H) w=1, Low-data=34H, Hi-data=12H SUB - Subtract 1. Reg/Memory and Reg dw modregr/m 2. Immediate from Reg/Mem sw mod101r/m data data(sw=01 3. Immediate from AX/AL w data data (w=1) contoh 1: SUB BX,CX = 29CB ( ) d=0, w=1, mod=11, reg=001(cx), r/m=011(bx) SUB BL,CL = 28CB ( ) d=0, w=0, mod=11, reg=001(cl), r/m=011(bl) contoh 2: SUB BX,1234 = 81EB3412 ( H 12H) sw=01, mod=11, r/m=011 contoh 3: SUB AX,1234 = 2D3412 ( H 12H) w=1, Low-data=34H, Hi-data=12H

20 LOGIC NOT - Invert w mod01 0r/m SHL = Shift Logical Left vw mod10 0r/m SHR = Shift Logical Right vw mod10 1r/m AND - And 1. Reg/Memory and Reg dw modregr/m 2. Immediate to Reg/Mem w mod100r/m data data (w=1) 3. Immediate to AX/AL w data data (w=1) OR - Or 1. Reg/Memory and Reg dw modregr/m 2. Immediate to Reg/Mem w mod001r/m data data (w=1) 3. Immediate to AX/AL w data data (w=1) XOR - Exclusive Or 1. Reg/Memory and Reg dw modregr/m 2. Immediate to Reg/Mem w mod110r/m data data (w=1) 3. Immediate to AX/AL w data data (w=1) CONTROL TRANSFER JMP - Unconditional Jump Direct w/in Segment Short disp JE/JZ - Jump on Equal/Zero disp contoh: -a 100 0D9C:0100 jmp 010f 0D9C:0102 jmp D9C:0104 jz 010f 0D9C:0106 jz D9C:0108 -u 100 0D9C:0100 EB0D JMP 010F 0D9C:0102 EBFC JMP D9C: JZ 010F 0D9C: F8 JZ 0100 jadi: JMP 010F = EB0D JMP 0100 = EBFC JZ 010F = 7409 JZ 0100 = 74F8 ( ):jump 0D(=+13) bytes forward (IP=IP+13) ( ):jump FC(=-4) bytes forward (IP=IP-4) ( ):jump 09(=+9) bytes forward (IP=IP+9) ( ):jump FB(=-8) bytes forward (IP=IP-8) (angka minus menggunakan format 2 s complement)

21 NOTES: d = direction: if d=1 then to reg (Reg! Mem) 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 field if 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) + DISP if r/m = 001 then EA = (BX) + (DI) + DISP if r/m = 010 then EA = (BP) + (SI) + DISP if r/m = 011 then EA = (BP) + (DI) + DISP if r/m = 100 then EA = (SI) + DISP if r/m = 101 then EA = (DI) + DISP if r/m = 110 then EA = (BP) + DISP* if r/m = 111 then EA = (BX) + DISP if s:w=01 then 16 bits of immediate data form the operand if 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) Segment 000 AX 001 CX 010 DX 011 BX 100 SP 101 BP 110 SI 111 DI 000 AL 001 CL 010 DL 011 BL 100 AH 101 CH 110 DH 111 BH 00 ES 01 CS 10 SS 11 DS

22 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 EA0:0100 mov ax,1234 0EA0:0103 mov bl,f7 0EA0:0105 push ax -u EA0:0100 B83412 MOV AX,1234 0EA0:0103 B3F7 MOV BL,F7 0EA0: PUSH AX Yang tercetak tebal merupakan op-code nya dimana : B8 berarti MOV AX,???? B3 berarti MOV BL,??

23

24 Mikroprosesor 8088 Mikroprosesor Intel 8088 adalah multipurpose mikroprosesor yang diimplementasikan dengan teknologi N-channel, depletion load, silicon gate (HMOS-II). Dipasarkan dengan format 40-pin CERDIP (Ceramic Dual Inline Package). Mikroprosesor ini termasuk keluarga mikroprosesor 8 bit dan 16 bit. Mikroprosesor Intel 8088 kompatible secara langsung dengan software yang didesain untuk mikroprosesor 8086 dan 8080/8085, dan secara hardware juga kompatible dengan mikroprosesor 8080/8085. Keterangan GND A14 A13 A12 A11 A10 A9 A8 D7 / A7 D6 / A6 D5 / A5 D4 / A4 D3 / A3 D2 / A2 D1 / A1 D0 / A0 clock GND Vcc A15 A16 A17 A18 A19 GND : ground (0 volt) Vcc : +5 volt D 0 D 7 : Data bus (8 informasi biner = 1 byte) ada 2 8 = 256 kombinasi data (00H FFH)! untuk kode ASCII A 0 A 19 : Address bus (20 informasi biner) ada 2 20 = kombinasi harga, berarti ada lokasi memori yg dpt dialamati read : sinyal kontrol untuk membaca write : sinyal kontrol untuk menulis clock : frekuensi kerja µp8088 (5 MHz atau 8 MHz) reset : menginisialisasi kembali semua isi register ALE : Address Latch Enable, menandakan bahwa pin 9 s.d pin 16 menyimpan informasi alamat read write ALE reset

25 Kemampuan Bus 1. Lebar dari bus data sering digunakan untuk mengklasifikasikan up. Contoh: µp8088 adalah microprocessor 8-bit karena jumlah pin untuk bus data sebanyak 8 buah (D 0 D 1 D 2 D 3 D 4 D 5 D 6 D 7 : pin no. 9 16). 2. Lebar dari bus alamat menyatakan jumlah maksimum blok memory yg dapat diakses oleh mikroprosesor. a. µp dengan 1 buah alamat (A) hanya dapat mengakses 2 blok memori yaitu pada saat A=0 dan A=1 up blok 0 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 memori yaitu pada saat up A0 A1 blok 00 blok 01 blok 10 blok 11 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 Jumlah kapasitas memori total blok memori jalur alamat (1 blok memori = 1 byte) keterangan =2 2 byte =4 4 byte = byte = 64 Kbyte i8080, Z = byte = 1024 Kbyte = 1 Mbyte i8088 Contoh: up 8088 memiliki bus alamat dengan lebar 20 bit sehingga up 8088 dapat mengakses memori berkapasitas maksimum 2 20 = blok memori atau 1 Mb. Sedangkan bus kontrol memiliki lebar 1 saluran untuk setiap fungsi. Register Pada bagan organisasi komputer, memori diletakkan terpisah dari mikroprosesor. Jika bagan tersebut diimplementasikan, up harus mengakses memori setiap saat. Dan karena kecepatan memori jauh lebih lambat dari up (sebagai contoh up Pentium IV telah mencapai kecepatan 2 GHz sedangkan DDRAM maksimum hanya memiliki kecepatan 0.8 GHz), maka kecepatan kerja up akan sangat dipengaruhi oleh kecepatan memori. Untuk mempercepat pemrosesan data di dalam mikroprosesor, selain CU dan ALU, mikroprosesor juga akan membutuhkan memori yg memiliki kecepatan sama dengan up. Untuk melakukannya, memori tersebut harus diimplementasikan didalam mikroprosesor. Memori ini disebut dengan register.

26 Jenis register berdasarkan informasi yg disimpannya dapat dibagi menjadi Register Data digunakan untuk menyimpan data yg diperlukan untuk suatu operasi Terdiri dari: AX (Accumulator), BX (Base), CX (Counter), DX (Data) -r AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=0EA0 ES=0EA0 SS=0EA0 CS=0EA0 IP=0100 NV UP EI PL NZ NA PO NC 2. Register Alamat karena jumlah register data sangat terbatas, maka sebagian besar data tetap diletakkan di memori. Untuk dapat mengaksesnya, up membutuhkan alamat dari data tersebut yg disimpan oleh register alamat. Terdiri dari: SP (Stack Pointer), BP (Base Pointer), SI (Source Index), DI (Destination Index), DS (Data Segment), ES (Extra Segment), SS (Stack Segment), CS (Code Segment), IP (Instruction Pointer) dan BX (Base) -r AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=0EA0 ES=0EA0 SS=0EA0 CS=0EA0 IP=0100 NV 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 : OF DF IF TF SF ZF - AF - PF - CF -r AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=0EA0 ES=0EA0 SS=0EA0 CS=0EA0 IP=0100 NV UP EI PL NZ NA PO NC 4. Register Instruksi digunakan untuk menyimpan instruksi yang sedang dikerjakan Catatan: Register BX selain dapat digunakan sebagai register data dapat juga digunakan sebagai register alamat Lebar semua register up8088 adalah 16 bit = 2 byte. Sehingga setiap register dapat berharga 0000 H s.d. FFFF H atau 2 16 = kombinasi harga. Setiap register akan diakses (dibaca/ditulis) dalam format 16 bit tersebut, kecuali register data dapat diakses dalam format 8 bit = 1 byte (AH, AL, BH, BL, CH, CL, DH, DL). 16 bit 8 bit AH AL

27 BH CH DH BL CL DL

28 Struktur Memori pada µp 8088 Memori pada sistem µp 8088 memiliki dua ciri : 1. diakses dgn alamat selebar 16 bit (00000 H s.d. FFFFF H ) atau 2 byte 2. 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! = 8A 8000! = E8 0002! = BC 0001! = 0D 0000! = FE Alamat dari suatu cell memori direpresentasikan dalam format 2 byte (0000 H FFFF H ) yg disimpan dalam register alamat (yg lebarnya juga 2 byte). Karena kapasitas register alamat adalah 2 byte, maka jumlah cell memori yg dapat disimpan alamatnya adalah 2 16 = cell memori. Dan karena suatu cell memori menyimpan data 1 byte (00 H FF H ) maka suatu register alamat µp 8088 dapat mengakses (membaca/menulis) memori berkapasitas byte = 64 KByte. Alamat data (Hexa) data (ASCII) 0D9C:0100 0D9C:0110 0D9C:0120 0D9C:0130 0D9C:0140 0D9C:0150 0D9C:0160 0D9C:0170 0E E8 DC FC FA FC 0B D C0 C9 C3 8B 46 F8 FF 5E FA FE 8B B 0D C C7 46 FE C7 46 F E E8 AE FC FA FC-0B D C0 C9 C3 8B 46 F8 FF 5E FA FE 8B 46 FE C9 C3 C C7 46 FE C7-46 F E E8 80 FC FA FC 0B D C0 C9 C3 8B 46 F8 FF 5E FA FE 8B-46 FE C9 C3 C F..V...u.3....F..^..F [email protected]..^..F..F......F...F.A....F..V...u.3...F..^..F..F... Dari hasil dumping memori dgn Debug, memori ditampilkan dalam format 128 byte. Dapat dilihat bahwa pada alamat 0000 isi datanya 0E, dan pada alamat 0001 isi datanya E8, dan pada alamat 0002 isi datanya DC, dst.

29

30 Segmentasi Mikroprosesor harus dapat mengakses semua cell memori dari alamat terendah sampai alamat tertinggi. Alamat tersebut akan disimpan didalam register alamat. Secara fisik, up8088 memiliki 20 buah jalur alamat (A0 A19) untuk menyediakan informasi alamat selebar 20 bit dimana informasi alamat tersebut dapat berharga H s.d FFFFF H. Ke- 20 bit tersebut digunakan untuk mengakses memori dgn kapasitas 2 20 = cell. Namun masalah timbul pada lebar register alamat. µp 8088 memiliki register alamat dengan lebar hanya 16 bit dari 20 yang dibutuhkan untuk mengakses semua memori. Ini berarti jika suatu register alamat menyimpan alamat memori, dia hanya dapat digunakan 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), dan Satu register akan menyimpan alamat offset (menentukan byte yang mana di dalam segment tersebut yg akan diakses). Contoh: 4 bit 4 bit 4 bit 4 bit 4 bit Segment address DS = 0 F 8 C Offset address BX = Physical Address DS+BX 0 F 8 C 5 Segment F000 FFFFF FA Offset FFFF FFFFE 3B Offset FFFE FFFFD 43 Offset FFFD 64 F Offset 0001 F Offset 0000 Segment FFFF 55 Offset FFFF 1FFFE CD Offset FFFE A Offset B Offset Offset FFFF 06 Offset FFFF 0FFFE 7A Offset FFFE Segment Offset

31 00001 DE Offset F Offset 0000 µp8088 menyediakan 4 segment untuk menjalankan suatu program. Segment untuk Program (Code/Instruksi)! CS:IP CS (Code Segment) menyimpan alamat segment (64 Kb of memory) dari program. IP (Instruction Pointer) menyimpan alamat offset dari program yang akan menentukan instruksi mana di dalam 64 Kb tadi yang akan dieksekusi Segment untuk Data! DS:BX DS (Data Segment) menyimpan alamat segment (64 Kb of memory) dari data. BX (Base Register) menyimpan alamat offset dari data yang akan menentukan data mana di dalam 64 Kb tadi yang akan diambil Segment untuk Stack! SS:SP SS (Stack Segment) menyimpan alamat segment (64 Kb of memory) dari stack. SP (Stack Pointer) menyimpan alamat offset dari top of the stack yang akan menentukan tumpukan (stack) mana di dalam 64 Kb tadi yang akan diambil (POP) Extra Segment ES (Extra Segment) menyimpan alamat segment (64 Kb of memory) yg digunakan untuk tambahan 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 -r AX=0000 BX=0000 CX=0AA0 DX=0000 SP=4000 BP=0000 SI=0000 DI=0000 DS=0F8C ES=0F8C SS=1086 CS=0F9C IP=0000 NV UP EI PL NZ NA PO NC Perhatikan bahwa program berekstensi EXE menggunakan 3 segment : 1. segment program ada di segment nomor 0F9C 2. segment stack ada di segment nomor segment data = segment extra = 0F8C C:\WINDOWS\COMMAND>debug -n FORMAT.COM -l " loading file format.com ke memori -r AX=0000 BX=0000 CX=28E7 DX=0000 SP=FFFE BP=0000 SI=0000 DI=0000 DS=0F8C ES=0F8C SS=0F8C CS=0F8C IP=0100 NV UP EI PL NZ NA PO NC Perhatikan bahwa program berekstensi COM hanya menggunakan 1 segment yaitu segment nomor 0F8C

32 Instruksi Mesin µp 8088 Instruksi mesin (machine instruction) adalah instruksi-instruksi yg dapat dikerjakan oleh suatu mikroprosesor. Suatu program bahasa Pascal tidak akan dapat dieksekusi secara langsung oleh mikroprosesor, sehingga agar mikroprosesor dapat mengerti isi program tersebut, terlebih dahulu kita harus meng-compile program tersebut agar menjadi instruksi mesin. Bahasa PASCAL Begin inline($90/ $90/ $90); exit; inline($90/ $90/ $90); end. Hasil Compile 0F9C:0000 9A00009E0F CALL 0F9E:0000 0F9C: PUSH BP 0F9C: E5 MOV BP,SP 0F9C: C0 XOR AX,AX 0F9C:000A 9ACD029E0F CALL 0F9E:02CD 0F9C:000F 90 NOP 0F9C: NOP 0F9C: NOP 0F9C:0012 EB03 JMP F9C: NOP 0F9C: NOP 0F9C: NOP 0F9C:0017 5D POP BP Pada contoh diatas tampak bahwa hasil penterjemahan instruksi PASCAL exit adalah instruksi mesin JMP. Dilihat dari fungsi yg dilakukannya, instruksi mesin di µp 8088 dapat dibedakan menjadi 3, yaitu : Data transfer digunakan untuk (1) memindahkan data dari suatu elemen memory ke elemen memory lainnya atau (2) mengisi register data dengan suatu data. Contoh: MOV, PUSH, POP Aritmetika dan Logika digunakan untuk mengkalkulasi suatu perhitungan aritmetika (contoh: ADD, SUB, MUL, DIV) dan logika (contoh: AND, OR, NOT, XOR, SHL, SHR) Kontrol digunakan untuk memindahkan kontrol instruksi ke suatu lokasi baru (tidak lagi secara sekuensial). Contoh: JMP, JZ, JE

33 Instruksi MOV 1. Register! Data (data yg akan ditulis ke register ditulis langsung di instruksi) 2. Register! Register (data yg akan ditulis ke register berasal dari register lainnya) 3. Register! Memory (data yg akan ditulis ke register berasal dari memory, dan alamat dari data disimpan di register alamat) 4. Memory! Register (data yg akan ditulis ke memory berasal dari register, dan alamat memory yg akan ditulis disimpan di register alamat) Contoh instruksi MOV untuk pengisian langsung (1) dan transfer antar register (2) -a 0F6C:0100 mov bx,abcd 0F6C:0103 mov ah,56 0F6C:0105 mov bl,ah 0F6C:0107 mov ax,bx 0F6C:0109 " mengisi reg. AX dgn data ABCD H " mengisi reg. AH dgn data 56 H " mengcopy isi reg. AH ke reg. BL " mengcopy isi reg. BX ke reg. AX -r AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=0F6C ES=0F6C SS=0F6C CS=0F6C IP=0100 NV UP EI PL NZ NA PO NC 0F6C:0100 BBCDAB MOV BX,ABCD -t AX=0000 BX=ABCD CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=0F6C ES=0F6C SS=0F6C CS=0F6C IP=0103 NV UP EI PL NZ NA PO NC 0F6C:0103 B456 MOV AH,56 -t AX=5600 BX=ABCD CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=0F6C ES=0F6C SS=0F6C CS=0F6C IP=0105 NV UP EI PL NZ NA PO NC 0F6C: E3 MOV BL,AH -t AX=5600 BX=AB56 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=0F6C ES=0F6C SS=0F6C CS=0F6C IP=0107 NV UP EI PL NZ NA PO NC 0F6C: D8 MOV AX,BX -t AX=AB56 BX=AB56 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=0F6C ES=0F6C SS=0F6C CS=0F6C IP=0109 NV UP EI PL NZ NA PO NC catatan: Instruksi berikut akan menimbulkan Error : mov ch,5678 : tidak bisa karena CH = 1 byte dan datanya 2 byte mov dl,ax : tidak bisa karena AX = 2 byte dan DL = 1 byte mov dx,al : tidak bisa karena AL = 1 byte dan DX = 2 byte

34 Contoh instruksi MOV untuk transfer Register! Memory (3) dan transfer Memory! Register (4) -a 0F6C:0100 mov bx,0002 " mengisi reg. BX dgn data 0002 H 0F6C:0103 mov ah,[bx] " membaca memori pada alamat BX sebanyak 1 byte (AH) 0F6C:0105 mov ax,[bx] " membaca memori pada alamat BX sebanyak 2 byte (AX) 0F6C:0107 mov ax,[bx+1] " membaca memori pada alamat BX+1 sbanyak 2 byte (AX) 0F6C:010A mov [bx],ax " menulis isi reg. AX ke memori pada alamat BX 0F6C:010C -d 0F6C: A 0B 0C 0D 0E 0F... 0F6C: A 1B 1C 1D 1E 1F... 0F6C: A 2B 2C 2D 2E 2F! #$%& ()*+,-./ 0F6C: A 3B 3C 3D 3E 3F :;#? 0F6C: A 4B 4C 4D 4E 0F6C: A 5B 5C 5D 5E 5F PQRSTUVWXYZ[\]^_ 0F6C: A 6B 6C 6D 6E 6F `abcdefghijklmno 0F6C: A 7B 7C 7D 7E 7F pqrstuvwxyz{ }~. -r AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=0F6C ES=0F6C SS=0F6C CS=0F6C IP=0100 NV UP EI PL NZ NA PO NC 0F6C:0100 BB0200 MOV BX,0002 -t AX=0000 BX=0002 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=0F6C ES=0F6C SS=0F6C CS=0F6C IP=0103 NV UP EI PL NZ NA PO NC 0F6C:0103 8A27 MOV AH,[BX] DS:0002=02 -t AX=0200 BX=0002 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=0F6C ES=0F6C SS=0F6C CS=0F6C IP=0105 NV UP EI PL NZ NA PO NC 0F6C:0105 8B07 MOV AX,[BX] DS:0002=0302 -t AX=0302 BX=0002 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=0F6C ES=0F6C SS=0F6C CS=0F6C IP=0107 NV UP EI PL NZ NA PO NC 0F6C:0107 8B4701 MOV AX,[BX+01] DS:0003=0403 -t AX=0403 BX=0002 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=0F6C ES=0F6C SS=0F6C CS=0F6C IP=010A NV UP EI PL NZ NA PO NC 0F6C:010A 8907 MOV [BX],AX DS:0002=0302 -t AX=00A0 BX=0002 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=0F6C ES=0F6C SS=0F6C CS=0F6C IP=010C NV UP EI PL NZ NA PO NC 0F6C:010C 90 NOP -d 0F6C: A 0B 0C 0D 0E 0F... 0F6C: A 1B 1C 1D 1E 1F... 0F6C: A 2B 2C 2D 2E 2F! #$%& ()*+,-./ 0F6C: A 3B 3C 3D 3E 3F :;#?

35 0F6C: A 4B 4C 4D 4E 0F6C: A 5B 5C 5D 5E 5F PQRSTUVWXYZ[\]^_ 0F6C: A 6B 6C 6D 6E 6F `abcdefghijklmno 0F6C: A 7B 7C 7D 7E 7F pqrstuvwxyz{ }~. Catatan: Instruksi berikut akan menimbulkan Error : mov [bx],[bx+1] : transfer data dari memori ke memori secara langsung mov [bx],12 : transfer data langsung ke memori kesimpulan : semua transfer yg melibatkan memori harus via register mov ah,[bl] : register alamat harus digunakan dalam format 2 byte mov [ax],bx : reg. AX bukan register alamat mov [cx],bx : reg. CX bukan register alamat mov [dx],bx : reg. DX bukan register alamat Instruksi PUSH & POP Instruksi PUSH dan POP akan dipelajari lebih lanjut di bagian mengenai STACK (halaman berikutnya). Instruksi ADD dan SUB Contoh Penggunaan Instruksi Aritmatika (ADD dan SUB) -a 0DA0:0100 mov ax,1234 0DA0:0103 mov bx,5678 0DA0:0106 add ax,bx 0DA0:0108 sub ax,bx 0DA0:010A -t " trace MOV AX,1234 AX=1234 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=0DA0 ES=0DA0 SS=0DA0 CS=0DA0 IP=0103 NV UP EI PL NZ NA PO NC 0DA0:0103 BB7856 MOV BX,5678 -t " trace MOV BX,5678 AX=1234 BX=5678 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=0DA0 ES=0DA0 SS=0DA0 CS=0DA0 IP=0106 NV UP EI PL NZ NA PO NC 0DA0: D8 ADD AX,BX -t " trace ADD AX,BX AX=68AC BX=5678 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=0DA0 ES=0DA0 SS=0DA0 CS=0DA0 IP=0108 NV UP EI PL NZ NA PE NC 0DA0: D8 SUB AX,BX -t " trace SUB AX,BX AX=1234 BX=5678 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=0DA0 ES=0DA0 SS=0DA0 CS=0DA0 IP=010A NV UP EI PL NZ NA PO NC

36 Instruksi JMP dan JZ Contoh Penggunaan Instruksi Control (JMP dan JZ) -a 0F6C:0100 MOV 0F6C:0103 MOV 0F6C:0106 XOR 0F6C:0108 JMP 0F6C:010A MOV 0F6C:010C JZ 0F6C:010E AX,ABCD BX,DCBA AL,AL 010C AL,BH 010E -t " trace MOV AX,ABCD AX=ABCD BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=0F6C ES=0F6C SS=0F6C CS=0F6C IP=0103 NV UP EI PL NZ NA PO NC -t " trace MOV BX,DCBA AX=ABCD BX=DCBA CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=0F6C ES=0F6C SS=0F6C CS=0F6C IP=0106 NV UP EI PL NZ NA PO NC -t " trace XOR AL,AL AX=AB00 BX=DCBA CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=0F6C ES=0F6C SS=0F6C CS=0F6C IP=0108 NV UP EI PL ZR NA PE NC -t " trace JMP 010C AX=AB00 BX=DCBA CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=0F6C ES=0F6C SS=0F6C CS=0F6C IP=010C NV UP EI PL ZR NA PE NC -t " trace JZ 010E AX=AB00 BX=DCBA CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=0F6C ES=0F6C SS=0F6C CS=0F6C IP=010E NV UP EI PL ZR NA PE NC

37

38 Stack Karena jumlah register data terbatas (hanya 4 buah : AX, BX, CX, DX), maka diperlukan suatu lokasi penyimpanan data untuk sementara yang disebut stack. Kelebihan stack adalah dari kesederhanaannya didalam menyimpan dan mengembalikan kembali data yg telah tersimpan dibandingkan dengan penyimpanan ke memori. Dari arti katanya stack adalah tumpukan. Ini berarti jika kita akan menyimpan data di stack, data tersebut akan ditumpuk berdasarkan urutan siapa yang terakhir datang. Oleh karenanya, sistem akses data di stack disebut LIFO (Last In First Out) dimana data yang akan diambil adalah data yang ditumpuk terakhir. Penumpukan data di stack dilakukan dari bawah. FFFF 5E FFFE CD! tumpukan terakhir tumpukan baru Untuk mengidentifikasi tumpukan data terakhir (paling bawah), digunakan register SP (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. PUSH akan mendorong data ke stack dan POP akan mengeluarkan data dari stack. -a 0EA0:0100 mov ax,1234 0EA0:0103 mov bx,5678 0EA0:0106 push ax 0EA0:0107 push bx 0EA0:0108 pop ax 0EA0:0109 pop bx SP=FFEE -d ffe0 0EA0:FFE ! isi stack -t AX=1234 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=0EA0 ES=0EA0 SS=0EA0 CS=0EA0 IP=0103 NV UP EI PL NZ NA PO NC 0EA0:0103 BB7856 MOV BX,5678 -t AX=1234 BX=5678 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=0EA0 ES=0EA0 SS=0EA0 CS=0EA0 IP=0106 NV UP EI PL NZ NA PO NC 0EA0: PUSH AX -t AX=1234 BX=5678 CX=0000 DX=0000 SP=FFEC BP=0000 SI=0000 DI=0000 DS=0EA0 ES=0EA0 SS=0EA0 CS=0EA0 IP=0107 NV UP EI PL NZ NA PO NC 0EA0: PUSH BX -d ffe0

39 0EA0:FFE ! AX ada di stack -t AX=1234 BX=5678 CX=0000 DX=0000 SP=FFEA BP=0000 SI=0000 DI=0000 DS=0EA0 ES=0EA0 SS=0EA0 CS=0EA0 IP=0108 NV UP EI PL NZ NA PO NC 0EA0: POP AX -d ffe0 0EA0:FFE ! BX ada di stack -t AX=5678 BX=5678 CX=0000 DX=0000 SP=FFEC BP=0000 SI=0000 DI=0000 DS=0EA0 ES=0EA0 SS=0EA0 CS=0EA0 IP=0109 NV UP EI PL NZ NA PO NC 0EA0:0109 5B POP BX -t AX=5678 BX=1234 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=0EA0 ES=0EA0 SS=0EA0 CS=0EA0 IP=010A NV UP EI PL NZ NA PO NC

40 Bagan dasar µp Intel bit Data Bus Internal Accumulator Flag ALU Instruction reg Instruction Decoder AH AL BH BL CH CL DH DL Stack Segment Stack Pointer Code Segment Instruction Pointer Data bus buffer Control Unit Address buffer Mem Read Mem Write A0 A2 A4 A6 A8 A12 A16 A10 A14 A18 D6 D4 D2 D Memory Controller 8-bit Memory (max of 1 Mb) byte cell Elemen didalam mikroprosesor adalah : CU (Control Unit) adalah manajer dari semua unit. CU mengatur keselarasan kerja setiap unit. Apa yang harus dilakukan oleh suatu unit, semuanya diketahui oleh CU dengan bantuan microprogram yang ditanamkan padanya. Pengontrolan oleh CU dilakukan melalui Bus Kontrol (panah dari/ke Control Unit). Instruction Decoder bertugas untuk menerjemahkan suatu instruksi dengan cara membandingkannya dengan tabel instruksi yang dimilikinya. Hasil dekoding diberikan ke CU, dan CU akan membangkitkan sinyal-sinyal kontrol yang diperlukan untuk melaksanakan instruksi tersebut.

41 Register adalah memori khusus di dalam up. Untuk mengidentifikasikannya, register memiliki nama khusus yang juga sekaligus mencerminkan fungsi register tersebut. Berdasarkan isinya, register dapat dibedakan menjadi : Register Data memiliki lebar 16 bit namun dapat diakses dalam format 2x8 bit: Accumulator : AX = AH+AL Base Register : BX = BH+BL Counter Register : CX = CH+CL Data Register : DX = DH+DL Register Alamat memiliki lebar 16 bit : Code Segment : CS, menyimpan alamat segment dari program Instruction Pointer : IP, menyimpan alamat offset dari program Data Segment : DS, menyimpan alamat segment dari data Index Register : BI (Base Index), SI (Source Index), DI (Destination Index), Pointer Register : BP (Base pointer), Stack Segment : SS, menyimpan alamat segment dari stack Stack Pointer : SP, menyimpan alamat offset dari stack Base 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 membutuhkan perhitungan aritmetika (contoh: ADD, SUB) atau logika (contoh: AND, OR, XOR). Jika suatu instruksi aritmetika dan logika dieksekusi, maka hasil operasinya dapat mengubah salah satu bit di register status.

42 Proses Kerja (Bagaimana µp8088 mengerjakan instruksi) Didalam menjalankan suatu instruksi, up 8088 melakukan 3 tahap pengerjaan sbb : 1. Penjemputan Instruksi (IF = Instruction Fetch) IR! [CS+IP] Proses kerja dimulai dengan penjemputan instruksi baru dari memori ke IR. CU menerjemahkan isi register CS dan IP untuk menentukan letak dari instruksi baru tersebut di memori. Hasil terjemahan isi CS dan IP ini dikirim CU ke memori melalui bus alamat CU mengirim sinyal MemREAD untuk memberitahukan memori bahwa CU ingin membaca data Memori, setelah mendapat sinyal MemREAD, akan melihat isi dari bus alamat. Kemudian isi dari cell memori yang sesuai dengan alamat tersebut diletakkan di bus data (selebar 1 byte) Beberapa saat setelah mengirim sinyal MemREAD, CU membaca isi dari bus data dan meletakkannya di IR. 2. Dekoding Instruksi (ID = Instruction Decode) Isi baru dari IR tersebut kemudian diterjemahkan oleh CU untuk mengetahui apa saja yang diinginkan oleh instruksi baru tersebut. Untuk tugas penterjemahan ini, CU menggunakan bantuan tabel instruksi yang ada di Instruction Decoder untuk dapat memahami maksud dari instruksi tersebut. 3. Eksekusi Instruksi (EX = Execution) Tergantung dari hasil penterjemahan instruksi diatas, CU akan melaksanakan satu dari tiga fungsi, yaitu : Operasi Aritmetika atau Logika Data transfer Control Arsitektur x86 (contoh: µp8088) menggunakan Variable Length Instruction (VLI) dimana instruksi yang berbeda memiliki panjang instruksi yang berbeda pula (bervariasi dari 1 byte sampai 4 byte). Karena pada saat IF yg dijemput hanya 1 byte, maka kemungkinan besar setelah proses ID, CU harus menjemput beberapa byte lagi dari memori agar instruksinya menjadi lengkap. Byte pertama dari instruksi yg dijemput disebut dgn op-code (operation code) karena dari penterjemahan op-code tersebut, didapatkan panjang isntruksi sebenarnya.

43 Contoh : untuk instruksi B (MOV AX,1234) CU pertama akan mengambil byte B8 untuk mengetahui bahwa instruksi tsb adalah MOV AX,xx yy sehingga CU harus mengambil 2 byte setelahnya untuk dapat mengeksekusi instruksi tsb. VLI (Variable Length Instruction) Kelebihan : Hemat space, dimana jumlah byte yang dibutuhkan untuk merepresentasikan suatu instruksi merupakan jumlah byte minimumnya. Kekurangan : Lebih lambat, karena ada suatu tenggang waktu tertentu dimana up harus menjemput instruksi selengkapnya dari memori setelah dekoding (kekurangan ini diperbaiki melalui Prefetching) Instruksi 1 byte (contoh: PUSH & POP) DE IF EX proses: IF DE EX Instruksi >1 byte (contoh: MOV, ADD, JMP) DE IF EX proses: IF DE IF DE EX

44

45 Encoding Instruksi Mesin Di dalam CPU (tepatnya pada blok Instruction Decoder), terdapat tabel instruksi yang memuat daftar semua instruksi yang dapat dimengerti oleh CPU tersebut. Daftar ini disebut sebagai microcode dan setiap kali CPU menerima sebuah instruksi, CPU akan memecah kode instruksi tersebut (tahap decoding) dan kemudian melihat arti dari masing-masing pecahan tersebut di microcode. Ini menunjukkan bahwa tidak semua CPU memiliki microcode yang sama. Beda arsitektur berarti berbeda juga microcode-nya. Sebagai contoh, program yang dapat dijalankan di IBM PC tidak akan jalan di Apple Macintosh, begitu pula sebaliknya. Hampir semua instruksi memerlukan data untuk dioperasikan. Berdasarkan Addressing Mode-nya (bagaimana up mendapatkan data yg dibutuhkan oleh suatu instruksi), instruksi-instruksi up 8088 dapat dibedakan menjadi : Addressing Mode Contoh instruksi Arti Immediate Add AX, 3F 5B AX! AX + 3F 5B Register Direct Add AX, BX AX! AX + BX Register Indirect Add AX, [BX] AX! Mem[BX] Displacement Add AX, [BX+128] AX! Mem[BX+128] Direct atau Absolute Add AX, [1001] AX! Mem[1001] -a 0EA0:0100 mov bx,000f! Immediate 0EA0:0103 mov ax,bx! Register Direct 0EA0:0105 mov ax,[bx]! Register Indirect 0EA0:0107 mov ax,[bx-1]! Displacement 0EA0:010A mov ax,[000d]! Direct/Absolute [0000] [000D] [000F] -d EA0:0000 CD A0 00 9A EE FE - 1D F0 4F A 03 0EA0: A FF FF FF [0010] -t AX=0000 BX=000F CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=0EA0 ES=0EA0 SS=0EA0 CS=0EA0 IP=0103 NV UP EI PL NZ NA PO NC 0EA0: D8 MOV AX,BX -t AX=000F BX=000F CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=0EA0 ES=0EA0 SS=0EA0 CS=0EA0 IP=0105 NV UP EI PL NZ NA PO NC 0EA0:0105 8B07 MOV AX,[BX] DS:000F=2503 -t AX=2503 BX=000F CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=0EA0 ES=0EA0 SS=0EA0 CS=0EA0 IP=0107 NV UP EI PL NZ NA PO NC 0EA0:0107 8B47FF MOV AX,[BX-01] DS:000E=038A

46

47 -t AX=038A BX=000F CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=0EA0 ES=0EA0 SS=0EA0 CS=0EA0 IP=010A NV UP EI PL NZ NA PO NC 0EA0:010A A10D00 MOV AX,[000D] DS:000D=8A08 -t AX=8A08 BX=000F CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=0EA0 ES=0EA0 SS=0EA0 CS=0EA0 IP=010D NV UP EI PL NZ NA PO NC

48 Klasifikasi Memory ROM (Read Only Memory) merupakan media penyimpan data non-volatile (volatile = menguap) yang berarti datanya tidak akan hilang meskipun power supplynya diputuskan. Contoh: ROM BIOS (ROM Basic Input Output System) pada motherboard yang bertugas untuk memeriksa keberadaan dan kondisi semua peripheral yang terpasang, menghitung dan mengecek 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 power supplynya diputuskan Contoh: 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 kapasitor SRAM : Price = Rp u/ Capacity 0,5 Mb, Size 50 mikron per cell, Speed 2 ns DRAM : Price = Rp u/ Capacity 64 Mb, Size 20 mikron per cell, Speed 10 ns Hirarki Memory Seorang pengguna komputer akan membutuhkan memori yang cepat dalam jumlah yang tidak terbatas. Namun hal ini akan memakan biaya yang sangat mahal. Solusi ekonomis untuk keinginan tersebut adalah dengan menggunakan hirarki 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

49 Pengalamatan Memori Metode pengalamatan memori untuk tiap-tiap desain up amat berbeda. Disini kita akan mempelajari metode pengalamatan yang dipakai oleh up Logical Memory Memori logika adalah system memori yang dilihat dari sudut programmer. Memori logika biasanya diberikan nomor dalam format Hexadecimal. FFFFFF 1 MByte MByte , SX 4 GByte DX FFFF FFFF 000 Karena semua cell memori pada sistem up 8088 memiliki lebar 8-bit (1 byte), maka jika up hendak mengakses 16-bit (2 byte) data dari memori, 2 byte berturutan akan diambil. Peletakan data di memori diurutkan dari LSB (least significant byte) dengan alamat memori terendah sampai MSB (most significant byte) dengan alamat memori tertinggi. Sistem ini disebut Little Endian dan berlaku untuk semua keluarga up x86 yang berarti alamat memori dari suatu data akan menunjuk ke LSB dari data. -a 11A8:0100 mov ax,[0005] [0000] [0005] [0006] -d A8:0000 CD A0 00 9A EE FE - 1D F0 4F 03 2D 0B 8A 03 [0005] = 9A (LSB! AL) [0006] = EE (MSB! AH) -t AX=EE9A BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=11A8 ES=11A8 SS=11A8 CS=11A8 IP=0103 NV UP EI PL NZ NA PO NC Physical Memory Pada keluarga microprocessor Intel, perbedaan memori secara hardwarenya terletak pada lebarnya dimana 8088 : 8-bit, SX : 16-bit, dan 80386DX : 32-bit. Meskipun terdapat perbedaan lebar data pada tiap desain microprocessor di atas, seorang

50 programmer tetap mengaksesnya seakan-akan mereka adalah 8-bit. Perbedaan lebar data tersebut hanya menjadi masalah bagi hardware desainer.

51 Peta memori Peta memori adalah suatu peta yang menggambarkan lokasi dari data di memori. Peta memori digambarkan sebagai blok yang memiliki alamat dan 8-bit data. Cell memori dengan alamat terendah digambarkan paling bawah FFFF 8A 7777 E FE Untuk µp x86, sistem operasi MSDOS (Real Mode) membagi seluruh area memori menjadi 3 : unlimited depend on the up FFFFF A0000 9FFFF XMS (extended Memory System) EMS (Expanded Memory System) TPA (Transient and Program Area) 15 Mb for SX 4 Gb for 80386DX and up 384 Kb System Area 640 Kb Conventional Memory Microprocessor x86 dan sistem operasi produk Microsoft selalu mempertahankan kompatibilitasnya terhadap microprocessor dan sistem operasi pendahulunya. Oleh karenanya Intel Pentium pun tetap mengacu pada peta memori up i8088 dengan memori 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 conventional memory. Disini terdapat OS (Operating System), dan program aplikasi yg dijalankan (alamat fisik FFFF) 2. Diatas TPA terdapat EMS (Expanded Memory System) yang pada dasarnya merupakan BIOS (Basic I/O System) system area untuk pengontrolan I/O (alamat fisik A0000 FFFFF) Untuk microprocessor diatas i8088, penggunaan memori diatas 1 Mb dimungkinkan dan daerah ini disebut dengan XMS (Extended Memory System).

52

53 PC-XT Personal Computer extended Technology 8-bit ISA bus Dip Switch 8259 ON 8088 Keyboard Crystal Power Supply = Programmable Interrupt Controller 8088 = Microprocessor 8087 = Floating Point Numeric Processor 8288 = Bus Controller 8284 = Clock Generator Crystal = MHz ROM ROM ROM Main Memory = (256Kbyte x 2) + (64Kbyte x 2) = 640 Kbyte 8253 = Programmable Interval Timer 8237 = DMA Controller 8255 = Programmable Peripheral Interface

54 PC-XT adalah komputer komersial pertama yang dikeluarkan IBM. Dengan prosesor Intel 8088 dan DRAM 640KB, komputer ini dipasarkan sekitar tahun 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 8088 dalam menangani kalkulasi atau perhitungan aritmetik yang 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 memori bukan 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 (Bus Controller) adalah prosesor khusus untuk mengontrol penggunaan bus data dan bus alamat 4164 (Dynamic RAM) adalah memori DRAM dengan kapasitas x 1 bit (64 Kbit). Oleh karena DRAM ini hanya dapat menyimpan 1 bit, maka untuk dapat menyimpan 8 bit, digunakan 8 x Ditambah 1 x 4164 untuk menyimpan Parity Bit (Dynamic RAM) adalah memori DRAM dengan kapasitas x 1 bit (256 Kbit). Oleh karena DRAM ini hanya dapat menyimpan 1 bit, maka untuk dapat menyimpan 8 bit, digunakan 8 x Ditambah 1 x untuk menyimpan Parity Bit.

55 Interfacing µp Intel 8088 dengan I/O Setiap perangkat Input maupun Output akan memiliki nomor tersendiri (unik) untuk menandakan perangkat mana yang akan diakses oleh µp Nomor ini disebut nomor port. Jika kita menggunakan instruksi MOV, PUSH, dan POP untuk mengakses memori, maka instruksi untuk mengakses I/O sedikit berbeda : Berdasarkan Addressing 1. menggunakan fixed addressing : IN AL,00! mengambil data dari perangkat input yang memiliki nomor port 00H dan dimasukkan ke register AL (8 bit) IN AX,FF! mengambil data dari perangkat input yang memiliki nomor port FFH dan dimasukkan ke register AX (16 bit) OUT 00,AL! mengirimkan data dari register AL (8 bit) ke perangkat output yang memiliki nomor port 00H OUT FF,AX! mengirimkan data dari register AX (16 bit) ke perangkat output yang memiliki nomor port FFH Keterangan : Disini nomor port yg akan diakses ditulis langsung pada instruksinya. Maksimum jumlah port yang bisa diakses adalah 256 (IN AL,00H sampai IN AL,FFH). Untuk pengaksesannya digunakan Address Bus A 0 A 7 (Address Line A 0 A 7 menyimpan nomor port) Tergantung dari kemampuan I/O yg diakses, data yg ditransfer bisa 8 bit (menggunakan register AL) atau 16 bit (menggunakan register AX) 2. menggunakan variable addressing : IN AL,DX! mengambil data dari perangkat input dan dimasukkan ke register AL (nomor port dari perangkat tersebut ada di register DX) IN AX,DX! mengambil data dari perangkat input dan dimasukkan ke register AX (nomor port dari perangkat tersebut ada di register DX) OUT AL,DX! mengirimkan data dari register AL (8 bit) ke perangkat output yang nomor portnya ada di register DX OUT AX,DX! mengirimkan data dari register AX (16 bit) ke perangkat output yang nomor portnya ada di register DX Keterangan : Disini nomor port yg akan diakses terlebih dahulu ditulis ke register DX Maksimum jumlah port yang bisa diakses adalah (register DX bisa berharga 0000 sampai FFFF). Untuk pengaksesannya digunakan Address Bus A 0 A 15 (Address Line A 0 A 15 menyimpan nomor port)

56 Tergantung dari kemampuan I/O yg diakses, data yg ditransfer bisa 8 bit (menggunakan register AL) atau 16 bit (menggunakan register AX) Berdasarkan Peta Memori 1. Isolated I/O : dimana peta alamat I/O berbeda dengan peta alamat untuk memori FFFFF FFC00 A07FF A FFF Peta memori : 1 Kbyte dari 4016 A 2 Kbyte dari 4016 B 4 Kbyte dari 4016 C Peta I/O 01FFF F7 LED (Output) 8 Kbyte dari 4016 D bit Dip Switch (Input) 2. Memory-mapped I/O : dimana peta alamat I/O dimasukkan ke dalam peta alamat untuk memori Peta memori + Peta IO FFFFF 1 Kbyte dari 4016 A FFC00 30FFF FF Kbyte dari 4016 C I/O [00000] = Dip Switch [000FF] = LED Pada Isolated I/O, instruksi untuk mengakses I/O dibedakan dengan instruksi untuk mengakses memori. Instruksi IN dan OUT untuk akses I/O, dan MOV untuk akses memori. Sedangkan pada Memory-mapped I/O, instruksi untuk mengakses I/O sama dengan instruksi untuk mengakses memori yaitu MOV (instruksi IN dan OUT tidak ada lagi).

57 Untuk dapat mengambil data dari suatu I/O diperlukan suatu interface khusus untuk menjembatani data yg disimpan oleh I/O tersebut dengan data bus. Untuk keperluan ini dapat digunakan 3-state buffer untuk perangkat input dan latch atau flip-flop untuk perangkat output. Contoh perangkat Input dengan menggunakan Dip Switch : +5 V ON 5 KOhm x 8 D0 D1 D2 D3 D4 D5 D6 D RD IO /M Address Decoder Dip switch seperti halnya switch biasa akan memutuskan atau menyambungkan suatu titik dengan salah satu titik lainnya (SPDT = Single Pole Double Terminal). Jika posisi suatu switch ada dalam posisi ON (di kanan) maka line Data tersebut akan tersambung langsung dengan Ground (0 volt) sebaliknya jika dalam posisi OFF (kiri) maka line Data tersebut akan tersambung dengan VCC (5 volt). Posisi Dip switch di atas akan menghasilkan D0 = D1 = D2 = D4 = D7 = ground dan D3 = D5 = D6 = VCC. Sehingga data bus dari dip switch berisi (D7) (D0). Agar i8088 dapat mengambil data tersebut, i8088 harus mengaktifkan kedelapan 3-state buffer diatas dengan menggunakan decoder. Setelah semua 3-state buffer diaktifkan, maka data bus i8088 akan tersambung dengan dengan data bus dip switch dan data dati dip switch dapat dibaca (RD) oleh i8088. Desain decoder dan jumlah address line yg digunakan tergantung dari desain kita. Ada 4 desain yg berbeda : 1. fixed addressing + isolated IO 2. fixed addressing + memory mapped IO 3. variable addressing + isolated IO Address } Bus

58 4. variable addressing + memory mapped IO Salah satu dari keempat desain tersebut akan menentukan : Apakah kita menggunakan sinyal IO/M? jika ya berarti : isolated IO jika tidak berarti : memory mapped IO Jumlah address line yg dibutuhkan? fixed addressing! A0 A7 variable addressing! A0 A15 Misal Dip Switch tersebut akan diakses pada : alamat 04H = (A7) (A0)! instruksi : IN AL,04 Contoh untuk desain decoder nomor 1 (fixed addressing + isolated IO) : A2 IO/M A0 A1 A3 A4 A5 A6 A7 RD Address Decoder to 3-state buffer Pada gerbang OR diatas, instruksi IN AL,04 akan mengaktifkan outputnya, karena : instruksi IN akan mengaktifkan sinyal RD (0 volt) dan juga sinyal IO (IO/M = 5 volt) nomor port 04 akan memberikan nilai yg sesuai pada address line A0 sampai dengan A7 Contoh untuk desain decoder nomor 2 (fixed addressing + memory mapped IO) A2 A0 A1 A3 A4 A5 A6 A7 RD Address Decoder to 3-state buffer sinyal IO/M tidak perlu di-decode-kan dan instruksinya menjadi MOV AL,[04]! addressing mode : absolute. Tanpa adanya dekoding sinyal IO/M, maka tidak akan ada lagi yg membedakan antara akses ke IO dgn akses ke memori. Dalam hal ini semua akses ke IO dianggap sama dgn akses ke memori. Oleh karenanya tidak ada lagi instruksi IN dan OUT yg menyebabkan sinyal IO/M berharga 5V dan akan digantikan dgn instruksi MOV yg menyebabkan sinyal IO/M berharga 0V

59

60 Contoh untuk desain decoder nomor 3 (variable addressing + isolated IO) A2 IO/M A0 A1 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12 A13 A14 A15 RD Address Decoder to 3-state buffer address line yg masuk ke Address Decoder (gerbang OR diatas) adalah A 0 A 15 tidak hanya sampai A 7 saja. instruksi untuk mengaktifkannya menjadi: MOV DX,0004 IN AL,DX Contoh untuk desain decoder nomor 4 (variable addressing + memory mapped IO) A2 A0 A1 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12 A13 A14 A15 RD Address Decoder to 3-state buffer address line yg masuk ke Address Decoder (gerbang OR diatas) adalah A 0 A 15 tidak hanya sampai A 7 saja. Dan sinyal IO/M tidak perlu di-decode-kan dan instruksinya menjadi MOV AL,[DX] (setelah terlebih dahulu mengisi DX dengan 0004)! addressing mode : register indirect

61 Contoh perangkat Output dengan menggunakan LED (Light Emitting Diode) Q D Q D Q D Q D Q D Q D Q D Q D D0 D1 D2 D3 D4 D5 D6 D WR IO / M Address Decoder Address } Bus Disini akan digunakan D-FF (Data Flip-Flop) untuk menyimpan data keluaran dari i8088 agar datanya dapat dilihat terus sampai kemudian diubah dgn data lainnya. Untuk mengaktifkan Flip-Flop kita tinggal mengaktifkan sinyal CLOCK-nya agar D-FF membaca masukan data dan mengubah outputnya sesuai dgn data yg diberikan. Kemudian sesuai dengan data yg tersimpan pada D-FF, lampu LED akan dinyalakan sehingga kita dapat melihat (visualisasi) data yg dikeluarkan oleh i8088. Misalnya data yg dikeluarkan adalah FF, maka semua LED akan menyala begitu kesemua D-FF diaktifkan clock-nya. Sama seperti pada dip switch, ada 4 desain yg berbeda : 1. fixed addressing + isolated IO 2. fixed addressing + memory mapped IO 3. variable addressing + isolated IO 4. variable addressing + memory mapped IO Misal LED tersebut akan diakses pada : alamat F7H = (A7) (A0)! instruksi : OUT AL,F7 Contoh untuk desain decoder nomor 1 (fixed addressing + isolated IO) A3 WR A0 A1 A2 A4 A5 A6 A7 IO/M Address Decoder to D-FF

62 Pada gerbang AND diatas, instruksi OUT AL,F7 akan mengaktifkan outputnya, karena instruksi OUT akan mengaktifkan sinyal WR (0 volt) dan juga sinyal IO (IO/M = 5 volt). Sedangkan nomor port F7 akan memberikan nilai yg sesuai pada A0 A7 Contoh untuk desain decoder nomor 2 (fixed addressing + memory mapped IO) A3 WR A0 A1 A2 A4 A5 A6 A7 Address Decoder to D-FF sinyal IO/M tidak perlu di-decode-kan dan instruksinya menjadi MOV [F7], AL! addressing mode : absolute Contoh untuk desain decoder nomor 3 (variable addressing + isolated IO) A3 WR A0 A1 A2 A4 A5 A6 A7 A8 A9 A10 A11 A12 A13 A14 A15 IO/M Address Decoder to D-FF address line yg masuk ke IO decoder (gerbang AND diatas) adalah A 0 A 15 tidak hanya sampai A 7 saja. Contoh untuk desain decoder nomor 4 (variable addressing + memory mapped IO) A3 WR A0 A1 A2 A4 A5 A6 A7 A8 A9 A10 A11 A12 A13 A14 A15 Address Decoder to D-FF

63 address line yg masuk ke IO decoder (gerbang NAND diatas) adalah A 0 A 15 tidak hanya sampai A 7 saja. Dan sinyal IO/M tidak perlu di-decode-kan namun instruksinya menjadi MOV [DX],AL (setelah terlebih dahulu mengisi DX dengan 00F7)! addressing mode : register indirect

64 Mikroprosesor i8088 Mikroprosesor yg akan digunakan disini adalah µp Intel 8088 yang memiliki karakteristik sebagai berikut (diambil dari spesifikasi teknis i8088 dari Intel ): 8-Bit Data Bus Interface (D 0 D 7 )! Eksternal Data Bus = 8 jalur 16-Bit Internal Architecture! Internal Data Bus = 16 jalur Direct Addressing memori sampai 1 Mbyte! Address Bus = A 0 A 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 MHz untuk type 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). GND A14 A13 A12 A11 A10 A9 A8 D7 / A7 D6 / A6 D5 / A5 D4 / A4 D3 / A3 D2 / A2 D1 / A1 D0 / A0 NMI interrupt clock GND Vcc A15 A16/S3 A17/S4 A18/S5 A19/S6 SS0 min/max read hold hold ack write IO/mem DT/R DEN ALE interrupt ack test ready reset

65 Pada i8088 ada beberapa pin yg harus diperhatikan (mode Minimum) : Pin Nama Fungsi Tipe 1,20 GND disambungkan dengan Ground (0 Volt) Pow 40 VCC disambungkan dengan power +5 V DC Pow 9-16 AD 7 AD 0 Address line (A 0 A 7 ) + Data line (D 0 D 7 ) (termultipleks dalam time / TDMA) I/O 2-8 A 8 A 14 Address line (A 8 A 14 ) Out A 15 A 19 Address line (A 15 A 19 ) Out 25 ALE Address Latch Enable (Active High) jika 1 berarti pin 9 16 (AD 0 AD 7 ) = Address Bus (A 0 A 7 ) Out jika 0 berarti pin 9 16 (AD 0 AD 7 ) = Data Bus (D 0 D 7 ) 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) In 21 RESET Menginisialisasi semua register (Active High) In 28 IO / M Memori (Low) ataukah I/O (High) yg diakses oleh i8088? jika 1 (High Voltage) berarti yg diakses adalah I/O jika 0 (Low Voltage) berarti yg diakses adalah memori Out Sinyal Write (Active Low) berarti i8088 akan menulis data 29 WR Address bus telah berisi alamat valid dari sel yg akan ditulis Out Data bus telah berisi data valid dari data yg akan ditulis 30 HLDA Hold Acknowledge (Active High) yg menandakan bahwa i8088 telah memutuskan dirinya dari bus Out 31 HOLD Sinyal Hold (Active High) meminta i8088 memutuskan hubungan 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 Menset i8088 untuk bekerja pada salah satu mode 33 MN / MX jika 1 (High Voltage) berarti bekerja dalam mode Minimum In jika 0 (Low Voltage) berarti bekerja dalam mode Maximum Active High Active Low In Out Pow : pin tersebut dianggap aktif jika dalam kondisi High Voltage (VCC) : pin tersebut dianggap aktif jika dalam kondisi Low Voltage (Ground) : arah sinyal masuk ke dalam i8088 : arah sinyal keluar dari i8088 : Power Line (catu daya) Inisialisasi register saat Reset diaktifkan: semua register akan berisi data 0000 kecuali CS=FFFF.

66 Sistem Penunjang i V 1 GND Vcc 40 A A15 A A16 A A17 A A18 A10 A A19 +5 V A min/max A7 QD D7 / A read A6 A5 A4 A3 A2 A1 A0 74 LS 373 QD D6 / A6 D5 / A5 D4 / A4 D3 / A3 D2 / A2 D1 / A1 D0 / A write IO/mem ALE CSync ready Vcc X1 X2 +5 V 15 MHz +5 V 13 F/C ALE D0 D7 clock GND 21 ready reset clock 8 11 GND 9 10 res reset Untuk dapat bekerja, i8088 membutuhkan minimal 2 IC tambahan. IC 74LS373 adalah 8 latch (Flip-Flop) yg digunakan untuk memisahkan (demultipleksing) pin 9 16 menjadi 2 buah informasi yaitu Address dan Data. Sinyal ALE (Address Latch Enable) digunakan untuk memisahkan kedua informasi tersebut, dimana jika ALE = High maka pin 9 16 membawa informasi Address, sedangkan jika ALE = Low maka pin 9 16 membawa informasi Data. IC 8284 digunakan untuk menghasilkan sinyal CLOCK (maksimum 5 MHz), RESET, dan READY.

67 Memori pada sistem µp 8088 Peta Memori Peta memori digunakan untuk menggambarkan lokasi semua data yang ada di memori, dimulai dari data pada alamat terendah (00000 H pada i8088) sampai alamat tertinggi (FFFFF H pada i8088). A B C D D0 D Q D Q D Q D Q D1 D Q D Q D Q D Q D Q D Q D Q D Q D Q D Q D Q D Q D Q D Q D Q D Q D Q D Q D Q D Q D Q D Q D Q D Q D2 D3 D4 D5 D6 D0 - D7 A0 - A1 Read Only Memory 4 byte CS D7 D Q D Q D Q D Q CS Struktur Memori CS A1 A0 Set Flip-Flop yang Disambungkan dgn Data Bus (D0 D7) A B C D A0 A1

68 1 X X tidak ada karena output semua gerbang OR = 1 Dengan memberikan suatu harga tertentu pada Address Bus (A0 A1) maka salah satu set Flip-Flop akan diaktifkan dan datanya dapat diambil melalui Data Bus (D0 D7) dgn catatan input CS harus diaktifkan. Memori diatas memiliki kapasitas 4 x 8 bit atau 4 byte. Kapasitas suatu memori = 2 n x d bit dimana n = jumlah address bus yang masuk kedalam IC memori d = jumlah data bus yang ada pada IC memori tersebut Klasifikasi Memori Dilihat dari sistem aksesnya, memori dibedakan menjadi 2: ROM (Read Only Memory), adalah media penyimpanan yang bersifat BACA SAJA. Karena sifatnya, maka program yang harus dilakukan oleh up disimpan didalamnya. Program akan ditulis sekali saja ke dalam ROM karena pada saat operasionalnya program hanya dibaca saja RAM (Random Access Memory), adalah media peyimpanan data yang dioperasikan sehingga sifatnya BACA dan TULIS. RAM digunakan untuk scratch book (buku oretoretan) karena sifat data adalah variabel (berubah-ubah).

69 Interfacing i8088 dengan Memori Memori harus tersedia pada suatu sistem mikroprosesor, baik untuk menyimpan program maupun untuk menyimpan data. Tergantung dari kebutuhan, memori yg dapat digunakan oleh µp Intel 8088 berbeda-beda berdasarkan ukurannya. Ada yg hanya ¼ KByte (256 Byte) sampai 128 KByte per kepingnya (per IC = Integrated Circuit). Memory Size Memory Map Address line used 256 Byte 00 FF A 0 A 1 A 2 A 3 A 4 A 5 A 6 A Byte 000 1FF A 0 A 1 A 2 A 3 A 4 A 5 A 6 A 7 A 8 1 Kbyte 000 3FF A 0 A 1 A 2 A 3 A 4 A 5 A 6 A 7 A 8 A 9 2 Kbyte 000 7FF A 0 A 1 A 2 A 3 A 4 A 5 A 6 A 7 A 8 A 9 A 10 4 Kbyte 000 FFF A 0 A 1 A 2 A 3 A 4 A 5 A 6 A 7 A 8 A 9 A 10 A 11 8 Kbyte FFF A 0 A 1 A 2 A 3 A 4 A 5 A 6 A 7 A 8 A 9 A 10 A 11 A Kbyte FFF A 0 A 1 A 2 A 3 A 4 A 5 A 6 A 7 A 8 A 9 A 10 A 11 A 12 A Kbyte FFF A 0 A 1 A 2 A 3 A 4 A 5 A 6 A 7 A 8 A 9 A 10 A 11 A 12 A 13 A Kbyte 0000 FFFF A 0 A 1 A 2 A 3 A 4 A 5 A 6 A 7 A 8 A 9 A 10 A 11 A 12 A 13 A 14 A 15 ROM vs. RAM Data di ROM hanya dapat dibaca saja sedangkan data di RAM dapat dibaca dan juga ditulis. Hal ini menyebabkan secara hardware mereka berbeda. Contoh : Sebuah keping memori ROM 2716 dengan kapasitas 2 KByte Sebuah keping memori RAM 4016 dengan kapasitas 2 KByte A7 A6 A5 A4 A3 A2 A1 A0 D0 D1 D2 GND 1 24 Vcc 2 23 A A Vpp CS 6 19 A PGM 8 2 Kbyte 17 D7 9 PROM 16 D D D4 D3 A7 A6 A5 A4 A3 A2 A1 A0 D0 D1 D2 GND 1 24 Vcc 2 23 A A WE OE 6 19 A CS 8 2 Kbyte 17 D7 9 SRAM 16 D D D4 D3 Nama Fungsi Tipe CS D 0 D 7 Chip Select (Active Low) digunakan untuk mengaktifkan memori. Untuk dapat diakses datanya, CS dari suatu memori (baik ROM maupun RAM) harus diaktifkan terlebih dahulu Data bus 8 jalur (8 bit) sebagai saluran data antara isi memori dgn data bus eksternal, untuk mengambil data dari memori atau menuliskan data ke memori In Out (ROM) In+Out (RAM)

70 A 0 A 10 Address bus (A 0 A 10 ) digunakan untuk mengaktifkan salah satu set data-8-bit dari total kapasitasnya = 2 11 x 8 bit = 2048 byte (lihat tabel) Nama Fungsi Tipe OE Output Enable (Active Low) jika diaktifkan maka salah satu set data-8-bit dalam RAM dapat dibaca In WE Write Enable (Active Low) jika diaktifkan maka salah satu set data-8-bit dalam RAM dapat ditulis In PGM Program (Active +18 Volt) digunakan untuk menulis ke dalam ROM In Pada kasus RAM, struktur internal pengaksesannya adalah sebagai berikut : In D0 D1 D2 D3 D4 DATA ARRAY D5 D6 D7 WE OE Sinyal WE dan OE akan mengaktifkan salah satu set dari 3-state buffer (jika WE diaktifkan! arah data masuk ke dalam memori, jika OE diaktifkan! arah data keluar dari memori). Untuk menyambungkan suatu keping memori dengan µp Intel 8088 dibutuhkan 3 penyambungan yaitu sambungan untuk data, alamat, dan kontrol. Sambungan data adalah secara langsung karena lebarnya sama-sama 8 bit (D 0 D 7 ) baik dari sisi µp Intel 8088 maupun dari sisi memori. Sambungan alamat tergantung dari kapasitas memori yg digunakan (lihat tabel). Misalnya memori yg digunakan berkapasitas 2 Kbyte, berarti address line yg digunakan untuk mengakses suatu data pada memori tersebut adalah A 0 A 10. Maka yang diambil dari µp Intel 8088 adalah address line yg bersesuaian yaitu A 0 A 10, dimana :

71 Pin A 0 dari µp Intel 8088 disambungkan pada masukan A 0 RAM/ROM, Pin A 1 dari µp Intel 8088 disambungkan pada masukan A 1 RAM/ROM, Pin A 2 dari µp Intel 8088 disambungkan pada masukan A 2 RAM/ROM, Pin A 3 dari µp Intel 8088 disambungkan pada masukan A 3 RAM/ROM, dst sampai Pin A 10 dari µp Intel 8088 disambungkan pada masukan A 10 RAM/ROM Sambungan kontrol yg diperlukan adalah : 8088 RD IO /M WR signal signal Mem READ to pin OE Mem WRITE to pin WE untuk kasus RAM, sinyal Memory Read digunakan untuk memberitahu keping memori yg telah diaktifkan pin CS-nya bahwa jenis akses adalah READ. Untuk itu digunakan sebuah gerbang OR untuk menggabungkan sinyal RD dan IO/M dari µp Intel Sinyal Memory READ yang active-low ini akan disambungkan pada pin OE yang juga active-low. sinyal Memory Write digunakan untuk memberitahu keping memori yg telah diaktifkan pin CS-nya bahwa jenis akses adalah WRITE. Untuk itu digunakan sebuah gerbang OR untuk menggabungkan sinyal WR dan IO/M dari µp Intel Sinyal Memory WRITE yang active-low ini akan disambungkan pada pin WE yang juga active-low. sinyal CS: untuk mengaktifkan suatu keping memori. Sisa dari Address line yg tidak digunakan (A 12 A 19 ) akan dipakai untuk mengaktifkan memori tersebut (masukan Chip Select).

72 Contoh sambungan 8088 dengan sebuah ROM 2716 (gambar atas) dan sebuah RAM 4016 (gambar bawah) D0 D1 D2 D3 D4 D5 D6 D7 D0 D1 D2 D3 D4 D5 D6 D7 8 D0 - D7 D0 - D7 A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 CS 11 A0 - A10 CS A0 - A10 CS (a) (b) (c) D0 D1 D2 D3 D4 D5 D6 D7 D0 D1 D2 D3 D4 D5 D6 D7 8 D0 - D7 D0 - D7 RD IO /M WR OE WE RD IO / M WR OE WE RD IO /M WR OE WE A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 CS 11 A0 - A10 CS A0 - A10 CS (a) (b) (c) Pada gambar di atas dapat diperhatikan : 1. sambungan untuk data adalah langsung (direct connection) tanpa perantara. Dimana D n dari i8088 disambungkan dengan D n yg bersesuaian (n = 0..7)

73 CS CS 2. sambungan untuk alamat tergantung pada Address Line yg dibutuhkan untuk mengaktifkan salah satu set flip-flop di dalam memori. Untuk kasus diatas: salah satu dari 2048 (2 11 )set flip-flop akan diaktifkan dgn A 0 A 10 dari i sambungan bus kontrol adalah untuk memberikan sinyal RD atau WR dari 8088 ke 4016 untuk menandakan jenis akses data (apakah READ! membaca data dari memori, ataukah WRITE! menulis data ke memori). Dan untuk sinyal CS, karena hanya ada satu keping memori yg digunakan, maka pengaksesan memori hanya terjadi pada 2716/4016. Sehingga 2716/4016 tersebut selalu dalam keadaan aktif. Gambar (b) dan (c) merupakan cara lain (yg lebih sederhana) untuk menggambarkan interkoneksi (bus data dan bus alamat) antara 8088 dgn memori. Interfacing µp Intel 8088 dengan 2 buah keping memory Jika digunakan dua buah 4016, akan timbul masalah ketika µp Intel 8088 akan mengakses data pada alamat dimana akan ada suatu data dari 4016 yg pertama dan ada data lainnya dari 4016 yang kedua. Untuk menghindarinya, diperlukan suatu mekanisme pemilihan (selector) yang akan memilih salah satu Jadi dalam suatu saat hanya ada satu 4016 yang aktif. Untuk hal ini, disediakan sebuah masukan pada 4016 yang disebut dgn CS (Chip Select) yang aktif Low. Jika CS diaktifkan (diberikan Low Voltage) maka data didalam 4016 akan dapat diakses oleh i8088. Sebaliknya jika CS tidak diaktifkan (diberikan High Voltage) maka data didalam 4016 tidak akan dapat diakses. Karena hanya ada 2 pilihan (2 buah 4016) maka dapat digunakan sebuah gerbang inverter dimana untuk mengaktifkannya kita gunakan A 19. Hal yang sama juga berlaku untuk ROM D0 - D A0 - A10 A A B (a)

74 WR RD CS CS OE 8088 A0 - A10 D0 - D A WE OE A B WE IO/M Mem READ Mem WRITE (b) Peta memori untuk sistem diatas adalah sebagai berikut : A A = FFFFF = = 807FF = = 7FFFF = = 007FF = KByte berisi pengulangan content 4016B (atau 2716B) 2 KByte dari 4016B (atau 2716B) 510 KByte berisi pengulangan content 4016A (atau 2716A) 2 KByte dari 4016A (atau 2716A) second half 512 K Byte selected when A19 = 1 first half 512 K Byte selected when A19 = 0 Terjadinya pengulangan content memori karena tidak semua Address Line sisa (A 11 A 19 ) digunakan untuk menghasilkan sinyal CS. Perhatikan bahwa pada saat Address Bus berisi 00000H dan 00800H, memori 4016A (atau 2716A) tetap diaktifkan. Dan pada kedua kondisi tersebut, set flip-flop yg sama (yg pertama) yg akan diakses. Untuk menghindari terjadinya pengulangan isi memori, maka seluruh sisa Address Line yg tidak tersambung ke memori, harus di-kode-kan untuk menghasilkan sinyal CS. Pada

75 kasus diatas, untuk menghasilkan sinyal CS, maka seluruh A 11 A 19 harus di-kode-kan (tidak hanya A 19 saja). Masalah akan menjadi besar jika kita akan menggunakan lebih dari dua buah 4016, dimana harus ada suatu sistem selektor untuk mengaktifkan salah satu memori. Disini kita akan mendesainnya dengan gerbang logika. N1 A0 - A10 D0 - D7 CS 4016 A WE OE N2 CS 4016 B WE OE i8088 N3 CS 4016 C WE OE A18 A19 N4 CS 4016 D WE OE RD Mem READ IO / M WR Mem WRITE Peta memori untuk sistem diatas adalah sebagai berikut : A A = FFFFF = C = C07FF = C = BFFFF 254 KByte berisi pengulangan content 4016D 2 KByte dari 4016 D 254 KByte berisi pengulangan content 4016C = = 807FF 2 KByte fourth quarter 256 KByte selected when A19 = 1 & A18 = 1 third quarter 256 KByte selected when A19 = 1 & A18 = 0

76 = dari 4016 C

77 = 7FFFF = = 407FF = = 3FFFF = = 007FF = KByte berisi pengulangan content 4016B 2 KByte dari 4016 B 254 KByte berisi pengulangan content 4016A 2 KByte dari 4016 A second quarter 256 KByte selected when A19 = 0 & A18 = 1 first quarter 256 KByte selected when A19 = 0 & A18 = 0 Untuk menghindari terjadinya pengulangan isi memori, maka seluruh sisa Address Line yg tidak tersambung ke IC memori tersebut harus di-kode-kan untuk menghasilkan sinyal CS. Sebagai contoh, kita akan membuat Address Decoder yg akan mengaktifkan salah satu dari 4 IC memori yg berbeda-beda kapasitasnya. Karena sambungan data dan kontrol selalu tetap, maka yg perlu diperhatikan hanya sambungan alamatnya saja (disesuaikan dengan tabel). Interface ke 2708 = 1 Kbyte untuk aktivasi CS dari 2708 untuk mengakses memori 2708 address line : A 19 A 18 A 17 A 16 A 15 A 14 A 13 A 12 A 11 A 10 A 9 A 8 A 7 A 6 A 5 A 4 A 3 A 2 A 1 A 0 Interface ke 2716 = 2 Kbyte untuk aktivasi CS dari 2716 untuk mengakses memori 2716 address line : A 19 A 18 A 17 A 16 A 15 A 14 A 13 A 12 A 11 A 10 A 9 A 8 A 7 A 6 A 5 A 4 A 3 A 2 A 1 A 0 Interface ke 2732 = 4 Kbyte untuk aktivasi CS dari 2732 untuk mengakses memori 2732 address line : A 19 A 18 A 17 A 16 A 15 A 14 A 13 A 12 A 11 A 10 A 9 A 8 A 7 A 6 A 5 A 4 A 3 A 2 A 1 A 0 Interface ke 2764 = 8 Kbyte untuk aktivasi CS dari 2764 untuk mengakses memori 2764 address line : A 19 A 18 A 17 A 16 A 15 A 14 A 13 A 12 A 11 A 10 A 9 A 8 A 7 A 6 A 5 A 4 A 3 A 2 A 1 A 0 Kita akan menggunakan 4 buah gerbang OR yg berbeda untuk mengaktifkan masingmasing memori. untuk 2708 kita membutuhkan gerbang logika OR 10 input (A10 A19), untuk 2716 kita membutuhkan gerbang logika OR 9 input (A11 A19), untuk 2732 kita membutuhkan gerbang logika OR 8 input (A12 A19), dan untuk 2764 kita membutuhkan gerbang logika OR 7 input (A13 A19).

78 A18 A19 A19 A18 Peta memori untuk sistem diatas adalah sebagai berikut : = FFFFF A13 A14 A15 A16 A17 A12 A13 A14 A15 A16 A17 A18 A11 A12 A13 A14 A15 A16 A17 A19 A10 A11 A12 A13 A14 A15 A16 A17 A18 A19 Address Decoder Address Decoder Address Decoder Address Decoder to CS of 2764 to CS of 2732 to CS of 2716 to CS of = C = C1FFF = C = BFFFF = = 80FFF = = 7FFFF = = 407FF = = 3FFFF = = 003FF = KByte empty 8 KByte dari KByte empty 4 KByte dari KByte empty 2 KByte dari KByte empty 1 KByte dari 2708

79 Alternatif lain (dan juga yg paling banyak diterapkan) untuk mengaktifkan salah satu keping memori adalah dengan menggunakan address decoder. Decoder adalah suatu alat yang akan menterjemahkan kondisi input dengan mengaktifkan salah satu outputnya. Setiap output dari decoder akan dihubungkan ke masukan CS dari salah satu keping memori. Karena hanya ada satu output yg aktif, maka hanya ada satu keping memory yg diaktifkan. Pada contoh diatas (4 buah 4016), karena ada 4 buah keping yang akan diaktifkan, maka dibutuhkan decoder 2-to-4 yang memiliki 4 buah output dan salah satu output akan mengaktifkan salah satu keping memori yang bersesuaian. A18 A19 ENABLE 2 - to - 4 Decoder Y0 Y1 Y2 Y3 ENABLE A 19 A 18 Y 3 Y 2 Y 1 Y A B C D 1 X X Mengacu pada tabel operasi diatas, kita dapat menggunakan : output Y0 untuk mengaktifkan 4016-A dimana ini terjadi pada saat A19 = 0 & A18 = 0. output Y1 untuk mengaktifkan 4016-B dimana ini terjadi pada saat A19 = 0 & A18 = 1. output Y2 untuk mengaktifkan 4016-C dimana ini terjadi pada saat A19 = 1 & A18 = 0. output Y3 untuk mengaktifkan 4016-D dimana ini terjadi pada saat A19 = 1 & A18 = 1. Sedangkan untuk menyeleksi 8 keping memori, kita dapat menggunakan 3-to-8 Decoder yang akan menterjemahkan sinyal A17, A18, dan A19 untuk mengaktifkan salah satu dari 8 keping memori.

80 CS Rangkaian lengkap dari sistem µp Intel 8088 dengan 4 keping memori ada pada gambar berikut ini : A0 - A10 D0 - D7 CS 2716 A i8088 CS CS 2716 B 2716 C A18 A19 2 to 4 Decoder 2716 D

81

82 PPI 8255 Untuk mengirimkan data ke perangkat luar, µp8088 dapat menggunakan latch (Flip- Flop) untuk menyimpan data tersebut sampai ada data baru yang ingin dikirim µp Sedangkan untuk menerima data, diperlukan pula suatu latch untuk menyimpan data, sampai µp 8088 memiliki waktu untuk mengambil data tersebut. Sebuah latch hanya dapat digunakan untuk satu arah saja : output atau input. Untuk sistem yang kompleks, implementasi dengan PPI 8255 (Programmable Peripheral Interface) akan sangat memudahkan dan menyederhanakan sistem. Hal ini disebabkan karena PPI 8255 memiliki 3 latch yang dapat diprogram sesuka kita, apakah ingin dibuat sebagao input latch atau sebagai output latch. Skema konektor dari IC PPI 8255 adalah sebagai berikut : PA3 PA2 PA1 PA0 read CS ground A1 A0 PC7 PC6 PC5 PC4 PC0 PC1 PC2 PC3 PB0 PB1 PB PA4 PA5 PA6 PA7 reset D0 D1 D2 D3 D4 D5 D6 D7 Vcc PB7 PB6 PB5 PB4 PB3 write Terlihat pada skema diatas, PPI 8255 : 1. memiliki 3 port : port A (pin 1-4 dan 37-40), port B (pin 18-25), port C (pin 10-17) 2. masing-masing port tersebut dapat diprogram menjadi port input maupun sebagai port output atau keduanya. Dan jika dibutuhkan, port C dapat diprogram sebagai port kontrol 3. address line A0 (pin 8) dan A1 (pin 9) digunakan untuk memilih salah satu port yg ingin diakses.

83 Skema blok diagram didalam PPI 8255 adalah sebagai berikut : D0 - D7 DATA BUS BUFFER REGISTER DATA A PA0 - PA7 Group A A0 A1 2 TO 4 DECODER REGISTER DATA C PC0 - PC3 PC4 - PC7 REGISTER CONTROL Group B RD WR READ/WRITE CONTROL LOGIC REGISTER DATA B PB0 - PB7 Terlihat bahwa PPI 8255 memiliki 3 port I/O (setiap port memiliki lebar 8 bit). Ketiga port tersebut diberi nama port A, port B, dan port C. Register menyediakan 4 buah register 8-bit : diakses saat A0 A1 keterangan Register data A 0 0 register ini menyimpan data dari/untuk port A Register data B 0 1 register ini menyimpan data dari/untuk port B Register data C 1 0 register ini menyimpan data dari/untuk port C Register kontrol 1 1 register untuk mengontrol kerja 3 register lainnya

84 Register data A, register data B, dan register kontrol hanya dapat diakses dalam format 8- bit. Register data C dapat diakses dalam 2 nibble (2 x 4 bit) yaitu Lower C (C 0 C 3 ) dan Upper C (C 4 C 7 ) Programming 8255 Dengan mengirim suatu informasi selebar 1 byte ke register kontrol, kita dapat memprogram kerja dari port A, B, dan C. Informasi ini disebut juga dengan Control Word. Control Word A berfungsi untuk memprogram kerja setiap port, sedangkan Control Word B berfungsi untuk menset atau mereset salah satu bit di Port C. Control Word A : untuk memprogram kerja port 1 D 6 D 5 D 4 D 3 D 2 D 1 D 0 Group B Tipe Port C Lower (PC0-PC3) 0 output 1 input Tipe Port B 0 output 1 input Mode Selector 0 mode 0 1 mode 1 Group A Tipe Port C Upper (PC4-PC7) 0 output 1 input Tipe Port A 0 output 1 input Mode Selector 00 mode 0 01 mode 1 1X mode 2

85 Control Word B : menset/reset salah satu bit di Port C saat 8255 bekerja pada mode 0 X X X D 3 D 2 D 1 D 0 Set / Reset selected bit in Port C below 0 reset 1 set Select a specific bit in Port C 000 select Port C bit select Port C bit select Port C bit select Port C bit select Port C bit select Port C bit select Port C bit select Port C bit 7 Karena masing-masing port dapat diprogram sebagai buffer input maupun output, maka untuk memudahkan, 8255 didesain khusus untuk menerima 3 mode kerja : 1. mode 0 : Basic I/O pada mode ini setiap port bekerja secara independen. masing-masing dapat bekerja sebagai input atau output. MODE Port B Port C Port A 8 lines I/O 4 lines I/O 4 lines I/O 8 lines PB7 - PB0 PC7 - PC4 PC3 - PC0 PA7 - PA0 Control Word A : D 7 D 6 D 5 D 4 D 3 D 2 D 1 D A CU 0 B CL

86 A = 0 (port A sbg Output); B = 0 (port B sbg Output); CU = 0 (Port C Upper sbg output); CL = 0 (Port C Lower sbg Output) 2. mode 1 : Strobe I/O MODE Port B Port C Port A 8 lines I/O Control atau I/O I/O 8 lines PB7 - PB0 Control Word A : PC7 - PC4 PC3 - PC0 PA7 - PA0 D 7 D 6 D 5 D 4 D 3 D 2 D 1 D A CU 1 B CL A = 0 (port A sbg Output); B = 0 (port B sbg Output); CU = 0 (Port C Upper sbg output); CL = 0 (Port C Lower sbg Output) Control Word B : D 7 D 6 D 5 D 4 D 3 D 2 D 1 D 0 1 don t care a b c 0/1 a b c bit di register C yg diakses C C C C C C C C 7

87 3. mode 2 : Bidirectional I/O MODE Port B Port C Port A 8 lines Bidirectional I/O Control Bidirectional 8 lines PB7 - PB0 PC7 - PC5 PC4 - PC0 PA7 - PA0 Control Word A : D 7 D 6 D 5 D 4 D 3 D 2 D 1 D X A CU 1 B CL A = 0 (port A sbg Output); B = 0 (port B sbg Output); CU = 0 (Port C Upper sbg output); CL = 0 (Port C Lower sbg Output) Control Word B : D 7 D 6 D 5 D 4 D 3 D 2 D 1 D 0 1 don t care a b c 0/1 a b c bit di register C yg diakses C C C C C C C C 7

88 Interrupt Interupsi adalah upaya untuk mengalihkan perhatian µp Intel 8088 dari program yg sedang dikerjakan untuk memberikan pelayanan khusus terlebih dahulu pada yang menginterupsinya. Contoh : Keyboard menginterupsi kerja 8088 karena ada tuts keyboard yg ditekan. Data yg dihasilkan oleh tuts tersebut harus diambil sesegera mungkin oleh µp Intel Dilihat dari siapa yg menginterupsi, interupsi dapat dibedakan menjadi 2, yaitu : 1. Software generated : dihasilkan dengan menggunakan instruksi INT 2. Hardware generated : dihasilkan dengan mengaktifkan sinyal Interrupt pada pin 18 di µp Intel 8088 (active high) Kedua jenis interupsi di atas akan menyebabkan µp Intel 8088 mengerjakan suatu routine (program kecil) khusus (Interrupt Service Routine). Software Generated Dihasilkan oleh instruksi INT yang diikuti nomor interupsinya. Contoh : INT 13 berarti interupsi nomor 13H. Tipe interupsi ini ada 2 jenis : 1. Interupsi yg dihasilkan oleh ROMBIOS (untuk nomor interupsi 0 s.d. nomor interupsi 1FH) 2. Interupsi yg dihasilkan oleh sistem operasi yg digunakan (untuk nomor interupsi 20H keatas) Adanya instruksi INT dalam program akan menyebabkan µp 8088 meninggalkan program yg sedang dikerjakan, dan mengerjakan routine khusus untuk nomor interupsi tersebut. Setelah routine tersebut selesai dikerjakan, maka µp 8088 akan kembali ke program semula yg tadinya ditinggalkan. Urutan kerja µp 8088 saat mengerjakan instruksi INT XX (nilai XX dapat berharga 00H sampai FFH) : 1. Menyimpan isi register ke Stack 2. Mencari alamat routine XX 3. Lompat ke alamat routine tersebut 4. Mengerjakan routine tersebut 5. Kembali ke program semula dgn cara mengembalikan semua isi register dari Stack

89 1. Menyimpan isi register ke Stack Langkah ini ditujukan untuk mengembalikan kembali isi register setelah routine XX selesai dijalankan. Yang dilakukan : 1. Push Flag, 2. Clear Interrupt Flag, 3. Clear Trap Flag, 4. Push CS, 5. Push IP 2. Mencari alamat routine XX Sebelum dapat menjalankan routine XX, µp 8088 harus mencari terlebih dahulu dimana routine XX tersebut berada. Untuk mendapatkan alamat routine tsb, µp 8088 akan mencarinya di Interrupt Vector Table yg ada di alamat 00000H sampai 003FFH (setiap nomor interupsi membutuhkan 4 byte alamat yg disimpan oleh Interrupt Vector Table: 2 byte untuk alamat Segment dan 2 byte untuk alamat Offset) address content Description 003FF 02 Segment address 003FE 46 Interrupt #FF 003FD F0 Offset address 003FC C F E Segment address Offset address Interrupt #00 3. Lompat ke alamat routine XX Melompat ke instruksi awal dari routine XX dgn melakukan lompatan JMP SSSS:OOOO dimana SSSS adalah alamat Segment dan OOOO adalah alamat Offset. 4. Mengerjakan routine XX µp 8088 akan mengerjakan semua instruksi yg ada sampai ditemukan instruksi IRET (Interrupt Return) 5. Kembali ke program semula Jika instruksi IRET dikerjakan, maka semua isi regiter yg tadi disimpan, akan dikembalikan. Yang dilakukan : 1. Pop IP, 2. Pop CS, 3. Set Trap Flag, 4. Set Interrupt Flag, 5. Pop Flag

90 Hardware Generated Adanya sinyal +5V pada pin 18 pada 8088 akan menyebabkan 8088 meninggalkan program yg sedang dikerjakan, dan mengerjakan routine khusus untuk nomor interupsi tersebut. Setelah routine tersebut selesai dikerjakan, maka 8088 akan kembali ke program semula yg tadinya ditinggalkan. Urutan kerja µp 8088 saat mendapatkan sinyal aktif pada pin 18 (INTR) : 1. Menyimpan isi register ke Stack 2. Mengaktifkan sinyal INTA (Interrupt Acknowledged) di pin Membaca nomor interupsi di Address Bus (A 0 A 7 ) 4. Mencari alamat routine untuk nomor interupsi tersebut 5. Lompat ke alamat routine tersebut 6. Mengerjakan routine tersebut 7. Kembali ke program semula dgn cara mengembalikan semua isi register dari Stack 1. Menyimpan isi register ke Stack Langkah ini ditujukan untuk mengembalikan kembali isi register setelah routine selesai dijalankan. Yang dilakukan : 1. Push Flag, 2. Clear Interrupt Flag, 3. Clear Trap Flag, 4. Push CS, 5. Push IP 2. Mengaktifkan sinyal INTA Langkah ini ditujukan agar Interrupt Controller (ex: 8259) memberitahukan µp 8088 nomor interupsinya 3. Membaca nomor interupsi Membaca kondisi Address Bus A 0 A 7 untuk mengetahui siapa yg menginterupsinya 4. Mencari alamat routine yg sesuai Sebelum dapat menjalankan routine yg sesuai, µp 8088 harus mencari terlebih dahulu dimana routine tersebut berada. Untuk mendapatkan alamat routine tsb, µp 8088 akan mencarinya di Interrupt Vector Table yg sama dgn tabel untuk Software Generated Interrupt. 5. Lompat ke alamat routine tersebut Melompat ke instruksi awal dari routine dgn melakukan lompatan JMP SSSS:OOOO dimana SSSS adalah alamat Segment dan OOOO adalah alamat Offset.

91 6. Mengerjakan routine tersebut µp 8088 akan mengerjakan semua instruksi yg ada sampai ditemukan instruksi IRET (Interrupt Return) 7. Kembali ke program semula Jika instruksi IRET dikerjakan, maka semua isi regiter yg tadi disimpan, akan dikembalikan. Yang dilakukan : 1. Pop IP, 2. Pop CS, 3. Set Trap Flag, 4. Set Interrupt Flag, 5. Pop Flag

92 Proses Kerja suatu µp Studi Kasus Mikroprosesor secara Umum Urutan kerja yang harus dilakukan oleh CU dalam mengerjakan suatu instruksi tergantung pada desainnya. Arsitektur VLI (Variable Length Instruction) seperti pada x86 menggunakan 3 tahapan sebagai berikut : 1. Penjemputan Instruksi (IF = Instruction Fetch) IR! Mem[CS+IP] Proses kerja dimulai dengan penjemputan instruksi baru, bagian operation codenya (opcode) dari memori ke Instruction Register (IR). Untuk dapat menjemput opcode instruksi baru tersebut, Control Unit (CU) harus menerjemahkan isi dari register Code Segment dan Instruction Pointer (CS+IP) untuk menentukan letak dari instruksi baru tersebut di memori. Hasil terjemahan isi CS+IP ini dikirim CU ke pengontrol memori melalui bus alamat, yang kemudian oleh pengontrol memori, isi dari cell memori yang bersesuaian diletakkan di bus data. CU kemudian memasukkannya ke IR. 2. Dekoding Instruksi (ID = Instruction Decode) Isi baru dari IR tersebut kemudian diterjemahkan oleh CU untuk mengetahui apa saja yang diinginkan oleh instruksi baru tersebut. Untuk penterjemahan ini, CU menggunakan bantuan tabel instruksi untuk memahami isi dari opcode tersebut. Karena belum tentu opcode yg ada di IR tersebut adalah instruksi lengkapnya, maka ada kemungkinan akan terjadi penjemputan kembali ke memori untuk melengkapi instruksinya. Contoh : PUSH AX = 50 " instruksi 1 byte yg berarti tidak perlu lagi penjemputan ke memori MOV AX,0007 = B " hanya opcode = B8 yg dijemput pada tahap IF. Ini menyebabkan perlunya pengaksesan memori kembali untuk menjemput data Eksekusi Instruksi (EX = Execution) Tergantung dari hasil penterjemahan instruksi diatas, CU akan melaksanakan satu dari tiga fungsi, yaitu : Data Transfer: CU akan memindahkan data dari suatu elemen memori ke elemen memori lainnya, contoh : MOV, PUSH, POP Aritmetika dan Logika: CU akan meminta ALU (Arithmetic and Logic Unit) untuk melakukan kalkulasi, contoh : ADD, SUB, XOR, AND Control: CU akan melompat ke suatu lokasi memori dengan cara mengubah isi register CS dan IP, contoh : JMP, JE, JZ, CALL, RET

93 Set Instruksi Di dalam CPU terdapat daftar instruksi yang dapat dikerjakan hanya oleh CPU itu sendiri. Daftar ini sering disebut sebagai microcode dan setiap kali CPU menerima sebuah instruksi, CPU akan menterjemahkan kode instruksi tersebut (decoding) dan kemudian melihat arti dari masing-masing pecahan tersebut di microcode. Ini menunjukkan bahwa tidak semua CPU memiliki microcode yg sama. Beda arsitektur berarti berbeda juga microcodenya. Sebagai contoh, program yang dapat dijalankan di IBM PC tidak akan jalan di Apple Macintosh. Tipe-tipe instruksi dapat dikategorikan menjadi 8, yaitu : No Type Instruksi Contoh 1 Data Transfer Load-Stores (memindahkan informasi dari dan ke CPU dengan pengalamatan memori) 2 Arithmetic & Logic Aritmetika integer dan operasi logika : ADD, AND 3 Control Branch, Jump, Procedure call dan return, Traps 4 System Operating System call, manajemen virtual memory 5 Floating Point Operasi floating point : tambah, kali 6 Decimal Penjumlahan/Perkalian desimal, Konversi desimal-ke-karakter 7 String String move, String compare, String search 8 Graphics Operasi pixel, Operasi kompresi/dekompresi Semua CPU menyediakan fasilitas pengoperasian terhadap ketiga tipe pertama. Sedangkan support untuk tipe instruksi keempat System berbeda jauh pada tiap-tiap arsitektur. Sedangkan empat tipe terakhir akan berbeda untuk masing-masing arsitektur dari tidak ada sama sekali sampai pengembangan secara khusus. Contoh: AMD K6/2 dengan 3Dnow! yang merupakan tambahan instruksi untuk operasi Graphics. Pada arsitektur Intel 80x86, berdasarkan pengukuran dengan SPECint92, pada umumnya terdapat penggunaan extensive pada beberapa tipe instruksi tertentu. Top 10 instruksi yang paling sering dijalankan pada 80x86 : Rank Instruksi 80x86 % total dijalankan 1 Load 22 % 2 Conditional branch 20 % 3 Compare 16 % 4 Store 12 % 5 Add 8 % 6 And 6 % 7 Sub 5 % 8 Move register-register 4 %

94 9 Call 1 % 10 Return 1 % Addressing Mode Jika CPU mengerjakan instruksi yang memerlukan pengalamatan, instruksi tersebut pasti termasuk ke salah satu jenis pengalamatan (addressing mode) di bawah ini : Jenis Contoh instruksi Arti Register Add R4, R3 Reg[R4]! Reg[R4] + Reg[R3] Immediate Add R4, #3 Reg[R4]! Reg[R4] + 3 Displacement Add R4, 100(R1) Reg[R4]! Reg[R4] + Mem[100+Reg[R3]] Register Indirect Add R4, (R1) Reg[R4]! Reg[R4] + Mem[Reg[R1]] Indexed Add R3, (R1+R2) Reg[R3]! Reg[R4] + Mem[Reg[R1]+Reg[R2]] Direct or Absolute Add R1, (1001) Reg[R1]! Reg[R1] + Mem[1001] Memory Indirect Add Reg[R1]! Reg[R4] + Mem[Mem[Reg[R3]]] Autoincrement Add R1, (R2)+ Reg[R1]! Reg[R1] + Mem[Reg[R2]] Reg[R2]! Reg[R2] + d Autodecrement Add R1, -(R2) Reg[R2]! Reg[R2] d Reg[R1]! Reg[R1] - Mem[Reg[R2]] Scaled Add R1, Reg[R1]! Reg[R1] + 100(R2)[R3] Mem[100+Reg[R2]+Reg[R3]*d]

95

96 Pipeline pada x86 Karena untuk setiap tahap pengerjaan instruksi, komponen yang bekerja berbeda, maka dimungkinkan untuk mengisi kekosongan kerja di komponen tersebut. Sebagai contoh : Instruksi 1 : ADD AX,AX Instruksi 2 : ADD BX,CX Setelah CU menjemput instruksi 1 dari memori (IF), CU akan menerjemahkan instruksi tersebut (ID). Pada saat CU menerjemahkan instruksi 1 tersebut, komponen IF tidak bekerja. Adanya teknologi pipeline menyebabkan IF akan menjemput instruksi 2 pada saat ID menerjemahkan instruksi 1. Demikian seterusnya, pada saat CU menjalankan instruksi 1 (EX), instruksi 2 diterjemahkan (ID). Contoh pengerjaan instruksi tanpa pipeline t = ADD AX,AX IF DE IF DE EX ADD BX,CX IF DE IF DE EX Disini instruksi baru akan dijemput jika instruksi sebelumnya telah selesai dilaksanakan. Contoh pengerjaan instruksi dengan pipeline t = ADD AX,AX IF DE IF DE EX ADD BX,CX IF DE IF DE EX ADD DX,DX IF DE IF DE EX Disini instruksi baru akan dijemput setelah tahap IF menganggur (t2). Dengan adanya pipeline dua instruksi selesai dilaksanakan pada detik keenam (sedangkan pada kasus tanpa pipeline baru selesai pada detik kesepuluh). Dengan demikian telah terjadi percepatan sebanyak 1,67x dari 10T menjadi hanya 6T. Sedangkan untuk pengerjaan 3 buah instruksi terjadi percepatan sebanyak 2,14x dari 15T menjadi hanya 7T. Untuk kasus pipeline sendiri, 2 instruksi dapat dikerjakan dalam 6T (CPI = 3) dan 3 instruksi dapat dikerjakan dalam 7T (CPI = 2,3) dan untuk 4 instruksi dapat dikerjakan dalam 8T (CPI = 2). Ini berarti untuk 100 instruksi akan dapat dikerjakan dalam 104T (CPI = 1,04). Pada kondisi ideal CPI akan mencapai harga 1. Kelemahan pipeline adalah untuk mencapai keadaan ideal tersebut, setiap instruksi yang berdekatan harus tidak tergantung dari instruksi disekitarnya. Inilah yang disebut paralelism yaitu dimana instruksi-instruksi disusun sedemikian sehingga mereka dapat dijalankan secara bersamaan (paralel).

97 Masalah-masalah pada Pipeline Dengan adanya persyaratan bahwa setiap instuksi yang berdekatan harus tidak saling bergantung, maka ada kemungkinan terjadinya situasi dimana pipeline gagal dilaksanakan (instuksi berikutnya tidak bisa dilaksanakan). Situasi ini disebut Hazards. Hazards mengurangi performansi dari CPU dimana percepatan ideal tidak dapat dicapai. Ada 3 kelompok Hazards : 1. Structural Hazards muncul dari konflik resource sistem yaitu ketika hardware tidak dapat mensuport semua kemungkinan kombinasi pelaksanaan instruksi 2. Data Hazards muncul ketika data untuk suatu instruksi tergantung pada hasil instruksi sebelumnya 3. Control Hazards muncul pada pelaksanaan instruksi yang mengubah PC (contoh : branch) Adanya Hazards menyebabkan pipeline terhambat (stalled). Tidak ada instruksi baru yang dijemput sampai hambatan itu selesai. Ini berarti instruksi-instruksi selanjutnya akan ditunda pula penjemputannya. Structural Hazards Ketika suatu mesin di-pipeline, eksekusi dari instruksi yang bertumpukan tersebut membutuhkan pemasangan pipeline pada unit-unit fungsional dan duplikasi resource untuk memperbolehkan semua kemungkinan kombinasi pelaksanaan instruksi di pipeline. Jika beberapa kombinasi dari instruksi tidak dapat diakomodasikan karena konflik resource, CPU tersebut dikatakan memliki structural hazards Sebagai contoh, sebuah mesin yang memiliki sistem memori dengan hanya 1 port (1 set address bus dan 1 set data bus) untuk membaca dan menulis, akan menghasilkan stall setiap kali tahapan EX dan IF terjadi bersamaan dimana suatu instruksi pada tahap EX ingin menulis memori dan pada saat yang bersamaan instruksi lainnya ada pada tahap IF yang berarti pembacaan memori. t = PUSH AX IF DE EX PUSH BX IF DE EX ADD AX,AX IF DE IF DE EX Pada t3 terjadi dua buah akses ke memori. Yang pertama untuk mengirim isi register AX ke stack dan yg kedua untuk menjemput instruksi ketiga (ADD). Jika memori tidak mendukung 2 pembacaan sekaligus seperti ini, maka akan terjadi Structural Hazard dimana penjemputan instruksi ketiga (ADD) akan ditunda sampai detik keempat. Untuk menghilangkan terjadinya Structural Hazard, maka setiap resource harus diduplikasi sebanyak jumlah stage dalam pipeline (= jumlah tahapan pengerjaan instruksi). Seperti misalnya instruksi kedua dan ketiga dieksekusi pada saat yg bersamaan, maka ini berarti komponen-komponen yg terlibat dalam eksekusi harus diduplikasi. Salah satu untuk mengeksekusi instruksi pertama, dan satunya lagi untuk mengeksekusi instruksi kedua.

98 Data Hazards Data hazards terjadi ketika pipeline merubah urutan baca/tulis ke operand sehingga urutannya menjadi berbeda dengan urutan yang dilihat dengan menjalankan instruksiinstruksi tersebut pada mesin yang tidak di-pipeline. Data Hazards dapat diklasifikasikan menjadi 3 tipe dilihat dari urutan operasi baca-tulis oleh instruksi yang berdekatan. Jika ada 2 instruksi X dan Y dimana instruksi X dikerjakan lebih dahulu dari instruksi Y : RAW (Read After Write) Y mencoba untuk membaca suatu cell memori sebelum X menulisnya sehingga Y mendapatkan harga lama dari memori tersebut. t = MOV AX, 0000 IF DE IF DE EX MOV AX, FFFF IF DE IF DE EX PUSH AX IF DE EX Jika ketiga instruksi tersebut dikerjakan pada up tanpa pipeline, maka data yang di-push ke stack adalah FFFF. Namun ternyata jika dikerjakan pada up dengan pipeline, yang di-push ke stack adalah Hal ini disebabkan karena register AX akan diisi harga 0000 oleh instruksi pertama pada t5, dan kemudian akan ditumpuk oleh instruksi kedua dengan data FFFF pada t6. Instruksi ketiga akan membaca AX pada t5 sehingga yang dibaca adalah 0000 bukan FFFF. RAW adalah type yang paling sering terjadi diantara tipe yg lain. WAW (Write After Write) : Y mencoba untuk menulis suatu cell memori sebelum ditulis oleh X. Urutan penulisan menjadi terbalik sehingga isi dari memori adalah hasil proses instruksi X padahal yang diinginkan adalah hasil proses dari instruksi Y (tertumpuk oleh hasil instruksi X) t = MOV AX,FFFF IF DE IF DE EX POP AX IF DE EX Jika kedua instruksi tersebut dikerjakan pada up tanpa pipeline, maka data yang ada di AX adalah dari stack. Namun ternyata jika dikerjakan pada up dengan pipeline, data yang ada di AX adalah Hal ini disebabkan karena register AX akan diisi data dari stack oleh instruksi kedua pada t4 sedangkan instruksi pertama akan menumpuknya dengan data 0000 karena instruksi kedua baru selesai pada t5.

99 WAR (Write After Read) : Y mencoba untuk menulis suatu cell memori sebelum dibaca oleh X. t = MOV AX,FFFF IF DE IF DE EX MOV BX,AX IF DE IF DE EX POP AX IF DE EX Jika ketiga instruksi tersebut dikerjakan pada up tanpa pipeline, maka data yang ada di BX adalah FFFF. Namun ternyata jika dikerjakan pada up dengan pipeline, data yang ada di BX berasal dari stack. Hal ini disebabkan karena register AX akan diisi data dari stack oleh instruksi ketiga pada t5, dan data ini akan menumpuk data FFFF yang diberikan oleh instruksi pertama. Beberapa Teknik untuk meminimisasi stall oleh Data Hazard Teknik yang pertama adalah forwarding atau bypassing dimana hasil dari suatu tahap pengerjaan instruksi diumpankan langsung ke tahapan dimana instruksi lainnya memerlukan hasil dari tahap tersebut. Sebagai contoh adalah output dari ALU (tahap EX) diumpankan langsung kembali ke ALU yang digunakan untuk melaksanakan proses selanjutnya. Teknik ini sederhana untuk dilakukan namun akan memperumit desain CPU dan tidak dapat digunakan untuk semua kasus Data Hazard. Teknik kedua adalah yang paling sering digunakan yaitu dengan penjadwalan instruksi (Instruction Scheduling). Disini instruksi-instruksi disusun sedemikian rupa agar tingkat kebergantungan antara instruksi yang berdekatan dapat dikurangi. Hal ini membutuhkan suatu compiler yang canggih dan pintar untuk melakukan penyusunan instruksi. Contoh : Pada cuplikan program Pascal : a := b + c; d := a + e; dimana a = [0000], b = [0002], c = [0004], d = [0006], e = [0008] jika diterjemahkan ke instruksi mesin oleh compiler Pascal yg lugu : [asumsi: instruksi ADD hanya 1 byte] a:=b+c t = MOV BX, [0002] IF DE IF DE EX MOV CX, [0004] IF DE IF DE EX ADD BX, CX IF DE EX MOV [0000], BX IF DE IF DE EX

100 d:=a+e MOV AX, [0000] IF DE IF DE EX MOV BX, [0008] IF DE IF DE EX ADD AX, BX IF DE EX MOV [0006], AX IF DE IF DE EX Akan terjadi dua buah RAW Hazard : 1. antara instruksi ke-2 dan ke-3 dimana instruksi ketiga akan membaca CX sebelum diisi data [0004] oleh instruksi kedua. Untuk menghindarinya, kita harus menunda eksekusi instruksi ketiga sampai detik ke-7 agar CX yg dibaca adalah data dari [0004]. t = MOV BX, [0002] IF DE IF DE EX MOV CX, [0004] IF DE IF DE EX ADD BX, CX IF DE EX MOV [0000], BX IF DE IF DE EX 2. antara instruksi ke-6 dan ke-7 dimana instruksi ketujuh akan membaca BX sebelum diisi data [0008] oleh instruksi keenam. Untuk menghindarinya, kita harus menunda eksekusi instruksi ketujuh sampai detik ke-13 agar BX yg dibaca adalah data dari [0008] (semua instruksi telah tergeser 2T karena penundaan instruksi ketiga diatas) t = MOV AX, [0000] IF DE IF DE EX MOV BX, [0008] IF DE IF DE EX ADD AX, BX IF DE EX MOV [0006], AX IF DE IF DE EX Total waktu yg dibutuhkan untuk melaksanakan semua instruksi menjadi 16T karena ada 4 buah penundaan. Dengan hasil yang sama, delapan instruksi diatas dapat disusun ulang (reschedule) pengerjaannya menjadi : t = MOV BX, [0002] IF DE IF DE EX MOV CX, [0004] IF DE IF DE EX MOV AX, [0008] IF DE IF DE EX sisipan instruksi lain ADD BX, CX IF DE EX MOV [0000], BX IF DE IF DE EX sisipan instruksi lain ADD AX, BX IF DE EX MOV [0006], AX IF DE IF DE EX

101 Dengan menyusun ulang instruksi waktu yang dibutuhkan sekarang menjadi 13T.

102 Control Hazard Control Hazards menyebabkan CPU kehilangan performansi yang sangat besar karena ketika suatu instruksi mengubah isi Program Counter (CS+IP), seluruh instruksi setelahnya akan dibatalkan meskipun sudah dijemput (IF). Hal ini terjadi jika instruksi tersebut adalah lompatan (jump), panggilan service (call), dan kembali ke alur program sebelumnya (return). Untuk jump, call, dan return, teknik minimisasi control hazard adalah dengan menghitung alamat tujuan terlebih dahulu dan menjemput instruksi di alamat tujuan tersebut. Hal ini karena ketiga instruksi tersebut perubahan isi PC pasti akan dilakukan (karena lompatan tanpa syarat). Sedangkan untuk lompatan bersyarat isi PC dapat berubah dan dapat juga tidak. Hal ini akan menyebabkan stall yang cukup besar jika instruksi yang dijemput adalah instruksi yang salah. Contoh : Pada cuplikan program Pascal : a := 0; repeat a := a+1; until a = 10; a := b; dimana b = stack jika diterjemahkan ke instruksi mesin oleh compiler Pascal yg lugu : offset t = a:= MOV AX, 0000 IF DE IF DE EX repeat 0103 MOV CX, 000A IF DE IF DE EX a:=a ADD AX, 0001 IF DE IF DE EX until a= XOR CX, AX IF DE IF DE EX 010B JNZ 0103 IF DE IF DE EX a:=b 010D POP AX IF DE EX Saat instruksi JNZ 0103 dieksekusi (t9), instruksi POP AX telah selesai dieksekusi (t8). Jika lompatan ternyata tidak dilakukan, maka hal ini tidak menjadi masalah karena memang instruksi berikutnya adalah POP AX. Namun jika lompatan ternyata dilakukan, maka hal ini akan menjadi masalah karena register AX telah diubah oleh instruksi POP AX.

103 Ada dua cara yg dapat dilakukan untuk mengurangi Control Hazard : 1. dengan mendeteksi terlebih dahulu apakah lompatan bersyarat akan dilaksanakan atau tidak dengan mengetes instruksi yang mempengaruhi keputusan tersebut. Kelanjutan dari tes ini adalah menghitung alamat tujuan terlebih dahulu. Kelebihan dari cara ini adalah deteksinya 100% benar. Dan kekurangannya adalah diperlukannya hardware tambahan (yg cukup banyak) untuk dapat melakukan testing tersebut. 2. dengan mengasumsikan apakah lompatan bersyarat tersebut akan dilakukan atau tidak. a. Predict Taken adalah menganggap semua lompatan bersyarat pasti dilakukan (pasti melompat) sehingga begitu terjemput suatu instruksi lompatan, maka yg dijemput kemudian adalah instruksi-instruksi di alamat tujuan lompatan tersebut. b. Predict Not Taken adalah menganggap semua lompatan bersyarat pasti tidak dilakukan (pasti tidak melompat) sehingga jika terjemput suatu instruksi lompatan, maka yg dijemput kemudian adalah instruksi-instruksi setelah instruksi lompatan tersebut. Pengembangan lebih lanjut dari kedua metode diatas (predict-taken dan predict-nottaken) adalah dgn suatu metode yg disebut scoreboard. Algoritma yg digunakan pada metode ini adalah Tomasulo. Taken Not Taken Predict Taken 00 Taken Predict Taken 01 Taken Not Taken Predict Not Taken 11 Not Taken Taken Predict Not Taken 10 Not Taken Dengan menggunakan algoritma Tomasulo di atas, metode scoreboard akan merekam setiap instruksi lompat. Sehingga disini pengambilan keputusan berdasarkan history. Misalnya saat ini scoreboard berisi 00 yg berarti setiap instruksi lompat dianggap akan diambil (predict taken). Sistem akan berubah menjadi predict not taken hanya jika telah terjadi 2x lompatan yg tidak diambil (2x tidak melompat) dimana scoreboard akan berisi harga 10.

104 Referensi 1. Douglas V. Hall, Microprocessors and Interfacing : Programming and Hardware, 2 nd ed, McGraw Hill 2. Intel, 8088 Data Sheet Book, Agustus Sanjiva Nath, Assembly Language Interfacing in Turbo Pascal, MIS Press, Barry B. Brey, The Intel Microprocessors : 8086/88, 80186, 80286, 80386, and : Architecture, Programming, and Interfacing, 3 rd ed, Maxwell Macmillan Int.

Diktat Kuliah Instruksi Mesin

Diktat Kuliah Instruksi Mesin Mikroprosesor dan Antarmuka Diktat Kuliah Instruksi Mesin Nyoman Bogi Aditya Karna Sisfo IMTelkom [email protected] http://bogi.blog.imtelkom.ac.id Institut Manajemen Telkom http://www.imtelkom.ac.id

Lebih terperinci

Diktat Kuliah intel 8088

Diktat Kuliah intel 8088 Mikroprosesor dan Antarmuka Diktat Kuliah intel 888 Nyoman Bogi Aditya Karna Sisfo IMTelkom [email protected] http://bogi.blog.imtelkom.ac.id Institut Manajemen Telkom http://www.imtelkom.ac.id Bagan

Lebih terperinci

0F9C:0000 9A00009E0F CALL 0F9E:0000 0F9C: PUSH BP 0F9C: E5 MOV BP,SP 0F9C: C0 XOR AX,AX 0F9C:000A 9ACD029E0F CALL 0F9E:02CD

0F9C:0000 9A00009E0F CALL 0F9E:0000 0F9C: PUSH BP 0F9C: E5 MOV BP,SP 0F9C: C0 XOR AX,AX 0F9C:000A 9ACD029E0F CALL 0F9E:02CD Instruksi Mesin µp 8088 Instruksi mesin (machine instruction) adalah instruksi-instruksi yg dapat dikerjakan oleh suatu mikroprosesor. Suatu program bahasa Pascal tidak akan dapat dieksekusi secara langsung

Lebih terperinci

Diktat Kuliah Instruksi dan Segmentasi

Diktat Kuliah Instruksi dan Segmentasi Mikroprosesor dan Antarmuka Diktat Kuliah Instruksi dan Segmentasi Nyoman Bogi Aditya Karna Sisfo IMTelkom [email protected] http://bogi.blog.imtelkom.ac.id Institut Manajemen Telkom http://www.imtelkom.ac.id

Lebih terperinci

Diktat Kuliah Organisasi dan Interaksi

Diktat Kuliah Organisasi dan Interaksi Mikroprosesor dan Antarmuka Diktat Kuliah Organisasi dan Interaksi Nyoman Bogi Aditya Karna Sisfo IMelkom [email protected] http://bogi.blog.imtelkom.ac.id Institut Manajemen elkom http://www.imtelkom.ac.id

Lebih terperinci

PETA MEMORI MIKROPROSESOR 8088

PETA MEMORI MIKROPROSESOR 8088 1. Bagan Dasar µp 8088 PETA MEMORI MIKROPROSESOR 8088 Gambar 1. Bagan Dasar µp 8088 Elemen didalam mikroprosesor adalah : CU (Control Unit) adalah manajer dari semua unit. CU mengatur keselarasan kerja

Lebih terperinci

Proses pembacaan data oleh up dari memori (arah data : up! memori) memori

Proses pembacaan data oleh up dari memori (arah data : up! memori) memori Interaksi µp dengan memori Dari bagan organisasi komputer di atas, terlihat bahwa up dapat :. mengambil (membaca) informasi dari memori. 2. menyimpan (menulis) informasi ke memori Seperti halnya manusia

Lebih terperinci

Diktat Kuliah - Pipeline

Diktat Kuliah - Pipeline Mikroprosesor dan Antarmuka Diktat Kuliah - Pipeline Nyoman Bogi Aditya Karna Sisfo IMTelkom [email protected] http://bogi.blog.imtelkom.ac.id Institut Manajemen Telkom http://www.imtelkom.ac.id Proses

Lebih terperinci

Terminologi. Diktat Kuliah Sistem Mikroprosesor v of 38

Terminologi. Diktat Kuliah Sistem Mikroprosesor v of 38 Terminologi Istilah-istilah yang sering digunakan dalam dunia komputer :. Sistem bilangan adalah metode yg menyepadankan suatu besaran dengan suatu simbol tertentu. Contoh: manusia menggunakan sistem bilangan

Lebih terperinci

UJIAN AKHIR SEMESTER TAHUN AKADEMIK 2010/2011

UJIAN AKHIR SEMESTER TAHUN AKADEMIK 2010/2011 NIM NAMA KELAS DOSEN UJIAN AKHIR SEMESTER TAHUN AKADEMIK 2010/2011 TEAM MIKROPROSESOR DAN ANTARMUKA (SK2023) Tanggal Waktu 120 menit Sifat Ujian Closed book, No Calculator TTD Nilai A. Pilihan Ganda Pilihlah

Lebih terperinci

MIKROPROSESOR REGISTER-REGISTER MIKROPROSESOR INTEL

MIKROPROSESOR REGISTER-REGISTER MIKROPROSESOR INTEL Perguruan Tinggi Mitra Lampung MIKROPROSESOR REGISTER-REGISTER MIKROPROSESOR INTEL 8086 Erwin Ardianto, S.T FLAG REGISTER 8086 memiliki flag register dengan panjang16-bit. Dari 16-bit itu terdapat 9 bendera

Lebih terperinci

Mikroprosesor. Bab 3: Arsitektur Mikroprosesor. INTEL 8086 Generasi Awal Prosesor PENTIUM. Arsitektur Mikroprosesor 1

Mikroprosesor. Bab 3: Arsitektur Mikroprosesor. INTEL 8086 Generasi Awal Prosesor PENTIUM. Arsitektur Mikroprosesor 1 Mikroprosesor Bab 3: Arsitektur Mikroprosesor Generasi Awal Prosesor PENTIUM Arsitektur Mikroprosesor 1 20 bit Arsitektur Mikroprosesor 16 bit Register Antrian (FIFO) Arsitektur Mikroprosesor 2 Prosesor

Lebih terperinci

Dosen : Team (no cheating, no book, no note, no additional paper, no calculator)

Dosen : Team (no cheating, no book, no note, no additional paper, no calculator) 1. Untuk membedakan alamat bagi 4 chip memory berkapasitas sama yang terhubung dengan i8088, maka digunakan pin-pin address : a. A 1 -A 0 b. A 3 -A 1 c. A 19 -A 18 d. A 17 -A 16 2. Address decoder berikut

Lebih terperinci

Materi 3. Komponen Mikrokomputer SYSTEM HARDWARE DAN SOFTWARE DADANG MULYANA

Materi 3. Komponen Mikrokomputer SYSTEM HARDWARE DAN SOFTWARE DADANG MULYANA Materi 3 SYSTEM HARDWARE DAN SOFTWARE DADANG MULYANA dadang mulyana 2012 1 Komponen Mikrokomputer Video display (jenis dan resolusi) Keyboard Drive Disk Unit system Prosessor Pendukung dadang mulyana 2012

Lebih terperinci

ORGANISASI DAN ARSITEKTUR KOMPUTER. rsp oak informatika

ORGANISASI DAN ARSITEKTUR KOMPUTER. rsp oak informatika ORGANISASI DAN ARSITEKTUR KOMPUTER rsp oak informatika 1 Microprocessor Intel 80x86 rsp oak informatika 2 Central Processing Unit (CPU) CPU merupakan eupa a prosesor untuk memproses data Terpusat (central)

Lebih terperinci

IMPLEMENTASI PENGISIAN REGISITER DATA DAN OPERASI ARITMATIKA MENGGUNAKAN PROGRAM COMMAND PROMPT, BAHASA ASSEMBLER

IMPLEMENTASI PENGISIAN REGISITER DATA DAN OPERASI ARITMATIKA MENGGUNAKAN PROGRAM COMMAND PROMPT, BAHASA ASSEMBLER IMPLEMENTASI PENGISIAN REGISITER DATA DAN OPERASI ARITMATIKA MENGGUNAKAN PROGRAM COMMAND PROMPT, BAHASA ASSEMBLER Hambali Program Studi Sistem Informasi, STMIK Logika Medan email: [email protected]

Lebih terperinci

BAB II MIKROPROSESOR INTEL 8088

BAB II MIKROPROSESOR INTEL 8088 BAB II MIKROPROSESOR INTEL 8088 Tujuan Setelah mempelajari bab ini, mahasiswa mampu: a. Memahami konfigurasi pin 8088 b. Mengidentifikasi blok arsitektur internal 8088 c. Menjelaskan fungsi register yang

Lebih terperinci

OPERATION SYSTEM. Jenis - Jenis Register Berdasarkan Mikroprosesor 8086/8088

OPERATION SYSTEM. Jenis - Jenis Register Berdasarkan Mikroprosesor 8086/8088 OPERATION SYSTEM Nama : Dian Fahrizal Nim : 110170096 Unit : A3 Jenis - Jenis Register Berdasarkan Mikroprosesor 8086/8088 Mikroprosesor 8086/8088 memiliki 4 register yang masing-masingnya terdiri dari

Lebih terperinci

Mata Kuliah : Bahasa Rakitan Materi ke-3

Mata Kuliah : Bahasa Rakitan Materi ke-3 Mata Kuliah : Bahasa Rakitan Materi ke-3 Struktur Register REGISTER Register adalah sebagian kecil memory komputer yang dipakai i untuk tempatt penampungan dt data. Data yang terdapat dalam register dapat

Lebih terperinci

REGISTER Register-register yang terdapat pada mikroprosesor, antara lain :

REGISTER Register-register yang terdapat pada mikroprosesor, antara lain : REGISTER Register adalah sebagian memori dari mikroprosesor yang dapat diakses dengan kecepatan yang sangat tinggi. Register-register yang terdapat pada mikroprosesor, antara lain : General purpose register

Lebih terperinci

PERTEMUAN : 4 EKSPLORASI DEBUG

PERTEMUAN : 4 EKSPLORASI DEBUG PERTEMUAN : 4 EKSPLORASI DEBUG Jurusan Teknik Informatika STT PLN [email protected] Riki Ruli S - http://blogriki.wordpress.com A ( Assemble/Address) : Memulai pembuatan program assembly dengan Debug

Lebih terperinci

Pipeline pada x86. Sebagai contoh : Instruksi 1 : ADD AX,AX Instruksi 2 : ADD BX,CX

Pipeline pada x86. Sebagai contoh : Instruksi 1 : ADD AX,AX Instruksi 2 : ADD BX,CX Pipeline pada x86 Karena untuk setiap tahap pengerjaan instruksi, komponen yang bekerja berbeda, maka dimungkinkan untuk mengisi kekosongan kerja di komponen tersebut. Sebagai contoh : Instruksi 1 : ADD

Lebih terperinci

Diktat Kuliah Memory Hardware

Diktat Kuliah Memory Hardware Mikroprosesor dan Antarmuka Diktat Kuliah Memory Hardware Nyoman Bogi Aditya Karna Sisfo IMTelkom [email protected] http://bogi.blog.imtelkom.ac.id Institut Manajemen Telkom http://www.imtelkom.ac.id

Lebih terperinci

KONFIGURASI PIN-PIN MIKROPROSESOR Z 80. Yoyo somantri Dosen Jurusan Pendidikan Teknik Elektro FPTK Universitas Pendidikan Indonesia

KONFIGURASI PIN-PIN MIKROPROSESOR Z 80. Yoyo somantri Dosen Jurusan Pendidikan Teknik Elektro FPTK Universitas Pendidikan Indonesia KONIGURASI PIN-PIN MIKROPROSESOR Z 80 Yoyo somantri Dosen Jurusan Pendidikan Teknik Elektro PTK Universitas Pendidikan Indonesia 1. Konfigurasi Pengelompokan pin pin dari mikroprosesor Z80 dapat dilihat

Lebih terperinci

Pemrograman Assembler dengan Debug

Pemrograman Assembler dengan Debug Pemrograman Assembler dengan Debug dadang mulyana 2012 1 Implementasi bahasa assembly bisa menggunakan 2 cara: 1. Menggunakan Debug 2. Pemrograman dengan Software Assembler dadang mulyana 2012 2 1 Debug

Lebih terperinci

Mikroprosesor. Pertemuan 8. By: Augury

Mikroprosesor. Pertemuan 8. By: Augury Mikroprosesor Pertemuan 8 By: Augury [email protected] Sinyal pada Mode Maksimum Status siklus bus Status siklus bus ( S0, S1, S2 ) Sinyal ini merupakan keluaran yang akan diberikan oleh IC lain

Lebih terperinci

Sistem Komputer. Komputer terdiri dari CPU, Memory dan I/O (Arsitektur Von-Neumann) Ada tiga bus dalam sistem komputer

Sistem Komputer. Komputer terdiri dari CPU, Memory dan I/O (Arsitektur Von-Neumann) Ada tiga bus dalam sistem komputer ELEKTRONIKA DIGITAL TEORI ANTARMUKA Sistem Komputer Komputer terdiri dari CPU, Memory dan I/O (Arsitektur Von-Neumann) Komponen komputer dihubungkan oleh bus. Ada tiga bus dalam sistem komputer Alamat

Lebih terperinci

R E G I S T E R. = Code Segment Register = Data Segment Register = Stack Segment Register = Extra Segment Register. 3.

R E G I S T E R. = Code Segment Register = Data Segment Register = Stack Segment Register = Extra Segment Register. 3. R E G I S T E R Register adalah sebagian kecil memori komputer yang dipakai untuk tempat penampungan data dengan ketentuan bahwa data yang terdapat dalam register dapat diproses dalam berbagai operasi

Lebih terperinci

Mata Kuliah : Bahasa Rakitan

Mata Kuliah : Bahasa Rakitan Mata Kuliah : Bahasa Rakitan Materi ke-4 Program Bahasa Rakitan dengan DEBUG.COM Perintah dan Fungsi dalam DEBUG.COM DEBUG, menjalankan program DEBUG : A> DEBUG nama file. COM Q (Quit), keluar dari program

Lebih terperinci

LAPORAN PRAKTIKUM ORGANISASI KOMPUTER & BAHASA ASSEMBLY PROGRAM OPERASI ARITMATIKA. Kelas : INF 2B Praktikum 1 Nama : Fernalia NIM : J3C212210

LAPORAN PRAKTIKUM ORGANISASI KOMPUTER & BAHASA ASSEMBLY PROGRAM OPERASI ARITMATIKA. Kelas : INF 2B Praktikum 1 Nama : Fernalia NIM : J3C212210 LAPORAN PRAKTIKUM ORGANISASI KOMPUTER & BAHASA ASSEMBLY PROGRAM OPERASI ARITMATIKA Kelas : INF 2B Praktikum 1 Nama : Fernalia NIM : J3C212210 PROGRAM KEAHLIAN MANAJEMEN INFORMATIKA DIREKTORAT PROGRAM DIPLOMA

Lebih terperinci

Memori Semikonduktor

Memori Semikonduktor Memori Semikonduktor Tiga jenis yang umum digunakan saat ini adalah: 1. Memori semi konduktor yang memakai teknologi LSI (Large-scale integration), adalah istilah teknis dalam bahasa Inggris di bidang

Lebih terperinci

Tahun Akademik 2015/2016 Semester I DIG1B3 Konfigurasi Perangkat Keras Komputer

Tahun Akademik 2015/2016 Semester I DIG1B3 Konfigurasi Perangkat Keras Komputer Tahun Akademik 2015/2016 Semester I DIG1B3 Konfigurasi Perangkat Keras Komputer SAP-2 Mohamad Dani (MHM) E-mail: [email protected] Hanya dipergunakan untuk kepentingan pengajaran di lingkungan Telkom

Lebih terperinci

TEORI MIKROPROSESOR 8088

TEORI MIKROPROSESOR 8088 TEORI MIKROPROSESOR 8088 I. MIKROPROSESOR 8088 Mikroprosesor 8088 mulai diperkenalkan oleh Intel Corporation pada tahun 1978. Mikroprosesor ini mengawali sejarah perkembangan mikroprosesor Intel selanjutnya,

Lebih terperinci

Memory. Klasifikasi. Hirarki Memory

Memory. Klasifikasi. Hirarki Memory Klasifikasi Memory ROM (Read Only Memory) merupakan media penyimpan data non-volatile (volatile = menguap) yang berarti datanya tidak akan hilang meskipun power supplynya diputuskan. Contoh: ROM BIOS (ROM

Lebih terperinci

Karakteristik Instruksi Mesin

Karakteristik Instruksi Mesin PERTEMUAN Karakteristik Instruksi Mesin Instruksi mesin (machine intruction) yang dieksekusi membentuk suatu operasi dan berbagai macam fungsi CPU. Kumpulan fungsi yang dapat dieksekusi CPU disebut set

Lebih terperinci

PROGRAM STUDI TEKNIK KOMPUTER JURUSAN TEKNIK KOMPUTER POLITEKNIK NEGERI SRIWIJAYA PALEMBANG TK Praktikum Bahasa Rakitan Hand On Lab 4

PROGRAM STUDI TEKNIK KOMPUTER JURUSAN TEKNIK KOMPUTER POLITEKNIK NEGERI SRIWIJAYA PALEMBANG TK Praktikum Bahasa Rakitan Hand On Lab 4 Jl Srijaya Negara Bukit Besar Palembang 30139, Telpon : +62711 353414 PROGRAM STUDI TEKNIK KOMPUTER JURUSAN TEKNIK KOMPUTER POLITEKNIK NEGERI SRIWIJAYA PALEMBANG TK Praktikum Bahasa Rakitan Hand On Lab

Lebih terperinci

SOAL UAS SISTEM KOMPUTER Kelas XI RPL & TKJ

SOAL UAS SISTEM KOMPUTER Kelas XI RPL & TKJ SOAL UAS SISTEM KOMPUTER Kelas XI RPL & TKJ 1. Tempat penyimpanan primer yang bersifat mudah hilang (volatile) dikarenakan hilang saat listrik padam adalah... a. Random Access Memory b. Read Only Memory

Lebih terperinci

MODUL V STACK dan PENGENALAN PROCEDURE

MODUL V STACK dan PENGENALAN PROCEDURE MODUL V STACK dan PENGENALAN PROCEDURE Stack Stack merupakan bagian memori yang digunakan untuk menyimpan nilai dari suatu register secara sementara. Operasi stack dinamakan juga LIFO (Last In First Out).

Lebih terperinci

Interfacing i8088 dengan Memori

Interfacing i8088 dengan Memori Interfacing i8088 dengan Memori Memori harus tersedia pada suatu sistem mikroprosesor, baik untuk menyimpan program maupun untuk menyimpan data. Tergantung dari kebutuhan, memori yg dapat digunakan oleh

Lebih terperinci

Daftar Isi. Daftar Isi Pertemuan 2: Pengenalan Debug dan Interrupt P2.1. Teori Pengenalan DEBUG... 3

Daftar Isi. Daftar Isi Pertemuan 2: Pengenalan Debug dan Interrupt P2.1. Teori Pengenalan DEBUG... 3 Daftar Isi Daftar Isi... 1 Pertemuan 2: Pengenalan Debug dan Interrupt... 2 P2.1. Teori... 3 Pengenalan DEBUG... 3 Perbedaan Program COM dan EXE... 3 Perintah-perintah Dasar DEBUG... 4 Perintah-perintah

Lebih terperinci

Kumpulan instruksi lengkap yang dimengerti

Kumpulan instruksi lengkap yang dimengerti Set Instruksi: 1 Set instruksi? Kumpulan instruksi lengkap yang dimengerti oleh CPU Operasi dari CPU ditentukan oleh instruksiinstruksi yang dilaksanakan atau dijalankannya. Instruksi ini sering disebut

Lebih terperinci

Ujian Akhir Sistem Mikroprocessor EE-2623

Ujian Akhir Sistem Mikroprocessor EE-2623 Ujian Akhir Sistem Mikroprocessor EE-2623 Nama : Rabu 7 Juni 2006 Waktu : 90 Menit NIM : Dosen : Team (no cheating, no book, no note, no additional paper, no calculator) Soal terdiri dari 20 soal pilihan

Lebih terperinci

DCH1B3 Konfigurasi Perangkat Keras Komputer SAP-2

DCH1B3 Konfigurasi Perangkat Keras Komputer SAP-2 DCH1B3 Konfigurasi Perangkat Keras Komputer SAP-2 1 11/20/2016 1 Setelah mengikuti perkuliahan ini mahasiswa dapat: Memahami Arsitektur SAP-2. Menjelaskan cara kerja SAP-2. Menjelaskan instruksi-instruksi

Lebih terperinci

Simple As Possible (SAP) - 2. Abdul Syukur

Simple As Possible (SAP) - 2. Abdul Syukur Simple As Possible (SAP) - 2 Abdul Syukur [email protected] http://skurlinux.blogspot.com 053740514 Arsitektur Komputer SAP-2 Persamaan dengan SAP-1 : Sama-sama komputer bit. Kesamaan ini dapat

Lebih terperinci

LAPORAN PRAKTIKUM ORGANISASI KOMPUTER & BAHASA ASSEMBLY PROGRAM POINTER OPERASI ARITMATIKA

LAPORAN PRAKTIKUM ORGANISASI KOMPUTER & BAHASA ASSEMBLY PROGRAM POINTER OPERASI ARITMATIKA LAPORAN PRAKTIKUM ORGANISASI KOMPUTER & BAHASA ASSEMBLY PROGRAM POINTER OPERASI ARITMATIKA Kelas : INF 2B Praktikum 1 Nama : Fernalia NIM : J3C212210 PROGRAM KEAHLIAN MANAJEMEN INFORMATIKA DIREKTORAT PROGRAM

Lebih terperinci

Sistem Mikroprosessor

Sistem Mikroprosessor Sistem Mikroprosessor Agung Prasetyo,ST. Jurusan Teknik Elektro Akademi Teknologi Warga Surakarta Sistem yang berbasis microprosessor: Juga biasa di sebut microcomputer adalah suatu rangkaian digital yang

Lebih terperinci

SISTEM KERJA MIKROPROSESOR

SISTEM KERJA MIKROPROSESOR 1 SISTEM KERJA MIKROPROSESOR Percobaan I Tujuan Percobaan 1. Mempelajari hubungan bahasa tingkat rendah dengan arsitektur mikroprosesor. 2. Memahami konsep pemograman modular dan pengolahan data dalam

Lebih terperinci

Pendahuluan BAB I PENDAHULUAN

Pendahuluan BAB I PENDAHULUAN Pendahuluan BAB I PENDAHULUAN 1.1. Definisi Komputer Komputer merupakan mesin elektronik yang memiliki kemampuan melakukan perhitungan-perhitungan yang rumit secara cepat terhadap data-data menggunakan

Lebih terperinci

Arsitektur Set Instruksi. Abdul Syukur

Arsitektur Set Instruksi. Abdul Syukur Arsitektur Set Instruksi Abdul Syukur [email protected] http://skurlinux.blogspot.com 085374051884 Tujuan Memahami representasi set instruksi, dan jenis-jenis format instruksi. Mengetahui jenis-jenis

Lebih terperinci

7.1 Pendahuluan. 7.2 Central Processing Unit (CPU)

7.1 Pendahuluan. 7.2 Central Processing Unit (CPU) Bab 7 Prosesor Dan Memori 7.1 Pendahuluan Alat pemroses adalah alat dimana instruksi-instruksi program diproses untuk mengolah data yang sudah dimasukkan melalui alat input dan hasilnya akan ditampilkan

Lebih terperinci

CENTRAL PROCESSING UNIT CPU

CENTRAL PROCESSING UNIT CPU CENTRAL PROCESSING UNIT CPU edywin 1 Central Processing Unit CPU terdiri dari : - Bagian data (Datapath) yang berisi register register untuk penyimpanan data sementara dan sebuah ALU untuk melaksanakan

Lebih terperinci

Set Instruksi: Set instruksi?

Set Instruksi: Set instruksi? Set Instruksi: 1 Set instruksi? Operasi dari CPU ditentukan oleh instruksiinstruksi yang dilaksanakan atau dijalankannya. Instruksi ini sering disebut sebagai instruksi mesin (machine instructions) atau

Lebih terperinci

Hanif Fakhrurroja, MT

Hanif Fakhrurroja, MT Pertemuan 6 Organisasi Komputer CPU dan Sistem Bus Hanif Fakhrurroja, MT PIKSI GANESHA, 2013 Hanif Fakhrurroja @hanifoza [email protected] Agenda Pertemuan 6 1 CPU 2 Sistem Bus Pendahuluan Video CPU CPU

Lebih terperinci

MODUL PRAKTIKUM SISTEM OPERASI PRAKTIKUM I MODEL PEMROGRAMAN 1

MODUL PRAKTIKUM SISTEM OPERASI PRAKTIKUM I MODEL PEMROGRAMAN 1 MODUL PRAKTIKUM SISTEM OPERASI PRAKTIKUM I MODEL PEMROGRAMAN 1 A. Tujuan Pada akhir praktikum ini, peserta dapat: 1. Memahami komponen arsitektur komputer tingkat bawah. 2. Menggunakan simulator untuk

Lebih terperinci

BAB 3 UNIT KONTROL. Universitas Gadjah Mada 1

BAB 3 UNIT KONTROL. Universitas Gadjah Mada 1 BAB 3 UNIT KONTROL Unit kontrol bertanggung jawab atas terbentuknya operasi yang sesuai dengan instruksi yang terdapat pada program. Eksekusi instruksi dilakukan satu persatu, dimulai dari awal program,

Lebih terperinci

Eksplorasi Prosesor 8086 Dengan Program DEBUG

Eksplorasi Prosesor 8086 Dengan Program DEBUG dapat digunakan untuk mengeksplorasi keluarga prosesor 8086 termasuk PENTIUM pada PC telah disertakan setiapkali user melakukan instalasi WINDOWS Untuk menjalankan DEBUG, click Start-Run, kemudian ketik

Lebih terperinci

ARSITEKTUR KOMPUTER SET INSTRUKSI

ARSITEKTUR KOMPUTER SET INSTRUKSI LOGO ASSALAMU ALAIKUM ARSITEKTUR KOMPUTER SET INSTRUKSI Disajikan Oleh : RAHMAD KURNIAWAN, S.T., M.I.T. TEKNIK INFORMATIKA UIN SUSKA RIAU Karakteristik dan Fungsi Set Instruksi Operasi dari CPU ditentukan

Lebih terperinci

ARSITEKTUR MIKROPROSESOR Z80. Yoyo somantri Dosen Jurusan Pendidikan Teknik Elektro FPTK Universitas Pendidikan Indonesia

ARSITEKTUR MIKROPROSESOR Z80. Yoyo somantri Dosen Jurusan Pendidikan Teknik Elektro FPTK Universitas Pendidikan Indonesia ARSITEKTUR MIKROPROSESOR Z80 Yoyo somantri Dosen Jurusan Pendidikan Teknik Elektro FPTK Universitas Pendidikan Indonesia Pendahuluan Pada bab ini akan dibahas tentang tujuan perkuliahan, arsitektur mikroprosesor

Lebih terperinci

PROGRAM STUDI S1 SISTEM KOMPUTER UNIVERSITAS DIPONEGORO. Oky Dwi Nurhayati, ST, MT

PROGRAM STUDI S1 SISTEM KOMPUTER UNIVERSITAS DIPONEGORO. Oky Dwi Nurhayati, ST, MT PROGRAM STUDI S1 SISTEM KOMPUTER UNIVERSITAS DIPONEGORO Oky Dwi Nurhayati, ST, MT email: [email protected] 1 Central Processing Unit CPU terdiri dari : - Bagian data (Datapath) yang berisi register register

Lebih terperinci

William Stallings Computer Organization and Architecture. Chapter 9 Set Instruksi: Karakteristik dan Fungsi

William Stallings Computer Organization and Architecture. Chapter 9 Set Instruksi: Karakteristik dan Fungsi William Stallings Computer Organization and Architecture Chapter 9 Set Instruksi: Karakteristik dan Fungsi 1 Set instruksi? Kumpulan instruksi lengkap yang dimengerti oleh CPU Kode mesin Biner Kode assembly

Lebih terperinci

SISTEM KOMPUTER.

SISTEM KOMPUTER. SISTEM KOMPUTER Salahuddin, SST Email : [email protected] [email protected]@gmail Web Site : www.salahuddinali.com ELEMEN FUNGSIONAL UTAMA SISTEM KOMPUTER. INTERFACE EXTERNAL UNIT

Lebih terperinci

SISTEM MIKROPROSESOR RIZAL SURYANA JURUSAN TEKNIK ELEKTRO - UNJANI

SISTEM MIKROPROSESOR RIZAL SURYANA JURUSAN TEKNIK ELEKTRO - UNJANI SISTEM MIKROPROSESOR RIZAL SURYANA JURUSAN TEKNIK ELEKTRO - UNJANI Sistem Mikroprosesor? Sistem Gabungan dari beberapa elemen atau komponen yang membentuk suatu fungsi tertentu Mikroprosesor Sebuah chip

Lebih terperinci

Kuis : Bahasa Rakitan (UAS)

Kuis : Bahasa Rakitan (UAS) Kuis : Bahasa Rakitan (UAS) Nama NIM Kelas :.. :.. :.. (Jawaban dikerjakan pada lembar soal ini, dikumpulkan melalui asisten dengan print out paling lambat dan email ke [email protected]) Teknis pengumpulan

Lebih terperinci

Simple As Possible (SAP) - 2. Abdul Syukur

Simple As Possible (SAP) - 2. Abdul Syukur Simple As Possible (SAP) - 2 Abdul Syukur [email protected] http://skurlinux.blogspot.com 053740514 Arsitektur Komputer SAP-2 Persamaan dengan SAP-1 : Sama-sama komputer bit. Kesamaan ini dapat

Lebih terperinci

Sejarah mikroprosessor

Sejarah mikroprosessor Sejarah mikroprosessor adiatma [email protected] Abstrak Mikroprosessor, dikenal juga dengan sebutan central processing unit (CPU) artinya unit pengolahan pusat. CPU adalah pusat dari proses perhitungan

Lebih terperinci

Pertemuan ke 7 Mode Pengalamatan. Computer Organization Eko Budi Setiawan

Pertemuan ke 7 Mode Pengalamatan. Computer Organization Eko Budi Setiawan Pertemuan ke 7 Mode Pengalamatan Computer Organization Eko Budi Setiawan Mode Pengalamatan Mengatasi keterbatasan format instruksi Dapat mereferensi lokasi memori yang besar Mode pengalamatan yang mampu

Lebih terperinci

Soal Komunikasi Data Kelas XI TKJ

Soal Komunikasi Data Kelas XI TKJ Soal Komunikasi Data Kelas XI TKJ PAKET A 1. Tempat penyimpanan primer yang bersifat mudah hilang (volatile) dikarenakan hilang saat listrik padam adalah... a. Random Access Memory b. Read Only Memory

Lebih terperinci

BAB I TUGAS MATA KULIAH SISTEM MIKROPROSESOR DOSEN PEMBERI TUGAS : FATAH YASIN, ST, MT.

BAB I TUGAS MATA KULIAH SISTEM MIKROPROSESOR DOSEN PEMBERI TUGAS : FATAH YASIN, ST, MT. 1 BAB I TUGAS MATA KULIAH SISTEM MIKROPROSESOR DOSEN PEMBERI TUGAS : FATAH YASIN, ST, MT. A. Deskripsi Tugas 1. Jelaskan perbedaan mikroprosesor dan mikrokontroler. 2. Jelaskan mode-mode pengalamatan yang

Lebih terperinci

Set Instruksi. Set Instruksi. Set Instruksi adalah kumpulan

Set Instruksi. Set Instruksi. Set Instruksi adalah kumpulan Bab 10 Disusun Oleh : Rini Agustina, S.Kom, M.Pd Definisi: lengkap instruksi yang dapat adalah kumpulan dimengerti CPU Sifat2: 1. Merupakan Kode Mesin 2. Dinyatakan dalam Biner 3.Biasanya digunakan dalam

Lebih terperinci

MODUL I PENGENALAN ASSEMBLY

MODUL I PENGENALAN ASSEMBLY MODUL I PENGENALAN ASSEMBLY Apakah bahasa assembly? Bahasa assembly adalah bahasa pemrograman dengan korespondensi satu-satu antara perintahperintah/pernyataannya dan bahasa mesin komputer. Bahasa assembly

Lebih terperinci

Arsitektur SAP-2 W BUS ACKNOWLEDGE HEXADECIMAL KEYBOARD ENCODER ACCUMULATOR INPUT PORT 1 ALU FLAGS READY INPUT PORT 2 SERIAL IN PROGRAM COUNTER TMP

Arsitektur SAP-2 W BUS ACKNOWLEDGE HEXADECIMAL KEYBOARD ENCODER ACCUMULATOR INPUT PORT 1 ALU FLAGS READY INPUT PORT 2 SERIAL IN PROGRAM COUNTER TMP W BUS ACKNOWLEDGE HEXADECIMAL KEYBOARD ENCODER 16 ACCUMULATOR INPUT PORT 1 READY SERIAL IN 0 7 INPUT PORT 2 ALU 2 FLAGS PROGRAM COUNTER 16 TMP MAR 16 B 16 64 K MEMORY C Arsitektur SAP-2 MDR OUTPUT PORT

Lebih terperinci

Set Instruksi & Mode Pengalamatan. Team Dosen Telkom University 2016

Set Instruksi & Mode Pengalamatan. Team Dosen Telkom University 2016 Set Instruksi & Mode Pengalamatan Team Dosen Telkom University 2016 Karakteristik Instruksi Mesin Set intruksi adalah kumpulan lengkap dari instruksi yang dapat dieksekusi oleh CPU Set instruksi adalah

Lebih terperinci

Mikroprosesor. Nuryono Satya Widodo, S.T.,M.Eng. Mikroprosesor 1

Mikroprosesor. Nuryono Satya Widodo, S.T.,M.Eng. Mikroprosesor 1 Mikroprosesor Nuryono Satya Widodo, S.T.,M.Eng. Mikroprosesor 1 Mikroprosesor Mikroprosesor(µP): suatu rangkaian digital yang terdiri atas 3 bagian utama, yaitu : ALU (Arithmetic and Logic Unit), Register

Lebih terperinci

Arsitektur Komputer, Mikroprosesor dan Mikrokontroller. TTH2D3 Mikroprosesor

Arsitektur Komputer, Mikroprosesor dan Mikrokontroller. TTH2D3 Mikroprosesor Arsitektur Komputer, Mikroprosesor dan Mikrokontroller TTH2D3 Mikroprosesor Organisasi berkaitan dengan fungsi dan desain bagian-bagian sistem komputer digital yang menerima, menyimpan dan mengolah informasi.

Lebih terperinci

Pengantar Teknologi Informasi A. Pertemuan 7. Prossesor & Memori

Pengantar Teknologi Informasi A. Pertemuan 7. Prossesor & Memori Pertemuan 7. Prossesor & Memori P7. Prosesor & Memori Missa Lamsani 1 Processor dan Memori Alat pemroses adalah alat dimana instruksiinstruksi program diproses untuk mengolah data yang sudah dimasukan

Lebih terperinci

BAB IV IMPLEMENTASI DAN PENGUJIAN IMPLEMENTASI DAN PENGUJIAN

BAB IV IMPLEMENTASI DAN PENGUJIAN IMPLEMENTASI DAN PENGUJIAN BAB IV IMPLEMENTASI DAN PENGUJIAN IMPLEMENTASI DAN PENGUJIAN Perintah-perintah Mikroprosesor INTEL 8088/8086 yang didukung di dalam perangkat lunak ini adalah modus pengalamatan (MOV), penjumlahan (ADD),

Lebih terperinci

ORGANISASI SISTEM KOMPUTER & ORGANISASI CPU Oleh: Priyanto

ORGANISASI SISTEM KOMPUTER & ORGANISASI CPU Oleh: Priyanto ORGANISASI SISTEM KOMPUTER & ORGANISASI CPU Oleh: Priyanto Komputer Digital adalah mesin elektronik yang dapat melakukan operasi- operasi aritmatik dan lojik. Komputer digital terdiri dari sistem interkoneksi

Lebih terperinci

MEMULAI MEMPROGRAM DI DOS. Struktur Assambler. Menggunakan Debug dari DOS

MEMULAI MEMPROGRAM DI DOS. Struktur Assambler. Menggunakan Debug dari DOS MEMULAI MEMPROGRAM DI DOS Tools yang perlu digunakan: Sistem operasi Microsoft DOS yang dilengkapi dengan debug.exe atau debug.com Turbo Assembler (TASM) atau Microsfot Macro Assembler (MASM) Turbo debugger

Lebih terperinci

MAKALAH MODE DAN FORMAT PENGALAMATAN SET INSTRUKSI. Nama : Annisa Christyanti Kelas : XI TJA 3 NIS :

MAKALAH MODE DAN FORMAT PENGALAMATAN SET INSTRUKSI. Nama : Annisa Christyanti Kelas : XI TJA 3 NIS : MAKALAH MODE DAN FORMAT PENGALAMATAN SET INSTRUKSI Nama : Annisa Christyanti Kelas : XI TJA 3 NIS : 3103113017 TEKNIK JARINGAN AKSES SMK TELKOM SANDHY PUTRA PURWOKERTO TAHUN AJARAN 2014/2015 Mode dan Format

Lebih terperinci

Hal-hal yang perlu dilakukan CPU adalah : 1. Fetch Instruction = mengambil instruksi 2. Interpret Instruction = Menterjemahkan instruksi 3.

Hal-hal yang perlu dilakukan CPU adalah : 1. Fetch Instruction = mengambil instruksi 2. Interpret Instruction = Menterjemahkan instruksi 3. PERTEMUAN 1. Organisasi Processor #1 Hal-hal yang perlu dilakukan CPU adalah : 1. Fetch Instruction = mengambil instruksi 2. Interpret Instruction = Menterjemahkan instruksi 3. Fetch Data = mengambil data

Lebih terperinci

Organisasi & Arsitektur Komputer

Organisasi & Arsitektur Komputer Organisasi & Arsitektur Komputer 1 Set Instruksi Eko Budi Setiawan, S.Kom., M.T. Eko Budi Setiawan [email protected] www.ekobudisetiawan.com Teknik Informatika - UNIKOM 2013 Arsitektur Komputer

Lebih terperinci

BAB V SISTEM PENGOLAHAN DATA KOMPUTER (Arsitektur Komputer) "Pengantar Teknologi Informasi" 1

BAB V SISTEM PENGOLAHAN DATA KOMPUTER (Arsitektur Komputer) Pengantar Teknologi Informasi 1 BAB V SISTEM PENGOLAHAN DATA KOMPUTER (Arsitektur Komputer) "Pengantar Teknologi Informasi" Abstraksi Sistem Komputer Secara abstrak level sebuah sistem komputer modern dari level rendah sampai level tertinggi

Lebih terperinci

Organisasi Komputer & Organisiasi Prosesor

Organisasi Komputer & Organisiasi Prosesor Organisasi Komputer & Organisiasi Prosesor Organisasi Sistem Komputer Priyanto E-mail : [email protected] Mobile: 0811282609 Program Studi Pendidikan Teknik Informatika Jurusan Pendidikan Teknik Elektronika

Lebih terperinci

Hanif Fakhrurroja, MT

Hanif Fakhrurroja, MT Pertemuan 2 Organisasi Komputer Organisasi dan Arsitektur Komputer Struktur dan Fungsi Komputer Hanif Fakhrurroja, MT PIKSI GANESHA, 2013 Hanif Fakhrurroja @hanifoza [email protected] Arsitektur & Organisasi

Lebih terperinci

BAB VII KOMPUTER SEDERHANA SAP-3 (SIMPLE AS POSSIBLE-3)

BAB VII KOMPUTER SEDERHANA SAP-3 (SIMPLE AS POSSIBLE-3) Tony Darmanto, ST / IV / TI / STMIK Widya Dharma / Hal 1 BAB VII KOMPUTER SEDERHANA SAP-3 (SIMPLE AS POSSIBLE-3) 7.1. Model Pemrograman Komputer SAP-3 adalah komputer 8-bit yang memiliki keselarasan (compatibel)

Lebih terperinci

Interfacing µp Intel 8088 dengan I/O

Interfacing µp Intel 8088 dengan I/O Interfacing µp Intel 8088 dengan I/O Setiap perangkat Input maupun Output akan memiliki nomor tersendiri (unik) untuk menandakan perangkat mana yang akan diakses oleh µp 8088. Nomor ini disebut nomor port.

Lebih terperinci

Hanif Fakhrurroja, MT

Hanif Fakhrurroja, MT Pertemuan 11 Organisasi Komputer Arsitektur Set-Set Instruksi Hanif Fakhrurroja, MT PIKSI GANESHA, 2013 Hanif Fakhrurroja @hanifoza [email protected] Apakah set Instruksi itu? Kumpulan instruksi lengkap

Lebih terperinci

Instruksi-Instruksi Pemindahan Data. Sistem Komputer Universitas Gunadarma

Instruksi-Instruksi Pemindahan Data. Sistem Komputer Universitas Gunadarma Instruksi-Instruksi Pemindahan Data Sistem Komputer Universitas Gunadarma Sekilas Tentang MOV Intruksi MOV diperkenalkan bersamasama dengan instruksi bahasa mesin yang dapat digunakan dalam bermacammacam

Lebih terperinci

MODUL PRAKTIKUM ORGANISASI SISTEM KOMPUTER

MODUL PRAKTIKUM ORGANISASI SISTEM KOMPUTER MODUL PRAKTIKUM ORGANISASI SISTEM KOMPUTER Versi 3.0 Tahun Penyusunan 2011 Tim Penyusun 1. Yuti Dewita Arimbi 2. Nurul Hidayati 3. Ulfie Hasanah 4. Stya Putra Pratama Laboratorium Teknik Informatika Jurusan

Lebih terperinci

PENGERTIAN REGISTER. Arsitektur Mikroprosesor INTEL 8086 Tinjauan Umum

PENGERTIAN REGISTER. Arsitektur Mikroprosesor INTEL 8086 Tinjauan Umum PENGERTIAN REGISTER Dalam pemrograman dengan bahasa Assembly, mau tidak mau anda harus berhubungan dengan apa yang dinamakan sebagai Register. Lalu apakah yang dimaksudkan dengan register itu sebenarnya?.

Lebih terperinci

Struktur Fungsi CPU. Mata Kuliah Arsitektur Komputer Program Studi Sistem Informasi 2013/2014 STMIK Dumai -- Materi 03 --

Struktur Fungsi CPU. Mata Kuliah Arsitektur Komputer Program Studi Sistem Informasi 2013/2014 STMIK Dumai -- Materi 03 -- Struktur Fungsi CPU Mata Kuliah Arsitektur Komputer Program Studi Sistem Informasi 2013/2014 STMIK Dumai -- Materi 03 -- This presentation is revised by @hazlindaaziz, STMIK, 2014 Main Material: Acknowledgement

Lebih terperinci

Mikroposesor-berbasis Sistem PC

Mikroposesor-berbasis Sistem PC Mikroposesor-berbasis Sistem PC Perkembangan µp Mikroprosesor pertama adalah intel 4004 yang dikenalkan tahun 1971, tetapi kegunaan mikroprosesor ini masih sangat terbatas, hanya dapat digunakan untuk

Lebih terperinci

Pada pembahasan kali ini, digunakan instruksi MOV untuk menjelaskan mode pengalamatan data. Format penulisannya adalah :

Pada pembahasan kali ini, digunakan instruksi MOV untuk menjelaskan mode pengalamatan data. Format penulisannya adalah : Pada pembahasan kali ini, digunakan instruksi MOV untuk menjelaskan mode pengalamatan data. Format penulisannya adalah : MOV Reg2,Reg1 MOV disebut sebagai opcede Reg1 dan Reg2 disebut sebagai operand Reg1

Lebih terperinci

Pertemuan ke 6 Set Instruksi. Computer Organization Dosen : Eko Budi Setiawan

Pertemuan ke 6 Set Instruksi. Computer Organization Dosen : Eko Budi Setiawan Pertemuan ke 6 Set Instruksi Computer Organization Dosen : Eko Budi Setiawan Tujuan Memahami representasi set instruksi, dan jenis-jenis format instruksi Mengetahui jenis-jenis type operand yang digunakan

Lebih terperinci

Bahasa rakitan/assembly Language

Bahasa rakitan/assembly Language Bahasa rakitan/assembly Language Tata Sumitra M.Kom Website: www.tatasumitra.com Email: [email protected] Penilaian Absen 10 % + Tugas 20 % +Mid 30% + UAS 40% = NA 100 % 80 < NA

Lebih terperinci

Blok sistem mikrokontroler MCS-51 adalah sebagai berikut.

Blok sistem mikrokontroler MCS-51 adalah sebagai berikut. Arsitektur mikrokontroler MCS-51 diotaki oleh CPU 8 bit yang terhubung melalui satu jalur bus dengan memori penyimpanan berupa RAM dan ROM serta jalur I/O berupa port bit I/O dan port serial. Selain itu

Lebih terperinci

BAB II LANDASAN TEORI LANDASAN TEORI

BAB II LANDASAN TEORI LANDASAN TEORI BAB II LANDASAN TEORI LANDASAN TEORI 2.1 Bahasa-Bahasa Komputer Pemakaian Komputer dewasa ini telah sedemikian pesatnya sejalan dengan kemajuan teknologi Komputer itu sendiri. Berbagai bidang seperti Industri,

Lebih terperinci

Simple As Posible 2 (bag-1)

Simple As Posible 2 (bag-1) Simple As Posible 2 (bag-1) (Pertemuan ke-17) Disusun ulang oleh: Andrian Rakhmatsyah Diedit ulang oleh: Endro Ariyanto Prodi S1 Teknik Informatika Fakultas Informatika Universitas Telkom Maret 2016 Arsitektur

Lebih terperinci

Struktur CPU 3/23/2011

Struktur CPU 3/23/2011 Central Processing Unit Merupakan komponen terpenting dari sistem komputer Komponen pengolah data berdasarkan instruksi yang diberikan kepadanya Dalam mewujudkan fungsi dan tugasnya, CPU tersusun atas

Lebih terperinci

Arsitektur dan Organisasi Komputer Set Intruksi

Arsitektur dan Organisasi Komputer Set Intruksi 5/21/2015 Arsitektur dan Organisasi Komputer Set Intruksi 1 Set instruksi? Kumpulan instruksi lengkap yang dimengerti oleh CPU Kode mesin Biner Kode assembly Gembong Edhi Setyawan s1 / TI / semester 3

Lebih terperinci