Buatlah program pada komputer IAS, kemudian simpan program
tersebut dalam memori
- Kalikan data di memori alamat 0551 dengan data
di memori alamat 0552
- Simpan hasil perkalian tersebut di memori (MSB
di alamat 0556 dan LSB di alamat 0557)
- Jumlahkan data LSB hasil perkalian tersebut
dengan isi memori alamat 0553
- Simpan hasil penjumlahan tersebut di alamat 0559
- 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 :
- Pertama kali kita harus memindahkan isi data dari memori M(0551) ke MQ menggunakan perintah LOAD MQ,M(0551)
- 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
- 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)
- 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)
- Untuk menjumlahkan LSB dengan isi memori M(0553) digunakan perintah ADD M(0553)
- 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
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)