Sistem Komputer - Struktur dan Fungsi CPU (Bab 10)(kelas X)
BAB 10
Struktur dan Fungsi CPU
Kompetensi Dasar
3.10 Menganalisis struktur CPU dan fungsi CPU.
4.10 Menyajikan rangkaian internal CPU.
Pendahuluan
Masih ingat dengan encoder dan decoder pada materi pada Bab 4? Setiap data yang di-input-kan oleh peranti input akan diubah menjadi bilangan biner, kemudian operasi aritmetika atau operasi logika akan dilakukan terhadap data tersebut. Setelah itu, hasilnya akan diubah menjadi bentuk desimal atau karakter yang mudah dibaca dan dipahami oleh manusia melalui peripheral output. Unit yang dapat melakukan proses operasi aritmetika dan logika adalah ALU. Bagaimana ALU dan CU dapat bekerja? Mari baca dan pahami materi pada bab berikut.
(A) Operasi Dasar ALU
Seperti yang telah dijelaskan pada bab sebelumnya bahwa komponen dalam CPU terdiri atas empat bagian, seperti berikut.
1. ALU (Arithmetic Logic Unit)
2. CU (Control Unit)
3. Registers
4. CPU Interconnection
Gambar 10.2 Skema rangkaian CPU dan peripheral dalam komputer.
Jika diperhatikan lebih saksama, konsep input-proses- output bagan diagram pada Gambar 10.2 merupakan rangkaian kerja yang terjadi dalam sebuah sistem komputer. CPU akan melakukan operasi jika memperoleh nilai masukan melalui perangkat masukan atau input devices dan akan menghasilkan keluaran yang akan dikirimkan ke output devices. Contohnya untuk menjumlahkan dua bilangan, apabila A = 2 dan B = kedua bilangan tersebut perlu dioperasikan dengan operator (+) atau penjumlahan. Algoritme yang disusun untuk memecahkan masalah tersebut merupakan susunan urutan langkah atau prosedur kecil yang menyatakan perintah mesin. Jika diilustrasikan dalam bentuk rangkaian internal sederhana, sebuah unit pemroses secara manual-elektronik dapat dilihat dalam ilustrasi berikut.
Gambar 10.3 Rangkaian internal CPU.
Contoh
Mari buka kembali materi pada Bab 4. Tentu Anda masih ingat dengan konsep encoder dan decoder. Gambar 10.3 mengilustrasikan operasi penjumlahan dua bilangan A dan B. Untuk memasukkan nilai bilangan A dan B, diperlukan dua buah peralatan input keyboard. Ketika tombol keyboard ditekan, nilai input desimal tersebut akan diubah menjadi nilai biner dalam format nilai Binary Coded Decimal atau BCD oleh peranti encoder. Setelah nilai bilangan A dan B di-input-kan, dilanjutkan dengan operasi penjumlahan berdasarkan kode tertentu oleh ALU (Arithmetic Logic Unit) dan hasilnya di-decode dari format BCD ke format desimal agar lebih mudah dibaca manusia. Format keluaran lainnya adalah BCD to seven segment display, yaitu mengubah bentuk nilai keluaran menjadi urutan nyala lampu LED sebanyak 7 segment menyerupai format angka. Biasanya format tersebut dikirimkan ke peranti output seperti monitor. Untuk melakukan simulasi sederhana mengenai proses sebuah ALU dalam CPU bekerja melakukan operasi aritmetika dapat dilihat pada contoh berikut.
Contoh
Menjalankan simulasi proses aritmetika di unit ALU menggunakan aplikasi simulasi Multimedia Logic.
1. Untuk menjalankan aplikasi simulasi ini, terdapat beberapa syarat yang harus dilakukan,
yaitu:
a. Siswa dibagi menjadi kelompok-kelompok kecil, dengan anggota maksimal tiga siswa.
b. Setiap kelompok dilengkapi dengan seperangkat komputer atau laptop yang telah terpasang minimal OS Windows XP atau versi setelahnya.
c. Laptop atau komputer tersebut terkoneksi dengan internet.
2. Download aplikasi Multimedia Logic pada situs http://multimedia-logic.software.informer. com/download/
3. Selanjutnya, lakukan instalasi aplikasi tersebut dengan default direktori kerja berada di C:\ Program Files\Multimedia Logic.
4. Jalankan aplikasi tersebut dengan mengklik Start-Programs-Multimedia Logic-Multimedia Logic.
Gambar 10.4 Multimedia Logic.
5. Buka menu File-Open, kemudian pilih file C:\Program Files (x86)\Multimedia Logic\Examples\ Devices\ALU.LGI sehingga muncul diagram contoh kerja unit ALU dengan dua buah papan input keyboard yang berisi tombol-tombol bilangan heksadesimal.
Gambar 10.5 Example ALU logic.
6. Klik tombol Play Simulation.
7. Lakukan percobaan operasi aritmetika dengan menjumlahkan bilangan 7 dan 9. Untuk melakukan, tekan tombol 7 pada keyboard Arg A dan tombol 9 pada keyboard Arg B. Setelah itu, klik komponen Function yang bertugas menyeleksi jenis operator yang akan dilakukan, pilihlah operasi A+B.
8. Perhatikan hasilnya pada LED 7 segment di bagian label Result.
Simulasi pada aplikasi Multimedia Logic menggambarkan rangkaian proses dalam unit ALU yang mewakili kerja processor secara manual-elektronik. Maksudnya, nilai input dari keyboard akan langsung dimasukkan dan dieksekusi dengan operator tertentu berdasarkan sinyal dari komponen selector operasi. Selector akan menentukan operator yang digunakan, baik itu operator aritmetika atau logika. Hasilnya juga masih sederhana, karena hanya menggunakan dua peranti LED 7 segment untuk mewakili keluaran hasil operasi yang dilakukan unit ALU.
Sementara itu, proses yang terjadi pada unit processor tidak dilakukan melalui tombol secara manual, melainkan melalui sinyal atau instruksi yang tersimpan pada register internal CPU. CPU akan mengambil instruksi dari alamat sebuah memori dan meletakkannya pada Instruction Register (IR). Adapun untuk pengambilan instruksi selanjutnya pada alamat memori, akan disimpan dan diatur oleh Program Counter atau register PC pada CPU. Susunan proses dalam pengambilan instruksi dan proses eksekusi melalui register-register CPU adalah sebagai berikut.
Gambar 10.6 Rangkaian proses instruksi jalur data bus tunggal dalam CPU.
1. Processor akan mengambil instruksi berdasarkan tanda dari PC register, kemudian diletakkan ke dalam IR register, IR ← [[PC]]
2. Setelah itu, alamat instruksi memori di dalam PC akan bertambah sejumlah 1 sehingga formatnya menjadi PC ← [PC] + 1
3. Selanjutnya, CPU akan mengerjakan instruksi yang tersimpan pada IR Register.
Register Y dan Z merupakan register internal dalam CPU yang tidak dikenal oleh pemrogram untuk melakukan modifikasi data. Register tersebut hanya digunakan sebagai memori penyimpan sementara ketika terjadi proses operasi aritmetika atau logika pada unit ALU.
Zona Aktivitas
A. Uji Pengetahuan (Nilai Pengetahuan I)
1. Jelaskan fungsi control unit dalam processor.
2. Jelaskan cara kerja ALU menurut pengertian Anda.
3. Apa yang dimaksud dengan decoder?
4. Apa yang dimaksud dengan encoder?
5. Apa hubungan encoder, ALU, dan decoder? Gambarkan konsep kerjanya menggunakan flowchart.
B. Tugas Praktikum (Nilai Praktik I)
1. Buat kelompok dengan jumlah anggota sebanyak tiga siswa.
2. Untuk melakukan praktik ini, ada beberapa persyaratan yang harus disediakan terlebih dahulu, antara lain:
a. satu perangkat komputer dan
b. OS Windows, minimal Windows XP atau versi di atasnya.
3. Tugas kelompok:
a. lakukan analisa terhadap cara kerja setiap komponen dalam file contoh ALU.LGI pada aplikasi Multimedia Logic,
b. buat konsep kerjanya menggunakan flowchart untuk menggambarkan proses kerja sebuah proses operasi aritmetika dalam ALU, dan
c. presentasikan hasilnya di depan kelas.
C. Tugas Eksperimen (Nilai Proyek I)
1. Lakukan analisis terhadap operasi aritmetika berikut menggunakan aplikasi Multimedia Logic pada file contoh ALU.LGI.
2. Presentasikan di depan kelas hasil analisis kelompok Anda tentang cara kerja ALU berdasarkan analisis dari percobaan tersebut.
(B) Register
Pada subbab sebelumnya, sudah dijelaskan mengenai jenis-jenis register, yaitu register yang dapat diprogram dan register yang hanya berfungsi sebagai control dan sinyal. Pada bagian ini, akan dijelaskan rincian register dan cara mengimplementasikannya dalam sebuah instruksi menggunakan bahasa assembly atau bahasa mesin. Register-register tersebut adalah sebagai berikut.
1. Pointer dan Index Register
Kategori register jenis ini meliputi register SP, BP, SI, dan DI, dengan kapasitas setiap register adalah 16 bit. Fungsi utama kelompok register ini adalah sebagai penunjuk atau pointer terhadap suatu alamat data di memori.
• Register SP atau Stack Pointer dalam penggunaannya biasanya berpasangan dengan register segment SS atau biasa disebut (SS:SP), yang berguna untuk mereferensi sebuah alamat dari stack.
• Register BP atau Base Pointer dalam pengoperasiannya selalu berpasangan dengan register SS atau biasa disebut (SS:BP), yang berguna untuk merekam alamat di memori tempat data disimpan.
• Register Sl atau Source Index dan register DI atau Destination Index sering digunakan dalam sebuah operasi string dengan cara mengambil data secara langsung menuju alamat memori sesuai data yang disimpan oleh kedua register ini.
Sementara itu, pada tipe processor 80386, selain beberapa register yang telah disebutkan sebelumnya, terdapat tambahan register 32 bit, antara lain EDI, ESI, ESP, dan EBP.
2. Segment Register
Berikut ini yang termasuk jenis segmen register adalah SS, CS, DS, dan ES dengan kapasitas setiap register sebesar 16 bit. Fungsi utama dari kategori register ini adalah untuk menunjukkan alamat dari suatu segmen.
Pointer adalah variabel yang berisi alamat memori, berbeda dengan variabel biasa yang berisi suatu nilai bit.
• Register SS atau Stack Segment berguna sebagai penunjuk lokasi segmen yang digunakan oleh stack. Dalam pengoperasian kedua register ini harus memperhatikan detail dan tujuan dari modifikasi datanya, karena jika salah dalam melakukan pengisian akan berdampak pada rusaknya logika program yang dibuat.
• Register CS atau Code Segment memiliki kegunaan sebagai penunjuk lokasi segmen aktif.
• Register DS atau Data Segment berisi data yang menjadi penunjuk alamat segmen tempat data yang digunakan oleh program. Pada kasus tertentu seperti program residen, register ini akan dimodifikasi isinya, tetapi pada umumnya jarang dilakukan perubahan pada register ini.
• Register ES atau Extra Segment, merupakan register tambahan yang tidak memiliki tugas tertentu seperti register-register lainnya. Biasanya, register ini digunakan untuk menyimpan data yang berisi alamat tertentu dalam memori. Untuk prosesor generasi 80386, extra segment register ditambah dengan dua register segment baru sebesar 16 bit, yaitu FS dan GS.
Contoh
Menampilkan string dengan memodifikasi register DS menggunakan bahasa Assembly.
1. Buka aplikasi note seperti notepad, notepad++, atau sublime.
2. Ketik source code berikut.
3. Save kode tersebut dengan nama pesan.asm, simpan dalam folder bernama "coba" dalam direktori C:\ASM yang telah dibuat pada praktikum bab sebelumnya.
4. Compile file tersebut dengan tasm dan tlink (untuk menghasilkan file .exe).
5. Jalankan program pesan.exe dengan mengetikkan lokasi file pesan.exe tersimpan, yaitu: C:\coba\pesan.exe.
3. General Purposes Register
General purposes register secara garis besar dibagi menjadi empat jenis register, yaitu sebagai berikut.
a. AX digunakan sebagai register yang menangani operasi aritmetika, khususnya operasi pengurangan serta pembagian.
b. BX digunakan untuk menyimpan data alamat offset sebuah segmen.
c. CX digunakan untuk menentukan banyaknya looping atau perulangan yang terjadi pada operasi perulangan dalam sebuah program.
d. DX memiliki fungsi utama untuk menyimpan sisa hasil dari operasi pembagian data 16 bit.
Karakteristik khusus dari kelompok register ini adalah
kapasitas sebesar 16 bit untuk setiap jenis register yang dapat dipisah menjadi 2 bagian sama besar, 8 bit dengan kategori High disimbolkan dengan H sedangkan kategori Low disimbolkan dengan L. Adapun untuk processor jenis 80386 terdapat register tambahan sebesar 32 bit, yaitu EAX, EBX, ECX dan EDX.
Register CX disebut juga sebagai counter karena fungsinya.
Contoh
Membuat perulangan menggunakan bahasa Assembly dengan memodifikasi register CX dan DL.
1. Buka aplikasi note seperti notepad, notepad++, atau sublime.
2. Ketik source code berikut.
3. Simpan kode tersebut dengan nama loop.asm, simpan dalam folder bernama "coba" dalam direktori C:\ASM.
4. Compile dengan tasm dan tlink/t.
5. Jalankan hasil programnya dengan mengetikkan lokasi file loop.com tersimpan, yaitu C:\coba\loop.com.
4. Flag Registers
Kegunaan dari flag register adalah memberikan sinyal yang menggambarkan keadaan, sehingga hanya terdapat dua kemungkinan, yaitu ya (1) dan tidak (0). Register ini juga termasuk register 16 bit, sehingga kemungkinan nilai data yang dapat disimpan dalam register ini adalah sebanyak 16 jenis keadaan. Jenis-jenis flag dalam register pada processor tipe 8088 adalah sebagai berikut.
a. SF atau Sign Flag, berguna memberikan tanda untuk data bilangan bertanda (ingat bahwa sign digunakan sebagai penanda bilangan negatif atau komplemen). SF akan bernilai 1 jika data yang akan dioperasikan merupakan bilangan bertanda.
b. ZF atau Zero Flag akan bernilai 1 apabila keluaran atau output hasil operasi aritmetika bernilai nol.
c. OF atau OverFlow Flag akan bernilai 1 apabila terjadi Over Flow pada operasi aritmetika.
d. CF atau Carry Flag akan bernilai 1 apabila dalam operasi aritmetika terjadi kondisi borrow (pada operasi pengurangan) atau carry (pada operasi penjumlahan).
e. DF atau Direction Flag digunakan sebagai penunjuk arah proses pada operasi string.
f. NT atau Nested Task, merupakan salah satu flag yang diterapkan pada prosesor jenis 80286 dan 80386 yang berguna untuk menjamin dieksekusinya sebuah interupsi agar berjalan sesuai prosedur.
g. IOPL atau I/O Protection Level, merupakan jenis tanda atau flag pada processor 80286 dan 80386 untuk mode proteksi. Flag yang digunakan terdiri dari 2 bit.
h. PF atau Parity Flag, berguna sebagai tanda paritas sebuah bilangan, dengan tanda bit 1 menggambarkan bahwa bilangan tersebut merupakan bilangan genap.
i. IF atau Interrupt Enable Flag, apabila flag ini bernilai 0 maka processor tidak dapat menghentikan proses yang sedang berlangsung meski terdapat interupsi.
j. TF atau Trap Flag, berguna sebagai tanda atau sinyal debugging pada sebuah operasi program agar dikerjakan secara bertahap.
k. AF atau Auxiliary Flag, tanda pada flag yang digunakan untuk operasi bilangan bertipe BCD.
Untuk processor 80286 dan 80386 atau generasi setelahnya, terdapat beberapa tambahan jenis flag sebagai berikut.
a. PE atau Protection Enable, flag ini bernilai 1 jika mode yang diaktifkan adalah mode proteksi, sedangkan nilai bit 0 menunjukkan mode yang dijalankan adalah mode real.
b. TS atau Task Switched, flag yang menentukan proses perpindahan atau pergantian proses.
c. MP atau Monitor Coprocessor, berfungsi sebagai flag ketika meng-handle instruksi WAIT. Flag MP sering digunakan bersamaan dengan flag TS untuk menangani masalah tersebut.
d. EM atau Emulate Coprocessor, berfungsi untuk menentukan simulasi pada coprocessor 80287 dan 80387.
e. ET atau Extension Type, bit flag yang ditampilkan memberikan petunjuk tentang jenis coprocessor yang digunakan termasuk tipe 80287 atau 80387.
f. RF atau Resume Flag, menandakan proses yang sedang berjalan akan dilanjutkan atau tidak.
g. VF atau Virtual 8086 Mode, flag akan bernilai 1 jika proses berjalan pada mode proteksi pada mikroprosesor. Kondisi ini memberikan sinyal processor untuk menjalankan operasi pada mode real dalam sebuah operasi dengan mode proteksi.
Tabel 10.1 Struktur flag processor 8088.
5. Index Pointer Register atau IP Register
IP Register merupakan register 16 bit yang dalam penggunaannya selalu dipasangkan dengan register CS dengan format (CS:IP). Fungsi utama penggunaan register ini adalah menyatakan tentang alamat sebuah memori yang berisi instruksi yang akan dieksekusi berikutnya. Pada generasi tipe prosesor 80386, IP register ini ditambah dengan register 32 bit, yaitu register EIP.
Zona Aktivitas
A. Uji Pengetahuan (Nilai Pengetahuan II)
1. Apa yang Anda ketahui tentang register?
2. Apa fungsi dari index dan pointer register? Register apa saja yang tergolong dalam jenis register tersebut?
3. Apa perbedaan register CS dengan register DS?
4. Apa perbedaan register AX dengan register CX?
B. Tugas Praktikum (Nilai Praktik II)
1. Tugas bersifat individu.
2. Buatlah program menggunakan bahasa Assembly untuk menampilkan nama sekolah Anda, sebagai contoh "SMKN 27 Jakarta".
3. Buatlah flowchart untuk menggambarkan urutan proses yang terjadi dalam program yang Anda buat.
C. Tugas Eksperimen (Nilai Proyek II)
1. Pada eksperimen ini, Anda akan membuat program Assembler untuk menampilkan huruf "Z" yang berulang menurun sebanyak 25 kali.
2. Buatlah kelompok dengan anggota sebanyak tiga siswa.
3. Presentasikan hasil pekerjaan kelompok Anda di depan kelas.
(C) Karakter Set Instruksi pada Mesin
Pada dasarnya, arsitektur komputer dapat dikelompokkan menjadi dua bagian, yaitu sebagai berikut.
a. Instruction-Set Architecture (ISA) atau Arsitektur Set Instruksi yang mendefinisikan tentang cara mesin dikendalikan melalui instruksi-instruksi menggunakan bahasa mesin. Biasanya hal ini dilakukan oleh programmer.
b. Hardware-System Architecture (HSA)/Arsitektur Sistem Hardware yang mendefinisikan tentang subsistem mesin komputer secara hardware, baik desain logis maupun aliran proses datanya.
Pada materi bab ini, Anda akan mempelajari cara CPU melakukan operasi secara otomatis jika diberikan kumpulan perintah (instruction set) menggunakan bahasa mesin.
1. Elemen Instruksi
CPU tidak akan melakukan operasi tertentu tanpa adanya sebuah instruksi sebagai nilai input yang ditujukan kepada CPU. Sebagai contoh, penjumlahan 12 dengan 13. Pernyataan tersebut dapat diuraikan menjadi instruksi berikut.
Tabel 10.2 Pernyataan instruksi ke CPU.
Pada pernyataan di Tabel 10.2, CPU diminta untuk melakukan operasi terhadap Data 1 dan Data 2 menggunakan operator penjumlahan. Kegiatan tersebut dilakukan menggunakan perangkat input keyboard. Apakah input tersebut langsung dapat dikerjakan oleh CPU? Tentu tidak, karena input tersebut hanya sebuah pernyataan untuk menampilkan string atau output ke layar monitor. Untuk mengerjakannya, diperlukan sebuah aplikasi yang dapat menerjemahkan pernyataan tersebut menjadi sebuah instruksi kepada CPU, sebagai contoh aplikasi Calculator pada Windows, pemrograman shell script pada Linux, dan compiler bahasa pemrograman lainnya seperti pascal, C++, Java, dan PHP. Namun, aplikasi-aplikasi tersebut merupakan kategori bahasa pemrograman atau aplikasi level tinggi. Oleh karena itu, hasil instruksinya harus diterjemahkan ke dalam bahasa mesin agar dimengerti oleh CPU.
Setiap proses kerja yang dilakukan oleh CPU berdasarkan perintah atau instruksi-instruksi yang diterimanya. Instruksi tersebut merupakan perintah atau kode dalam bahasa mesin atau lebih dikenal sebagai machine instructions. Sebelumnya telah dijelaskan bahwa setiap instruksi yang dihasilkan dari aplikasi pada sistem operasi atau kompilasi sebuah bahasa pemrograman tertentu seperti Java, C, PHP harus diterjemahkan menjadi bahasa mesin agar mudah dimengerti. Namun, terdapat bahasa pemrograman tingkat rendah yang mendekati bahasa mesin yang dapat digunakan untuk memberikan instruksi pada CPU, yaitu bahasa Assembly (Assembler). Assembler mampu bekerja secara cepat dengan kapasitas file yang kecil. Akan tetapi, assembler memiliki tingkat kesulitan yang lebih tinggi dalam pengoperasiannya, karena pengguna harus menggunakan dan memodifikasi nilai-nilai register mesin secara langsung dengan bahasa yang tak lazim. Dalam satu waktu, CPU dapat menerima beberapa instruksi yang berbeda sekaligus untuk menjalankan sebuah operasi. Instruksi-instruksi inilah yang disebut dengan instruction set.
Jenis-jenis set instruksi yang dimengerti oleh CPU dapat digolongkan menjadi dua, yaitu sebagai berikut.
• CISC atau A Complex Instructions Set Computer
CISC adalah tipe komputer yang dapat mengeksekusi sebuah instruksi tunggal dengan operasi tingkat rendah, seperti mengatur beban kerja memori, mengerjakan operasi aritmetika, serta pengaksesan dan penulisan alamat di memori. Selain itu, komputer tipe ini dapat mengerjakan beberapa operasi secara sekaligus dalam sebuah mode pengalamatan sebuah instruksi yang bersifat tunggal.
Sebagai contoh, z/Architecture, PDP-11, VAX, Motorola 68k dan processor tipe x86.
• RISC atau Reduced Instructions Set Computer
Set instruksi pada RISC disederhanakan agar instruksi yang dikerjakan lebih cepat dan efisien. Jenis komputer yang mendukung RISC adalah DEC Alpha, AMD29k, ARC, ARM, Atmel AVR, Blackfin, Intel 1860 dan 1960, MIPS, Motorola 88000, PA-RISC, Power (termasuk PowerPC), SuperH, dan SPARC. Teknik inilah yang saat ini populer digunakan oleh teknologi yang memanfaatkan CPU sebagai unit pemroses, seperti Ipad dan Android.
Terdapat beberapa komponen yang harus dimiliki instruction set agar dapat dimengerti dan dikerjakan oleh CPU, yaitu sebagai berikut.
a. Operation Code atau yang lebih dikenal dengan istilah opcode merupakan elemen dalam set instruksi yang berguna sebagai petunjuk dalam menentukan jenis operasi yang harus dikerjakan oleh CPU, misalnya operasi penjumlahan.
b. Source Operand Reference adalah sumber referensi operand (data) berupa petunjuk pada CPU tentang alamat data yang harus diambil untuk dioperasikan.
c. Result Operand Reference adalah hasil referensi operand (data) atau petunjuk bagi CPU tentang perlakuan terhadap output operasi yang dihasilkan untuk disimpan pada alamat tertentu.
d. Next Instruction Reference merupakan petunjuk atau referensi pada CPU untuk mengambil (fetching) instruksi selanjutnya pada alamat tertentu setelah operasi terhadap instruksi sebelumnya selesai dikerjakan.
Gambar 10.7 Elemen set instruksi.
Namun, dalam sebuah instruksi tidak selamanya keempat komponen tersebut selalu disertakan, terkadang hanya beberapa, tergantung dari keperluan proses itu sendiri. Kumpulan instruksi atau instructions set yang dikerjakan oleh CPU seperti source and result operands dapat terletak pada beberapa jenis komponen sebagai berikut.
a. Main or Virtual memory
Instruction set dapat berada di lokasi alamat tertentu pada memori utama (sebagai contoh RAM). CPU akan mengerjakan instruksi tersebut dengan mengakses alamat memori tersebut. Pola ini dapat dijumpai pada loader sistem operasi. Sebagai, sebuah loader me-load file kernel Linux ke RAM, kemudian CPU akan mengerjakan beberapa perintah sekaligus berdasarkan kernel di RAM tersebut, seperti mengontrol hardware, me-manage hardware, dan sebagainya.
b. CPU register
Semua operasi dalam CPU akan memerlukan tempat sementara sebagai wadah atau memori penyimpan data. Register adalah komponen yang paling berperan untuk aktivitas tersebut. Data input atau operator bahkan nilai keluaran hasil operasi akan disimpan ke dalam register ini. Namun terkadang, bukan hanya data yang tersimpan, akan tetapi dapat juga berupa alamat data dalam memori utama.
c. I/O device
Instruksi atau data dalam sebuah operasi di CPU dapat tersimpan atau berada pada peralatan input-output. Sebagai contoh, dalam penggunaan kehidupan sehari-hari adalah keamanan ruangan yang menggunakan peralatan finger print. Pada sistem tersebut, pintu ruangan akan terbuka jika seseorang terdaftar pada komputer untuk mengakses ruangan berdasarkan scanning sidik jari. Ketika scanning sidik jari oleh komputer dilakukan, maka komputer akan mencari pola sidik jari tersebut dalam database. Jika sidik jari tersebut terdaftar, akses akan diberikan.
2. Simbol dan Format Instruksi
Setiap instruksi yang diberikan kepada CPU memiliki urutan bit yang mewakili elemen-elemen penting dari sebuah instruksi itu sendiri. Untuk mendeskripsikan instruksi tersebut agar dapat dengan mudah di-setting oleh pengguna, dibuatlah representasi simbolik instruksi atau yang lebih dikenal dengan mnemonic. Mnemonic adalah perintah atau instruksi yang diberikan kepada CPU untuk memodifikasi nilai-nilai register, biasanya merupakan singkatan dari suatu perintah (dalam bahasa Inggris). Berikut adalah contoh beberapa mnemonic.
Tabel 10.3 Mnemonic Atau Simbol Instruksi
Mnemonic digunakan untuk mempermudah user memberikan instruksi tanpa harus mengetik seluruh instruksi kata.
Lanjutan Tabel 10.3
Gambar 10.8 Format sederhana set instruksi.
Contoh
Mencetak angka 1 dengan mnemonic MOV DL,'1' menggunakan bahasa Assembly.
1. Buka aplikasi note seperti notepad, notepad++, atau sublime.
2. Ketik source code berikut ini.
3. Simpan kode tersebut dengan nama cetak1.asm, lalu simpan dalam folder bernama "coba" dalam direktori C:\ASM.
4. Compile dengan tasm.
5. Selanjutnya, lakukan linked dengan perintah tlink/t untuk menghasilkan file berekstensi .com. Adapun perintah tlink akan menghasilkan file .exe dari file .obj yang dihasilkan dari proses compile menggunakan perintah TASM.
6. Jalankan hasil programnya dengan mengetikkan lokasi file cetak1.com tersimpan yaitu:
7. Perbedaan file .exe dan .com hasil dari proses linked menggunakan perintah tlink adalah sebagai berikut.
3. Jenis Instruksi
Kode pada contoh sebelumnya jika dianalogikan dalam sebuah urutan perintah adalah sebagai berikut.
a. Komentar dalam pemrograman bahasa Assembly menggunakan simbol instruksi atau mnemonic disimbolkan dengan tanda; (titik koma), yang berarti pernyataan tersebut tidak dieksekusi oleh compiler.
b. Baris .MODEL SMALL merupakan deskripsi jenis program yang dibuat. Program memiliki ukuran file kurang dari 64 KB sehingga lebih cocok untuk pembuatan linked program berekstensi COM. Ada enam tipe model program yang dapat diatur, yaitu sebagai berikut.
• TINY, program yang dihasilkan hanya membutuhkan
1 segmen alamat memori sehingga lebih cocok digunakan untuk program COM.
• SMALL, didefinisikan untuk data dan code yang ditulis pada program memiliki ukuran file kurang dari 64 KB.
• MEDIUM, digunakan jika data yang digunakan pada program kurang dari 64 KB meskipun baris kode yang ditulis pada program mencapai lebih dari 64 KB.
• COMPACT, jika data pada program besarnya lebih dari 64 KB, sedangkan kode program kurang dari 64 KB.
• LARGE, apabila data dan kode program besarnya lebih dari 64 KB.
• HUGE, jika besar kapasitas data, penulisan kode program dan array data mencapai lebih dari 64 KB.
c. Kode .CODE digunakan untuk memberitahu compiler assembler tentang baris kode program yang akan mulai dieksekusi.
d. ORG 100h merupakan perintah untuk memberitahu assembler agar ketika program dijalankan, di-load pada alamat memori 100h atau 256 Byte. Fungsinya, agar lokasi memori tersebut dipersiapkan dan dikosongkan terlebih dahulu sebelum program dieksekusi sebagai tempat PSP (program segment prefix). Biasanya baris kode ini dipakai untuk membuat file .COM
e. Baris kode mulai: adalah baris yang menyatakan label di mana baris-baris kode yang harus dieksekusi assembler.
f. MOV AH,02h merupakan mnemonic untuk memindahkan nilai 02 heksa ke register AH.
g. MOV DL/1' merupakan perintah memindahkan atau memodifikasi nilai pada register DL dengan karakter '1'
h. INT 21h merupakan singkatan dari interrupt yang berarti meminta secara khusus kepada CPU untuk mengeksekusi services atau register sebelumnya.
i. INT 20h, berfungsi sebagai terminator program yang berfungsi untuk memaksa microprocessor untuk berhenti dan kembali ke mode DOS. Interrupt 20h - FFh (32 - 255) hanya terdapat pada mesin dengan DOS sebagai sistemnya, sehingga tidak bisa dijalankan pada mesin linux.
j. END merupakan baris kode sebagai penanda akhir dari kode baris program yang harus dieksekusi assembler.
Pada kasus tertentu, penggunaan MODEL TINY untuk menentukan ukuran program ketika meng-compile sebuah file COM tidak dapat digunakan karena beberapa bahasa pemrograman tingkat tinggi tidak mengenal model program tiny. Ketika memberikan sebuah instruksi kepada CPU, Anda harus memperhatikan beberapa hal seperti berikut.
a. Jenis operasi, tingkat kesulitan dan berapa jumlah operasi
yang harus dikerjakan oleh microprocessor yang berdampak terhadap kompleksitas operasi tersebut. Para ahli sering mendefinisikan hal ini sebagai operation repertoire.
b. Tipe data yang digunakan dalam operasi atau data types.
c. Format dan bentuk instruksi yang digunakan untuk mendeskripsikan operasi yang harus dikerjakan oleh CPU seperti panjang, jumlah alamat, ukuran instruksi (dalam bit) atau instruction format.
d. Jenis dan jumlah register yang dilibatkan untuk dilakukan modifikasi atau perubahan nilai selama operasi dilakukan (register).
e. Penentuan mode pengalamatan terhadap operand selama operasi dikerjakan atau addressing.
Dalam mendefinisikan instruksi, terdapat beberapa jenis format instruksi yang dapat dideskripsikan, antara lain sebagai berikut.
a. Format instruksi 1 alamat
Format instruksi 1 alamat merupakan pendeskripsian perintah untuk menggunakan sebuah Opcode terhadap sebuah operand dengan bentuk format [Opcode] [Operand1]. Contohnya ADD B. Teknik ini sering digunakan pada komputer model lama yang kurang efisien dan berakibat pada panjangnya kode perintah yang harus ditulis. Saat ini, format ini telah jarang digunakan.
b. Format instruksi 2 alamat
Format ini melibatkan sebuah Opcode dengan 2 nilai data yang berbeda dengan bentuk format [Opcode] [Operand1] [Operand2]. Sebagai contoh adalah perintah dalam kode ADD A,B yang berarti tambahkan nilai A dan B kemudian simpan hasilnya pada A. Teknik ini masih digunakan sampai sekarang.
c. Format instruksi 3 alamat
Format ini mengoperasikan sebuah instruksi dengan melibatkan lebih banyak register. Format yang digunakan adalah [Opcode][Operand1][Operand2] [Operand3]
sebagai contoh ADD Z, A, B yang berarti menjumlahkan A dan B kemudian hasilnya disimpan pada Z. Tipe format ini cenderung lebih kompleks dan sulit, karena memerlukan banyak register sehingga jarang digunakan.
Zona Aktivitas
A. Uji Pengetahuan (Nilai Pengetahuan III)
1. Tuliskan syarat-syarat yang harus dipenuhi set instruksi agar dapat dimengerti oleh mesin komputer.
2. Jelaskan lokasi yang dapat digunakan sebagai tempat penyimpanan set instruksi.
3. Jelaskan lima jenis mnemonic yang Anda ketahui.
4. Apa perbedaan mnemonic INC dengan DEC?
5. Tuliskan perbedaan file. EXE dengan .COM.
B. Tugas Praktikum (Nilai Praktik III)
1. Tugas bersifat individu.
2. Buatlah program menggunakan bahasa Assembly untuk menampilkan output di DOS Prompt seperti berikut.
NIS = ….
NAMA = ….
KELAS = ….
SEKOLAH = ….
C. Tugas Eksperimen (Nilai Proyek III)
1. Lakukan linking program di atas menggunakan perintah tlink/t dan perintah tlink, kemudian jelaskan apa perbedaan dari perintah tersebut.
2. Lakukan analisis dari hasil linking perintah tersebut pada file yang dihasilkan, baik dari sisi ukuran atau besar file atau dari sisi kecepatan eksekusi.
(D) Jenis Operand
Secara umum, tipe data yang dapat digunakan dalam sebuah instruksi dapat dikategorikan menjadi beberapa tipe, antara lain sebagai berikut.
1. Addresses Type
Adresses type biasanya digunakan untuk menentukan mode pengalamatan memori dalam bentuk heksadesimal.
2. Numbers Type
Numbers type merupakan tipe operand berupa angka atau bilangan selain huruf atau abjad yang dimulai dari 0 sampai 9 adalah sebagai berikut.
a. Integer merupakan tipe data numerik bulat yang terbagi dalam beberapa jenis, yaitu word dengan rentang nilai -32.768 hingga +32.767 (16 bit), short integer dengan rentang ±2 x (32 bit), dan long integer dengan rentang sebesar ±9 x (64 bit).
b. Floating point merupakan tipe data numerik pecahan atau yang lebih dikenal dengan istilah real. Floating point menyimpan signed integer, bilangan fraction, atau kombinasi keduanya. Ada tiga bagian dalam tipe data floating point, yaitu sign bit, eksponen, dan significant. Floating point pada keluarga processor intel dibagi menjadi tiga tipe, yaitu tipe short (32 bit) atau dikenal dengan istilah bilangan presisi tunggal, long (64 bit) atau bilangan presisi ganda, dan temporer (80 bit) atau bilangan presisi extended.
c. Desimal atau BCD (Binary Coded Decimal) dalam penggunaannya memerlukan kapasitas memori 80 bit. Setiap nilai data yang berbentuk bilangan BCD akan disimpan sebagai tipe data integer pada memori sebesar 18 bit yang terbagi dalam 9 byte memori. Sehingga 1 byte memori mengandung 2 digit bilangan. Adapun byte ke-10 hanya mengandung sign bit bilangan BCD sebesar 18 bit.
3. Characters Type
Tipe data karakter yang dapat dikenali mesin termasuk semua alfabet, simbol, maupun angka. Dalam pendeskripsian ke sebuah instruksi mesin, tipe data karakter harus berpedoman pada dua standar, yaitu sebagai berikut.
• ASCII atau American Standard Code for Information Interchange adalah kode standar atau representasi bilangan numerik yang mewakili berbagai karakter. Sebagai contoh huruf A memiliki kode ASCII 65 (desimal) atau 41 (dalam format heksadesimal).
• EBCDIC atau Extended Binary Coded Decimal Interchange Code adalah standar kode dengan lebar 8 bit untuk karakter yang digunakan pada beberapa jenis komputer IBM seperti VM, VSE, OS/390. Awalnya, EBDCID digunakan sebagai kode pada kartu lubang di komputer IBM pada awal tahun 1950 hingga 1960. Untuk detail tabel ASCII dan EBDCID dapat dilihat pada situs http://www.asciitable.com/.
4. Logical Data Type
Logical data hanya memiliki dua jenis data, yaitu true (1) atau false (0). Selain tipe operand dasar, ada beberapa tambahan tipe operand yang dapat digunakan ketika menjalankan instruksi. Keluarga Processor pentium, dapat menangani beberapa jenis operand, di antaranya byte (8 bit), word (16 bit), doubleword (32 bit), dan quadword (64 bit). Untuk mendeskripsikan tipe operand ke dalam sebuah variabel dalam bahasa Assembler terdapat di beberapa kode tertentu yang harus digunakan, contohnya terdapat pada tabel berikut.
Tabel 10.4 Tipe Operand Assembler.
Contoh
Mencetak karakter "#" dengan mengonversi kode desimal 35 melalui pendefinisian tipe operand pada variabel A menggunakan bahasa Assembler.
1. Buka aplikasi note seperti notepad, notepad++, atau sublime.
2. Ketik source code berikut.
3. Simpan kode tersebut dengan nama operand.asm, simpan dalam folder bernama "coba" dalam direktori C:\ASM.
4. Compile dengan tasm dan tlink.
5. Lihat data yang tersimpan pada memori komputer dengan menggunakan perintah debug C:\coba\operand.com.
Gambar 10.9 Debug operand.COM.
6. Jalankan hasil programnya dengan mengetikkan lokasi file operand.com tersimpan, yaitu C:\coba\operand.com.
7. Penjelasan kode program, yaitu sebagai berikut.
• JMP mulai digunakan untuk melompat ke label mulai.
• A DB 35 men-setting variabel A dengan alokasi memori 1 byte dengan nilai awal =2.
• B DB 2,3,1,9,? men-setting variabel B dengan alokasi memori sebesar 5 byte yang masing-masing byte berisi nilai 2,3,1,9 dan yang terakhit tidak ada isinya.
• C DB 3 DUP(8) men-setting variabel C dengan alokasi memori sebesar 4 byte data dengan nilai data sebesar 8 bit sebanyak 4 buah (teknik duplikasi yang dapat digunakan untuk array).
• D DB 'SMK Bisa' men-setting variabel D dengan alokasi memori sebesar 8 byte dengan 8 karakter (string = SMK Bisa). Tipe data DB digunakan sebagai tipe data ketika mendeskripsikan sebuah data string. Apabila mendefinisikan string dengan fungsi DW, maka hanya 2 karakter saja yang dapat tersimpan.
• E DW ? men-setting variabel E dengan alokasi memori sebesar 1 word tanpa isi nilai data.
• F DW ?,?,?,? men-setting variabel F dengan alokasi memori sebesar 4 word tanpa ada nilai data yang diisi.
• G DW 7 DUP(?) men-setting variabel G dengan alokasi memori sebesar kapasitas 7 word tanpa diketahui isi nilai datanya.
• HDD ?,? men-setting variabel H dengan alokasi memori sebesar 2 Double Word tanpa nilai data yang diketahui.
• I DF ?,?,? men-setting variabel / dengan alokasi memori sebesar 3 FarWords tanpa ada nilai awal.
Keterangan: Arti kata "?" berarti tidak ada nilai data yang diisikan ke dalam suatu memori.
Zona Aktivitas
A. Uji Pengetahuan (Nilai Pengetahuan IV)
1. Apa yang Anda ketahui tentang operand, operasi dan eksekusi?
2. Tuliskan dan jelaskan jenis-jenis operand yang dapat dioperasikan CPU.
3. Apa yang Anda ketahui tentang ASCII?
4. Tuliskan dan jelaskan tipe-tipe data yang dapat digunakan dalam bahasa mesin Assembler.
5. Perhatikan potongan kode program assembler berikut.
Apa maksud dari baris kode C DB 3 DUP(8)....
B. Tugas Praktikum (Nilai Praktik IV)
1. Tugas bersifat individu.
2. Buat program menggunakan bahasa Assembly untuk menyimpan data ke variabel dengan ketentuan sebagai berikut.
a. Variabel A memiliki 4 byte dengan nilai 3,5,6,7.
b. Variabel B memiliki 5 QuadWord dengan nilai data yang tidak diketahui.
C. Tugas Eksperimen (Nilai Proyek VI)
Analisis program yang Anda buat menggunakan perintah debug.
(E) Jenis Operasi
Dari penjelasan subbab sebelumnya, dapat disimpulkan bahwa jenis operasi dalam set instruksi dapat dikelompokkan menjadi beberapa jenis, yaitu sebagai berikut.
1. Data processing merupakan perintah untuk melakukan pengolahan data seperti pengoperasian aritmetika (ADD, SUB, MTY, DIV, INC, DEC), logika (OR, AND, NOT, SHR, SHL) dan konversi data.
Tabel 10.5 Jenis instruksi data processing.
Contoh
Melakukan operasi aritmetika dengan menjumlahkan dua bilangan menggunakan fungsi ADD pada bahasa Assembly.
1. Buka aplikasi note seperti notepad, notepad++, atau sublime.
2. Ketik source code berikut.
3. Simpan kode tersebut dengan nama jumlah.asm, simpan dalam folder bernama "coba" dalam direktori C:\ASM.
4. Compile dengan tasm dan tlink.
5. Lihat data yang tersimpan pada memori komputer dengan menggunakan perintah debug C:\coba\jumlah.com
Gambar 10.10 Debug jumlah .COM.
Contoh
Melakukan operasi aritmetika dengan mengurangkan dua bilangan menggunakan fungsi SUB pada bahasa Assembly.
1. Buka aplikasi note seperti notepad, notepad++, atau sublime.
2. Ketik source code berikut ini.
3. Simpan kode tersebut dengan nama kurangi.asm, simpan dalam folder bernama "coba" dalam direktori C:\ASM.
4. Compile dengan tasm dan tlink.
5. Lihat data yang tersimpan pada memori komputer dengan menggunakan perintah debug C:\coba\kurangi.com.
Gambar 10.11 Debug jumlah .COM.
6. Lakukan analisa hasil debug file .COM.
Melakukan operasi logika dengan mnemonic AND pada register AX = 0001b dan register BX=0101b dengan bahasa Assembly.
1. Buka aplikasi note seperti notepad, notepad++, atau sublime.
2. Ketik source code berikut.
3. Simpan kode tersebut dengan nama and.asm, simpan dalam folder bernama "coba" dalam direktori .C:\ASM.
4. Compile dengan tasm dan tlink.
5. Lakukan analisis hasil debug file .COM. Tekan "r" untuk melihat nilai awal register sebelum dilakukan operasi, kemudian tekan "t" untuk melihat bahwa register AX, nilainya sudah berubah atau belum. Selanjutnya, tekan "t" dan perhatikan perubahan nilai pada register BX. Tekan "t" dan lihat nilai register-registernya. Untuk keluar, tekan "q".
Gambar 10.12 Debugging logika AND.
2. Data storage merupakan jenis perintah atau instruksi untuk melakukan penyimpanan data, pemindahan data atau peng- copy-an data ke memori seperti STOR, LOAD dan MOV.
Tabel 10.6 Jenis instruksi data storage.
3. Data movement atau instruksi untuk melakukan perpindahan data ke peranti I/O.
Tabel 10.7 Jenis instruksi kontrol I/O.
4. Program flow control merupakan instruksi yang berfungsi untuk
mengontrol jalannya sebuah program, sebagai contoh kontrol perulangan dan percabangan.
Tabel 10.8 Jenis instruksi data storage.
Contoh
Melakukan perulangan untuk mencetak angka 1 sampai 9 dengan mnemonic LOOP dengan bahasa Assembly.
1. Logika perulangan dapat didefinisikan dengan gambar flowchart berikut.
Gambar 10.13 Perulangan cetak angka 1-9.
2. Buka aplikasi note seperti notepad, notepad++, atau sublime.
3. Ketik source code berikut.
4. Simpan kode tersebut dengan nama loop.asm, simpan dalam folder bernama "coba" dalam direktori C:\ASM.
5. Compile dengan tasm dan tlink.
6. Lakukan kompilasi dan linking sesuai prosedur.
Gambar 10.14 Running file Loop.asm.
Zona Aktivitas
A. Uji Pengetahuan (Nilai Pengetahuan V)
1. Jelaskan jenis-jenis operasi yang mungkin terjadi dalam CPU.
2. Apa perbedaan antara operasi konversi data, aritmetika, dan logika?
3. Tuliskan dan jelaskan contoh-contoh instruksi yang dapat digunakan pada operasi aritmetika.
4. Tuliskan contoh-contoh instruksi yang dapat digunakan pada operasi perpindahan data.
5. Apa perbedaan SHR dengan SHL?
B. Tugas Praktikum (Nilai Praktik V)
1. Tugas bersifat individu.
2. Buatlah program menggunakan bahasa Assembly untuk melakukan pembagian bilangan 12 terhadap bilangan 4.
3. Buatlah program menggunakan bahasa Assembly untuk melakukan operasi aritmetika bilangan 34h dikurangi bilangan 4h.
C. Tugas Eksperimen (Nilai Proyek V)
Buatlah program untuk menampilkan bilangan 1 sampai 10 menggunakan teknik looping dan gambarkan flowchartnya untuk menjelaskan alur proses yang terjadi.
Rangkuman
1. ALU atau Arithmetic Logic Unit merupakan unit dalam CPU yang berguna untuk melakukan operasi aritmetika dan logika.
2. Setiap data dan instruksi yang dimasukkan oleh peranti input hasilnya akan ditampilkan melalui peripheral output dan akan diolah oleh ALU dengan bantuan register-register internal CPU.
3. Register merupakan memori internal CPU dengan kapasitas kecil, tetapi memiliki kecepatan tinggi dalam pengaksesan data yang terhubung secara langsung dengan sistem bus CPU.
4. Bahasa mesin atau Assembly merupakan bahasa tingkat rendah yang memiliki kemampuan akses data lebih cepat dan ringan.
5. Hasil kompilasi menggunakan perintah tlink/t akan menghasilkan file berekstensi.com, sedangkan perintah tlink akan menghasilkan file dengan ekstensi .exe.
6. File hasil kompilasi dengan ekstensi .com hanya memiliki kapasitas file maksimal 64KB untuk satu segment, tetapi mempunyai kelebihan dalam kecepatan pengaksesan data. Sementara itu, file kompilasi berekstensi .exe memiliki kelebihan kapasitas file yang tak terbatas, tetapi memiliki waktu akses data yang lebih lambat dibandingkan dengan file berekstensi .com.
7. Set instruksi adalah perintah yang dapat dimengerti oleh mesin komputer.
8. Terdapat dua jenis kategori set instruksi pada CPU yang sekarang ini dikembangkan, yaitu CISC dan RISC.
9. Syarat-syarat set instruksi dimengerti oleh CPU ada empat, yaitu Operation Code, Source Operand Reference, Result Operand Reference, dan Next Instruction Reference.
10. Mnemonic adalah standar kode untuk memberikan inspeksi terhadap CPU, untuk memodifikasi nilai-nilai register, biasanya merupakan singkatan dari suatu perintah (dalam bahasa Inggris).
11. Dalam mendeskripsikan suatu instruksi, dapat digunakan format instruksi 1 alamat, 2 alamat, dan 3 alamat.
12. Terdapat empat jenis operand yang dapat digunakan dalam sebuah operasi CPU, yaitu addresses, numbers, character, dan logical.
13. Ada empat jenis operasi yang dapat diinstruksikan pada CPU, yaitu data processing, data storage, data movement, dan program flow control.
Ulangan Akhir Bab 10
A. Pilihlah salah satu jawaban yang tepat.
1. Jenis flag register yang berguna sebagai tanda paritas sebuah bilangan, dengan tanda bit 1 menggambarkan bahwa bilangan tersebut bilangan genap adalah....
a. trap flag
b. parity flag
c. nested task
d. auxiliary flag
e. interrupt enable flag
2. cJenis flag dalam register yang berguna untuk operasi bilangan bertipe BCD adalah
a. trap flag
b. parity flag
c. nested task
d. auxiliary flag
e. interrupt enable flag
3. Register yang berfungsi untuk menangani operasi aritmetika adalah....
a. AX
b. CX
c. BX
d. DX
e. EDX
4. Perintah untuk meng-compile file .obj menjadi file berekstensi .exe adalah ....
a. tasm
b. tlink
c. unassembler
d. tlink/t
e. debug
5. Register yang berfungsi untuk menentukan alamat memori yang berisi data instruksi yang harus dieksekusi selanjutnya oleh CPU adalah ....
a. CS
b. DS
c. PC
d. IR
e. AX
6. Instruksi yang berfungsi mengopi atau memindahkan data dari satu lokasi ke lokasi lainnya adalah ....
a. MOV
b. ADD
c. SUB
d. SHL
e. SHR
7. Instruksi dalam assembler untuk men-setting variabel F dengan alokasi memori sebesar 4 byte untuk 4 data tanpa nilai yang diisikan adalah....
a. F DB 4
b. F DB 4,4,4,4
c. F DW ?,?,?,?
d. F DW 4 CUP (4)
e. F DW 4 CUP (?)
8. Tipe data dalam Assembly yang berukuran 4 byte adalah....
a. DT
b. DB
c. DW
d. DQ
e. DD
9. Tipe data dalam Assembly yang berukuran 8 byte adalah....
a. DT
b. DB
c. DW
d. DQ
e. DD
10. Jenis program assembler dengan data yang digunakan pada program kurang dari 64 KB meskipun baris kode yang ditulis pada program mencapai lebih dari 64 KB sebaiknya menggunakan model....
a. small
b. tiny
c. medium
d. large
e. huge
B. Jawablah pertanyaan-pertanyaan berikut dengan benar.
1. Apa yang Anda ketahui tentang register? Jelaskan.
2. Bagaimana cara kerja ALU dalam melakukan operasi aritmetika terhadap dua nilai data?
3. Jelaskan fungsi segment register. Register apa saja yang termasuk dalam segment register?
4. Apa perbedaan antara register AX dan BX?
5. Jelaskan hubungan kerja antara encoder dan decoder terhadap kerja ALU dalam CPU.
6. Jelaskan jenis-jenis operand yang dapat dioperasikan oleh CPU.
7. Tuliskan dan jelaskan tipe-tipe data yang dikenali dalam bahasa Assembly.
8. Jelaskan maksud dari potongan kode G DW 7 DUP(6).
9. Tuliskan dan jelaskan macam-macam operasi yang dapat dilakukan oleh CPU.
10. Tuliskan dan jelaskan jenis-jenis instruksi yang dapat digunakan pada operasi kontrol I/O.
C. Praktik
Buatlah program untuk melakukan perkalian bilangan 10 dengan bilangan 11 menggunakan bahasa Assembler.
D. Laporan
Buatlah laporan dalam bentuk print out tentang praktik tersebut.
Ulangan Akhir Semester 2
A. Pilihlah salah satu jawaban yang tepat.
1. Setiap operasi aritmetika dan set instruksi yang telah diantrekan dalam register- register general purpose mikrokontroler akan diproses dalam bagian.
a. CU
b. ALU
c. CPU
d. ROM
e. RAM
2. Jumlah pin digital yang disediakan oleh Arduino berbasis mikrokontroler Atmega328P adalah....
a. 10
b. 12
c. 13
d. 16
e. 20
3. Perhatikan gambar berikut.
Bagian yang menunjukkan sambungan sumber tegangan arus DC jika papan board Arduino telah selesai diprogram dan dirangkai mandiri untuk mengontrol tinggi suhu ruangan, yaitu ....
a. 1
b. 2
c. 3
d. 4
e. 5
4. Seri miktrokontroler yang diproduksi vendor AMCC adalah....
a. 386EX
b. 68HC08
c. MARCH4
d. MPC 8240/8250
e. PPC 440EP/EPX/GRX
5. Suhu maksimal yang dapat ditahan oleh mikrokontroler ATMega328P pada saat bekerja secara nonstop adalah....
a. 25°C
b. 45°C
c. 55°C
d. 65°C
e. 85°C
6. Berikut jenis integrated circuit yang sering digunakan untuk melakukan decode nilai BCD ke alat peraga seven segment display adalah ....
a. 7402
b. 7408
c. 7425
d. 7432
e. 7447
7. Bagian dalam komputer yang berfungsi untuk menyimpan hasil kelebihan (carry) atau pinjaman (borrow) dalam proses perhitungan aritmateka dalam CPU adalah....
a. cache
b. register
c. memori
d. control unit
e. Arithmetic Logic Unit
8. Teknologi arsitektur komputer yang telah menyediakan memori utama dengan kapasitas penyimpanan mencapai 4096 kata adalah ....
a. 8086
b. 80486
c. ENIAC
d. Babbage
e. Von Neumann
9. Berikut yang bukan tingkatan mesin komputer dalam pandangan struktur logika adalah level . . .
a. kernel system
b. logika digital
c. sistem operasi
d. arsitektur mikro
e. arsitektur perangkat instruksi
10. Sebuah mesin komputer yang menyimpan daftar instruksi dasar komputer berada pada level....
a. kernel system
b. sistem operasi
c. arsitektur perangkat instruksi
d. arsitektur mikro
e. logika digital
11. Jenis register dalam CPU yang bertugas menyimpan data sementara adalah....
a. TR
b. PC
c. DR
d. IR
e. AC
12. Berikut yang bukan termasuk fungsi control unit adalah ....
a. menyimpan hasil proses ALU ke memori utama
b. mengakses instruksi atau data dari memori utama
c. mengirim instruksi ke ALU tentang urutan proses data
d. mengambil data dari memori utama dan mengirimnya ke ALU
e. melakukan proses penjumlahan dan penyimpanan hasil penjumlahan tersebut
13. Berikut yang bukan sifat sebuah memori jika tingkatannya dalam hierarki memori berada pada posisi semakin ke bawah adalah ....
a. semakin cepat akses datanya
b. harga memori semakin murah
c. semakin lambat access time-nya
d. posisi memori terhadap processor semakin jauh
e. kapasitas penyimpanan data sebuah memori akan semakin besar
14. Memori yang terletak di luar badan processor dan bertugas meningkatkan akses data dari dan ke CPU adalah.....
a. memori utama
b. cache memori
c. cache L1
d. cache L2
e. cache L3
15. Jenis memori dalam komputer yang digunakan untuk menyimpan konfigurasi hardware berupa data BIOS (Basic Input Output System) adalah....
a. RAM
b. ROM
c. cache L1
d. cache L2
e. cache L3
16. Bagian pada media storage berbasis magnetic disk yang berfungsi sebagai tumpuan atau poros pemutar disk adalah....
a. head disk
b. pita
c. disk
d. spindle
e. cluster
17. Komponen dalam hard disk yang berfungsi menerjemahkan data dari dan ke disk menuju motherboard adalah....
a. head disk
b. platter
c. disk
d. spindle
e. logic board
18. Bagian dalam reel to reel tape yang merupakan area bebas dari penyimpanan data adalah ....
a. leader
b. BOT
c. EOT
d. header label
e. track leader
19. Jumlah pin analog pada Arduino yang dapat dimanfaatkan untuk mendeteksi sinyal analog dalam sebuah rangkaian, yaitu
a. 7
b. 6
c. 5
d. 4
e. 3
20. Berikut salah satu tipe media penyimpan yang menggunakan spindle untuk memutar disk data serta head untuk membaca polarisasi magnet di atas permukaan disk menjadi data bit merupakan jenis ...
a. optical disk
b. hard disk
c. pita magnetik
d. DVD
e. cache L1
21. Berikut yang bukan termasuk kategori volatile memory pada sistem komputer adalah ....
a. RAM
b. ROM
c. cache L1
d. cache L2
e. cache L3
22. Mode akses data dalam memori yang dilakukan secara acak ketika membaca sebuah data dalam lokasi memori tertentu merupakan jenis ....
a. direct access
b. rotational
c. random access
d. associative access
e. sequential
23. Sebuah lempengan RAM pada komputer model lama, setelah dibongkar ternyata memiliki jumlah pin sebanyak 4. Jumlah address yang tersedia dari memori tersebut adalah ....
a. 512
b. 256
c. 128
d. 32
e. 16
24. Read only memory juga mempunyai bagian pengontrolan yang berfungsi untuk mengaktifkan chip ROM. Tugas ini dilakukan oleh....
a. CS
b. CE
c. OE
d. CR
e. TX
25. Kapasitor yang berguna untuk menahan atau menyimpan sementara arus listrik di celah dua lempengan, memiliki karakteristik bahan....
a. konduktor
b. isolator
c. magnetik
d. semikonduktor
e. kapasitor
26. Jenis memori volatile yang tetap utuh datanya selama ada tegangan listrik yang mengalir akan tetapi memerlukan refresh data dalam satu waktu tertentu disebut....
a. random access
b. serial access
c. static memory
d. associative access
e. dynamic memory
27. Waktu yang diperlukan bagi komponen SDRAM dalam mengakses data memori jika memiliki kecepatan clock 100 MHz adalah....
a. 6 ns
b. 10 ns
c. 23 ns
d. 0 ns
e. 50 ns
28. Jika Selly membeli komponen RAM berjenis DDRRAM generasi 1 seri PC2700, kecepatan clock data yang didukung oleh DDRRAM tersebut dalam adalah ....
a. 666 MHz
b. 400 MHz
c. 333 MHz
d. 133 MHz
e. 33 MHz
29. Jenis ROM yang mengizinkan pengguna untuk menghapus atau menambah data atau programmnya tanpa mengosongkan isi dalam memorinya terlebih dahulu adalah jenis....
a. PROM
b. EEPROM
c. EAPROM
d. ROM
e. EPROM
30. Sebuah kanal dalam bus memori yang mempunyai kegunaan untuk mencatat setiap alamat data untuk mempermudah pengaksesan data, termasuk kegunaan dari
a. data bus
b. control bus
c. access bus
d. address bus
e. front side bus
B. Jawablah pertanyaan-pertanyaan berikut dengan benar
1. Apa perbedaan gerbang logika dengan IC?
2. Jelaskan perbedaan EEPROM dengan EAPROM.
3. Sebuah memori berseri ZZZZ memiliki data bus sebanyak 24 bit dengan jumlah address bus sebanyak 20 bit, berapa banyak saluran alamat data yang tersedia dan berapa besar kapasitas penyimpanan data dalam memori tersebut?
4. Gambarkan dan jelaskan bagian-bagian pada Arduino?
5. Jelaskan sifat-sifat sebuah memori jika posisinya semakin dekat dengan processor.
6. Jelaskan perbedaan RAID 5 dan RAID 6 dalam sistem komputer.
7. Apa yang Anda ketahui tentang mikrokontroler Atmega328P.
8. Apa kelebihan penggunaan metode hard disk dengan RAID dibandingkan dengan metode penyimpanan hard disk tunggal?
9. Jelaskan struktur pemrograman yang dapat dituliskan untuk mengontrol Arduino.
10. Tuliskan dan jelaskan jenis-jenis bus dalam komputer.
0 komentar: