CONTOH 10-2
Terjemahkan program dari Contoh 10-1 ke dalam bahasa mesin SAP-1.
JAWABAN
_________________________________________________________
Program dari contoh 10-1 adalah
Alamat Instruksi
0H LDA 9H
1H ADD AH
2H ADD BH
3H SUB CH
4H OUT
5H HLT
Program diatas tertulis dalam Bahasa asembli. Untuk memperoleh program dalam bahasa mesin, kita harus memterjemahkannya kedalam bentuk deretan 0 dan 1 sebagai berikut :
Alamat Instruksi
0000 0000 1001
0001 0001 1010
0010 0001 1011
0011 0010 1100
0100 1110 XXXX
0101 1111 XXXX
Kini program tersebut sudah tertulis dalam bentuk bahasa mesin.
Suatu program seperti contoh diatas yang ditulis dalam bahasa mesin disebut program obyek (obyect program). Program semula yang dituliskan dengan mnemonik-mnemonik disebut program sumber (source program ). Dalam SAP-1, operator harus menterjemahkan program sumber kedalam program obyek pada waktu pemrograman saklar-saklar alamat dan data.
Perhatikan bahwa empat MSB dari sebuah instruksi bahasa mesin SAP-1 memberikan spesifikasi tentang operasinya, dan empat SLB dari instruksi itu memberikan alamat yang bersangkutan. Kadang-kadang MSB itu disebut sebagai medan instruksi (instruction field) dan LSB yang bersangkutan disebut sebagai medan alamat (address field), secara simbolik.
Instruksi = XXXX XXXX
Medan instruksi
Medan Alamat
____________________________________________
CONTOH 10-3
Bagaimana cara memprogram SAP-1 untuk menyelesaikan persoalan aritmetik ini ?
16 20 24 – 32
Bilangan ini diberikan dalam bentuk desimal.
JAWABAN
_________________________________________________
Suatu cara penyelesaiannya adalah menggunakan program dari contoh terdahulu, yaitu program menyimpan data (16,20,24,32) pada lokasi memori 9H sampai CH. Dengan bantuan lampiran 1, kita dapat mengubah data desimal kedalam data heksa-desimal untuk mendapatkan versi bahasa asembli :
Alamat Isi
0H LDA 9H
1H ADD AH
2H ADD BH
3H SUB CH
4H OUT
5H HLT
6H XX
7H XX
8H XX
9H 10H
AH 14H
BH 18H
CH 20H
Dalam bahasa mesin data-data ini menjadi :
Alamat Isi
0000 0000 1001
0001 0001 1010
0010 0001 1011
0011 0010 1100
0100 1110 XXXX
0101 1111 XXXX
0110 XXXX XXXX
-
XXXX XXXX
-
0001 0000
1010 0001 0100
-
0001 1000
-
0010 0000
Perhatikan disini bahwa penyimpanan program mendahulu penyimpanan kata-kata data. Program menempati lokasi memori yang lebih rendah dan data menempati lokasi yang lebih tinggi. Hal ini penting dalam SAP-1 karena pencacah program menunjuk ke alamat 0000 untuk instruksi pertama, alamat 0001 untuk instruksi kedua, dan seterusnya.
CONTOH 10-4
Tuliskan program pada Contoh 10-3 dalam bentuk ringkas heksadesimal.
Jawaban
Alamat Isi
0H 09H
1H 1AH
2H 1BH
3H 2CH
4H EXH
5H FXH
6H XXH
7H XXH
8H XXH
9H 10H
AH 14H
BH 18H
CH 20H
Program dan data dalam versi ini masih dianggap sebagai bahasa mesin.
Dal hal ini data negatif didisikan dalam bentuk komplemen-2. Misalnya, -03H dimasukkan sebagai FDH
10-4 SIKLUS PENGAMBILAN (FETCH CYCLE)
Unit kendali adalah kunci dari pengoperasian komputer secara otomatik. Unit kendali membangkitkan atau mengeluarkan kata-kata kendali untuk mengambil dan melaksanakan setiap instruksi. Pada waktu suatu instruksi diambil dan dilaksanakan, komputer akan melewati beberapa keadaan pewaktuan (timing state: disingkat T state = keadaan T), yaitu periode-periode waktu pada saat mana terjadi perubahan isi-isi register. Berikut ini akan kita pelajari lebih lanjut arti keadaan T tersebut.
Pencacah Putar (Lingkar)
Kita telah membicarakan pencacah putar SAP-1 (lihat diagram skematik dalam gambar 8-16). Gambar 10-2a melukiskan simbol pencacah lingkar dengan keluaran.
T = T6T5T4T3T2T1
Pada permulaan operasi komputer kata lingkar T menunjukkan pulsa detak yang berturut-turut menghasilkan kata-kata lingkar:
T = 000010
T = 000100
T = 001000
T = 010000
T = 100000
Gambar 10-2 Pencacah Lingkar (a) simbol (b) Diagram Pewaktuan
Kemudian pencacah lingkar direset menjadi 000001, dan siklus yang sama akan berulang. Setiap kata lingkar merepresentasikan satu keadaan T
Gambar 10-2b memperlihatkan pulsa-pulsa pewaktuan yang dikeluarkan oleh pencacah lingkar. Keadaan T1 berawal pada suatu tepi negatif pulsa detak dan berakhir pada tepi negatif yang berikutnya. Selama keadaan T ini, bit keluarkan T1 dari pencacah lingkar merupakan tingkat logika tinggi.
Keadaan-keadaan Y yang selanjutnya berturut-turut T2 tinggi, disusul T3 tinggi, kemudian T4 tinggi, dan seterusnya. Sebagaimana dapat kita lihat, pencacah putar menghasilkan enam keadaan T. Setiap instruksi diambil dan dilaksanakan selama enam keadaan T ini.
Perhatikan bahwa tepi CLK yang positif terjadi dipertengahan setiap keadaan T. Pentingnya hal ini akan dibicarakan kemudian.
|