Senin, 16 April 2012

Membuat Program pada Komputer IAS (Kasus)


Buatlah program pada komputer IAS, kemudian simpan program tersebut dalam memori
  1.  Kalikan data di memori alamat 0551 dengan data di memori alamat 0552
  2. Simpan hasil perkalian tersebut di memori (MSB di alamat 0556 dan LSB di alamat 0557)
  3. Jumlahkan data LSB hasil perkalian tersebut dengan isi memori alamat 0553
  4. Simpan hasil penjumlahan tersebut di alamat 0559
  5. Program Counter awal 0011
Gambarkan peta memori yang menggambarkan letak program dan data
Tuliskan instruction Life Cycle (3 siklus saja)

Jawab :

Untuk menyelesaikan kasus diatas kita mengacu pada set instruksi IAS yang ditulis pada entry sebelumnya. 

Jika dituliskan, programnya adalah sebagai berikut :

LOAD MQ , M(0551)
MUL M(0552) 
STOR M(0556) 
LOAD MQ 
STOR M(0557)
ADD M(0553) 
STOR M(0559)

Penjelasan :
  1. Pertama kali kita harus memindahkan isi data dari memori M(0551) ke MQ menggunakan perintah LOAD MQ,M(0551)
  2. Setelah itu nilai dari MQ dikalikan dengan isi data dari memori M(0552), MSB dari hasil perkalian ini disimpan di AC sedangkan LSBnya disimpan di MQ
  3. Kemudian MSB disimpan di memori M(0556), karena MSB sudah tersimpan di AC, maka kita dapat langsung memindahkan isi AC ke memori M(0556) dengan perintah STOR M(0556)
  4. Selanjutnya adalah menyimpan LSB ke memori M(0557), karena LSB berada di MQ, maka kita harus memindahkan isi dari MQ ke AC terlebih dahulu dengan menggunakan perintah LOAD MQ, kemudian menyimpannya ke memori M(0557) dengan perintah STOR M(0557)
  5. Untuk menjumlahkan LSB dengan isi memori M(0553) digunakan perintah ADD M(0553)
  6. Selanjutnya hasil penjumlahan tersebut disimpan di memori M(0559) dengan perintah STOR M(0559).
Pemetaan penggunan memorinya adalah sebagai berikut :


Instruksi
Alamat



0010
LOAD MQ,M(0551) | MUL M(0552)
0011
STOR M(0556) | LOAD MQ
0012
STOR M(0557) | ADD M(0553)
0013
STOR M(0559)
0014












X
0551
Y
0552
Z
0553

0554

0555
MSB(X*Y)
0556
LSB(X*Y)
0557

0558
LSB(X*Y)+Z
0559









0999

Pada kasus ini, saya mencontohkan data dari memori M (0551) adalah X, memori M(0552) adalah Y dan M(0553) adalah Z

Instruction Cycle :

Siklus I
FETCH 1
  • PC (Program Counter ) = 0011
  • Start Program : PC dipindahkan ke MAR, sehingga MAR=PC=0011
  • M(MAR) di salin ke MBR, sehingga MBR=M(0011) = LOAD MQ,M(0551) | MUL M(0552)
LOAD
MQ,M(0551)
MUL
M(0552)
0                                          7  8                                            19 20                                   27  28                                 39
  • MBR (20:39) disimpan sementara ke dalam IBR, sehingga IBR=MUL M(0552)
  • MBR (0:7) dipindahkan ke IR , sehingga IR=LOAD
  • MBR (8:19) dipindahkan ke MAR, sehingga MAR = MQ,M(0551)
EXECUTE 1
  • M(0551) disalin ke MBR, sehingga MBR=M(0551)=X
  • MBR disalin ke MQ : MQ=X
Siklus II
.        FETCH 2
  • IBR (0:7) dipindahkan ke IR, sehingga IR=MUL
  • IBR (8:19) dipindahkan ke MAR, sehingga MAR = M(0552)
  • PC=PC+1 ==> PC=0011+1=0012
2    EXECUTE 2
  • M(0552) disalin ke MBR, sehingga MBR=M(0552)=Y
  • MBR *MQ ==> AC=MSB(X*Y) , MQ=LSB(X*Y)
Siklus III
       FETCH 3
  • PC (Program Counter ) = 0012
  • PC dipindahkan ke MAR, sehingga MAR=PC=0012
  • M(MAR) di salin ke MBR, sehingga MBR=M(0012) è STOR M(0556) | LOAD MQ
STOR
M(0556)
LOAD
MQ
    0                                  7  8                                        19 20                            27 28                    39
  • MBR (20:39) disimpan sementara ke dalam IBR : IBRßMBR(20:39), sehingga IBR=LOAD MQ
  • MBR (0:7) dipindahkan ke IR : IRßMBR(0:7), sehingga IR=STOR
  • MBR (8:19) dipindahkan ke MAR : MAR ßMBR(8:19), sehingga MAR = M(0556)

       EXECUTE 3
  • AC disalin ke MBR : MBR=AC
  • MBR disalin ke M(MAR) : M(0556)=MSB(X*Y)
Siklus IV
1    FETCH 4
  • IBR (0:7) dipindahkan ke IR, sehingga IR=LOAD
  • IBR (8:19) dipindahkan ke MAR, sehingga MAR = MQ
  • PC=PC+1 ==> PC=0012+1=0013
.       EXECUTE 4
  • MQ disalin ke MBR : MBR=MQ ==> MBR=LSB(X*Y)
  • MBR disalin ke AC : AC=LSB(Y*X) ==> AC=LSB(X*Y)


0 komentar:

Posting Komentar