sismik asli

Upload: dedek-muktianto

Post on 22-Jul-2015

69 views

Category:

Documents


0 download

TRANSCRIPT

Latihan Soal Sistem Mikroprosessor

1. Gambarkan sistem minimal untuk mikroprosesor dan jelaskan secara singkat dan jelas masing masing bagiannya. 2. Gambarkan segmentasi memori dalam mikroprosesor dan jelaskan bagaimana aturannya. Jawab :

3. Tuliskan program sederhana untuk menjumlahkan AL, BL, CL, DL dan AH, kemudian hasilnya disimpan di DH. Jawab : ADD AL, BL ADD AL, CL ADD AL,DL ADD AL, AH MOV DH, AL 4. Apakah yang salah dengan perintah dibawah ini, jelaskan dan betulkan. a. ADD ECX, AX b. MUL BX,AX 5. Jelaskan tentang real mode memory adressing dan protected mode memory adressing. Kemudian sebutkan persamaan dan perbedaannya. Jawab : 6. Tuliskan program sederhana untuk mengalikan 3 bilangan A, B dan C. Dimana A = E F , B = G F, C = ( E+F ) / G Simpan hasilnya pada alamat ( segmen = 2010 H, offset = 3000 H) 7. Gambar dibawah ini adalah keadaan sebelum proses stack ( PUSH BX ), jelaskan maksud dari gambar tersebut. Kemudian buat gambar yang serupa yang menjelaskan keadaan setelah stack berlangsung.

Stack segment

EBX

1234

03102 03101 03100 030FF 030FE

ESP

0100

CS DS SS

0100

03000

0300 03000

+03100

Jawab :Stack segment 03102 03101 03100 030FF 030FE

EBX

1234

ESP

0100

Stack sebelum perintah PUSH BX dieksekusi0100 03000

CS DS SS

0300 03000

+03100

Stacksegment

12EBX 1234

34

03102 03101 03100 030FF 030FE

ESP

0100

CS DS SS

0100

03000

0300 03000

+03100

Stack setelah perintah PUSH BX dieksekusi

8. Jelaskan jenis2 pengalamatan dalam mikroprosesor dan jelaskan bagaimana aturannya. 9. Tuliskan program sederhana untuk menjumlahkan AL, BL, CL, DL dan dikurangi AH, kemudian hasilnya disimpan di BH. Jawab : ADD AL, BL ADD AL, CL ADD AL,DL SUB AL, AH MOV BH, AL

10. Mengapa register A disebut sebagai register Accumulator ? 11. Apa yang dimaksud dengan register flag, jelaskan dengan contoh ! 12. Tunjukkan bagaimana alamat memori 1000 : 1234 disimpan dalam bentuk doubleword yang dimulai pada alamat 04000H. 13. Diberikan, DS = 1000H, SS = 2000H, BP = 1000H, dan DI =0100H. Tentukan alamat memori yang diakses untuk perintah berikut, jika dilakukan dalam operasi real mode : MOV CX,[DI] MOV EDX,[BP] Jawab :

(a) Starting address of the segment (SS) + Base (BP) + Index (DI) Memory location address (b) Starting address of the segment (DS) + displacement (DI) Memory location address (c) Starting address of the segment (SS) + Base (BP) Memory location address

20000H + + 1000H 0100H

21100H 10000H + 0100H

10100H 20000H + 1000H

21000H

14. Diketahui 3 buah bilangan. Dua bilangan A dan B sudah tersimpan dalam memori sedangkan yang satunya perlu diinputkan dari luar. Buatlah program singkat untuk mengalikan ketiga bilangan tersebut dan hasilnya disimpan dalam register BX. Anda bebas menentukan alamat memori penyimpanan bilangan A dan B.

jawabannya adalah :1. Blok diagram cara kerja processor

Gambar 1. Blok Diagram cara kerja processor Prinsip kerjanya adalah mengolah suatu data masukan, yang kemudian hasil olahan tersebut akan menghasilkan keluaran yang dikehendaki. Proses pengolahan datanya dapat difungsikan sesuai dengan instruksi yang diprogramkan . Masing masing mikroprosesor memiliki bahasa pemrograman yang berbeda-beda. Namun secara prinsip, dasar dari tiap mikroprosesor adalah sama. Tiap Mikroprosesor memiliki satu bus data, satu bus alamat dan satu bus kendali. Dalam mikroprosesor terdapat suatu unit

untuk mengerjakan fungsi fungsi logika dan aritmetika, register register untuk menyimpan data sementara dan unit pengendalian . Bus data terdiri biasanya 4, 8, 16 atau 32 jalur (bit), 64 bit, tergantung dari jenis mikroprosesornya. Bus data berfungsi memuat data dari dan ke mikroprosesor. Arah panah menunjukkan arah data dikirim/diterima. Bus alamat merupakan bus yang berisi alamat alamat yang datanya akan dikirim / diterima oleh mikroprosesor. Bus kendali digunakan untuk mensinkronkan kerja antara mikroprosesor dengan dunia luar sistem. Pada beberapa aplikasi ada yang disebut dengan istilah jabat tangan, seperti misalnya pada penerapan hubungan dengan pencetak (printer). Dalam sistem kerjanya mikroprosesor didukung oleh unit memori (untuk menyimpan program tetap/sementara dan menyimpan data), unit masukan dan keluaran yang berfungsi sebagai antar muka dengan dunia luar. Catu daya, rangkaian pembangkit detak (clock), rangkaian pengawasandi(address decoder), penyangga (buffer) dan penahan (latch) juga diperlukan mikroprosesor untuk mendukung operasi kerja sebagai satu rangkaian yang solid. 1. Unit Pemroses Pusat (CPU : Central Processing Unit) Mikroprosesor berfungsi sebagai unit yang mengendalikan seluruh kerja system mikroprosesor. Fungsi fungsi mikroprosesor adalah sebagai berikut : 1. Mengambil instruksi dan data dari memori. 2. Memindah data dari dan ke memori. 3. Mengirim sinyal kendali dan melayani sinyal interupsi. 4. menyediakan pewaktuan untuk siklus kerja sistem mikroprosesor. 5. Mengerjakan fungsi fungsi operasi logika dan aritmetika. Dalam pelaksanaan fungsi fungsi tersebut, bagian bagian mikroprosesor yang mengerjakan adalah : Pengendalian dan Pewaktuan (control and Timing), ALU (Arithmetic and Logical Unit) dan Register. a. Pewaktuan dan Pengendalian Bagian pewaktuan dan pengendalian memiliki fungsi utama untuk mengambil dan mendekodekan instruksi dari memori program dan membangkitkan sinyal kendali yang diperlukan oleh bagian lain dari mikroprosesor untuk melaksanakan instruksi tersebut. Pada bagian pengendalian mengirimkan sinyal kendali eksternal untuk dikirim ke elemen system mikroprosesor yang lain. Bagian pengendalian juga berfungsi untuk menerima sinyal kendali dari elemen lain dalam sistem mikroprosesor. b. ALU (Arithmetic Logical Unit) Bagian mikroprosesor yang berfungsi mengerjakan perintah perintah logika dan operasi aritmetika adalah ALU. Instruksi dalam operasi ini melibatkan satu atau dua operand. Operasi ALU menghasilkan juga sinyal status yang dikirim ke register, yaitu sinyal untuk mengubah status bit bit flag sesuai hasil operasi suatu instruksi. c. Register Fungsi register digunakan untuk menyimpan data, alamat, kode instruksi dan bit status berbagai operasi mikroprosesor. Prinsip dari register register pada berbagai mikroprosesor adalah sama, namun memiliki perbedaan dalam struktur registernya. 2. Memori Setiap sistem mikroprosesor memiliki memori, guna menyimpan program dan datanya. Mikrokontroler memiliki memori internal baik dari jenis memori ROM maupun RAM. Namun beberapa jenis mikrokontroler tidak memiliki internal ROM, seperti mikrokontroler yang dipakai pada perancangan alat in 3. Unit Masukan dan Keluaran

Perantara antara mikroprosesor dengan dunia luar merupakan tugas dari unit masukan dan keluaran pada suatu sistem mikroprosesor. Tanpa unit masukan dan keluaran maka data yang diolah hanya berputar putar dalam sistem mikroprosesor, tanpa ada keluaran yang dapat diterima lingkungan luar sistem mikroprosesor. Teknik masukan dan keluaran pada sistem mikroprosesor dapat dibedakan menjadi dua sistem yaitu : 1). Sistem Paralel Data masukan / keluaran dikirimkan dalam bentuk delapan bit paralel. 2). Sistem Serial Data masukan/keluaran dikirim secara bit per bit berurutan melalui satu jalur.

2 Segmentation Registers

Logical address terdiri atas dua bagian : segment identifier dan sebuah offset yang menunjukkan alamat yang bersangkutan pada segment. Segment identifier adalah sebuah 16-bit field yang disebut segment selector. Untuk mempermudah memperoleh segment selectors dengan cepat, prosesor menyediakan segmentation register yang tujuannya hanya untuk memegang segment selectors. Ada enam segmentation register : cs, ss, ds, es, fs, dan gs.

Register yang digunakan oleh mikroprosesor dibagi menjadi 5 bagian dengan tugasnya yang berbeda-beda pula, yaitu : Segmen Register Register yang termasuk dalam kelompok ini terdiri atas register CS,DS,ES dan SS yang masingmasingnya merupakan register 16 bit. Register-register dalam kelompok ini secara umum digunakan untuk menunjukkan alamat dari suatu segmen. Register CS (Code Segment) digunakan untuk menunjukkan tempat dari segmen yang sedang aktif, sedangkan register SS (Stack Segment) menunjukkan letak dari segmen yang digunakan oleh stack. Kedua register ini sebaiknya tidak sembarang diubah karena akan menyebabkan kekacauan pada program anda nantinya. Register DS (Data Segment) biasanya digunakan untuk menunjukkan tempat segmen dimana datadata pada program disimpan. Umumnya isi dari register ini tidak perlu diubah kecuali pada program residen. Register ES (Extra Segment), sesuai dengan namanya adalah suatu register bonus yang tidak mempunyai suatu tugas khusus. Register ES ini biasanya digunakan untuk menunjukkan suatu alamat di memory, misalkan alamat memory video.

3. ADD AL, BL ADD AL, CL ADD AL,DL ADD AL, AH

MOV DH, AL

4.

a. b.

ADD ECX, AX (benar) MUL BX,AX (salah) MUL BX (bx akan dikaliakan dengan ax dan hasilnya akan di simpan di DX:AX)

5.

80286 dan atas beroperasi baik dalam mode real atau dilindungi. Hanya 8086 dan 8088 beroperasi secara eksklusif dalam modus real. Modus operasi nyata memungkinkan mikroprosesor untuk mengatasi hanya bytepertama dari 1M ruang memori-bahkan jika itu adalah Pentium 4 mikroprosesor. Perhatikan bahwa byte pertama dari memori 1M disebut baik memori nyata atau sistemmemori konvensional. Sistem operasi DOS membutuhkan mikroprosesor beroperasi dalam mode real. Operasi real mode memungkinkan perangkat lunak aplikasi yang ditulis untuk 8086, /8088 yang hanya berisi byte 1M memori, berfungsi di 80286 dan di atas tanpa mengubah perangkat lunak.6. Tuliskan program sederhana untuk mengalikan 3 bilangan A, B dan C. Dimana A = E F , B = G F, C = ( E+F ) / G Simpan hasilnya pada alamat ( segmen = 2010 H, offset = 3000 H) SUB E,F MOV A,E MOV AX,A SUB G,F MOV B,G MOV BX,B ADD E,F DIV E,G MOV C,E MOV CX, C

MUL BX MUL CX MOV DX,[3000H] MOV DX,AX

14 . IN C MOV BL, B MOV CX, C MUL BL MUL CX MOV BX, AX10. AX (16 bit), terdiri dari AH (high byte/8 bit), AL (low byte/8 bit) Secara khusus sebagai Accumulator dan register serbaguna yang berfungsi sebagai masukan, atau menampung hasil proses / perhitungan (add, sub, mul, dan div) dan sering untuk menyimpan data sementara. Banyak instruksi yang dioptimasikan unjuk kerjanya jika beroperasi pada register accumulator. Pengoperasian data yang disimpan di accumulator sedikit lebih cepat dibanding bila data disimpan di register lain. Pada operasi pembagian, jika bilangan pembagi besarnya 16 bit, bilangan yang dibagi ditampung di pasangan register DX:AX. Setelah pembagian hasil ditampung di AX sedang sisa hasil bagi di DX. Bila bilangan pembagi besarnya 8 bit, bilangan yang dibagi ditempatkan di AX. Setelah pembagian, hasil bagi ditempatkan di AL sedang sisa hasil bagi di AH. Pada operasi perkalian, accumulator menampung bilangan yang akan dikalikan. Hasil perkalian ditempatkan di register AX. Pada operasi I/O ke dan dari port, accumulator menampung data yang akan ditransfer.

11.

Flag Register

Berfungsi untuk menunjukkan status (keadaan) sesaat dari mikroprosessor. Bit-bit pada flag akan mengalami perubahan, tergantung proses yang baru saja berlangsung. Adapun kode bit yaitu sebagai berikut :

Carry Flag (CF) akan 'set' (menjadi logika '1', tinggi), apabila terjadi 'bawaan' (carry) atau 'pinjaman' (borrow) dalam suatu hasil proses perhitungan (arithmetic) pada Most Significant Bit (MSB, bit paling berbobot). Jika hal-hal itu tidak terjadi maka CF akan 'reset' (logika '0', rendah). Kalau dalam suatu instruksi, terjadi hasil yang menunjukkan bahwa sistem pengecekan paritas adalah 'paritas genap' (even parity), maka PF akan 'set'. Bila yang terjadi 'paritas ganjil' (odd parity), PF akan

'reset'. Auxiliary Carry Flag dipakai untuk menunjukkan hasil perhitungan pada byte rendah dari suatu bilangan binary 16 bit. Jika terjadi 'bawaan' atau 'pinjaman' dari nibble bawah (low nibble) ke nibble atas (high nibble), . AF akan 'set', sebaliknya AF akan di 'reset'. Zero Flag akan 'set' kalau dalam suatu proses perhitungan di hasilkan nilai nol. Bila hasilnya bukan nol, ZF akan 'reset'. SF atau 'Sign Flag' adalah bit yang akan mendeteksi suatu bilangan sebagai bilangan positif atau bilangan negatif. Hal ini dilakukan dengan melihat MSB dari bilangan tersebut. Apabila MSB menunjukkan nilai '1' (set), maka bilangan itu adalah negatif, jika '0' (reset), bilangan positif. OF adalah 'Overflow Flag', berguna untuk menunjukkan bahwa telah terjadi 'overflow' yaitu jumlah bit sebagai hasil suatu proses perhitungan telah melampaui batas yang diperkenankan. Mikroprosesor 8088 mempunyai kemampuan untuk bekerja dalam mode 'langkah tunggal' (single-step), yaitu semua instruksi dilaksanakan dengan cara satu demi satu. Mode ini dimungkinkan dengan jalan membuat TF (Trap Flag) masuk ke logika '1' atau 'set'. Bagi seorang programmer, mode ini akan sangat berguna dalam pekerjaan 'debugging'. Interrupt Flag (IF) untuk mendeteksi adanya permintaan interupsi dari peralatan-peralatan luar. Bila flag ini ada dalam keadaan set, maka pendeteksian interupsi oleh 8088 akan aktif, akan tetapi jika IF dalam keadaan reset, semua permintaan interupsi yang "maskable" (tidak mutlak) akan diacuhkan. DF adalah 'Direction Flag', berguna menentukan arah dari operasi-operasi 'string' (untaian string), yaitu bila DF di 'set', maka operasi string akan mengurutkan alamat dari atas ke bawah, akan tetapi, bila flag ini di'reset', pengalamatan diurutkan dari alamat rendah ke alamat tinggi.