Rabu, 17 November 2010

Terdapat suatu statement aritmatika sebagai berikut:
Y <-- (A-B) : (C+D*E) ……………………. (Courseware hal. 67)
Diketahui: A = 12, B = 2, C = 2, D = 1, E = 3
Langkah-langkah CPU dalam memproses statement tersebut yaitu:
1. Setelah instruksi diambil (Fetch Instruction), CPU mulai memproses instruksi. Untuk memproses intruksi-instruksi tersebut CPU membutuhkan data masukan (operand masukan) yang harus diambil dari main memory. Data yang perlu diambil yaitu A, B, C, D, dan E.
2. Setelah data masukan diambil, instruksi mulai diolah satu per satu.

Instruksi A B C D E Y
Load A 12
Load B 12 2
Load C 12 2 2
Load D 12 2 2 1
Load E 12 2 2 1 3
Mov Y,A 12 2 2 1 3 12
Sub Y,B 12 2 2 1 3 10
Mul D,E 12 2 2 3 3 10
Add C,D 12 2 5 3 3 10
Div Y,C 12 2 5 3 3 2


Ingat: Add A,B berarti bahwa A dijumlahkan dengan B dan hasil penjumlahan tersebut diletakkan pada A.

NB. Kalian boleh menggunakan cara yang sudah saya jelaskan di kelas ataupun cara ini. Bedanya dalam cara ini kita tidak mengakses main memory untuk setiap instruksi karena data sudah kita ambil semua di awal, jadi hanya mengambil dari register saja. Selain itu operand bisa berubah-ubah nilainya karena kita langsung menimpa data awalnya (tanpa akses ke main memory).
Kemarin waktu saya menjelaskan materi ini di kelas dengan contoh x = (a+c) * b, instruksi terakhir yang dijalankan adalah Mov x,m. Instruksi tersebut seharusnya adalah Load m kemudian Stor x. Digunakannya instruksi Load m dan Stor x tersebut karena pemindahan data terjadi dalam main memory (m dan x sama-sama berada dalam main memory). Perintah Mov x,m digunakan jika keduanya (m dan x) sama-sama berada dalam CPU.

Semangat buat kalian dan semoga sukses…

Tidak ada komentar:

Posting Komentar