Kurniawan Teguh Martono, ST, MT k.teguh.m@undip.ac.id Instruksi dalam SAP 1 Kurniawan Teguh Martono, ST, MT k.teguh.m@undip.ac.id
Topik yang akan dibahas Perangkat Instruksi Pemrograman SAP-1
Pendahuluan Sebelum dapat memprogram komputer, kita harus mempelajari perangkat instruksi dari komputer yang bersangkutan yaitu operasi-operasi dasar yang dilaksanakan SAP 1 terdapat 2 jenis instruksi Memiliki 1 operand (ADD, SUB, LDA) Tanpa memiliki operand (OUT, HLT)
Perangkat Instruksi Komputer merupakan perangkat keras yang tidak berguna bila tidak ada program operasi Instruksi harus dimasukan langkah demi langkah ke dalam memori Perangkat instruksi dalam SAP 1 : LDA ADD SUB OUT HLT Memori reference Instruction = menggunakan data yang tersimpan dalam memori
LDA Merupakan singkatan dari “load the accumulator” atau “Isilah akumulator” Instruksi LDA lengkap mengadung alamat heksadesimal dari data yang akan diisikan Misal : LDA 8H # Isilah akumulator dengan isi dari lokasi memori 8H Misal R8 = 0000 0010, Maka eksekusi intruksi LDA 8 H menghasilkan Acc = 0000 0010
LDA (2) Selain itu ada : LDA AH # isilah akumulator dengan isi dari lokasi memori AH LDA FH # isilah akumulator dengan isi dari lokasi memori FH
ADD Instruksi ADD yang lengkap mengandung alamat dari nilai yang hendak di tambahkan Misalkan untuk : ADD 9H #tambahkan isi dari lokasi memori 9H pada isi akumulator Hal ini berarti hasil penjumlahan ini akan menggantikan isi akumulator semula Contoh lain : Misal di dalam akumulator tersimpan nilai 210 Di lokasi memori 9H terisi nilai 310 Maka dengan menggunkan instruksi ADD 9H nilai akumulator A akan berisi nilai 510
Latihan Perhatikan soal berikut LDA AH; AH = 0000 0011 ADD 8H; 8H = 0000 0001 Maka isi dari akumulator adalah?
Jawab Selama operasi intruksi ADD bejalan maka isi dari alamat 8H akan di tampung kedalam register B sehingga isi dari B adalah 0000 0001 Kemudian nilai dari akumulator dan register B diambil dan dioperasikan oleh ALU sehingga hasilnya adalah 0000 0100 Kemudian hasil disimpan kedalam akumulator
SUB Instruksi SUB yang lengkap disertai dari nilai yang hendak dikurangkan Misalkan untuk : SUB CH # kurangkan isi lokasi memori CH dari isi akumulator Dimana : jawaban selisih yang diberikan oleh bagian ALU kemudian akan mengganti isi akumulator semula.
Latihan Perhatikan soal berikut LDA AH; AH = 0000 0011 SUB 8H; 8H = 0000 0001 Maka isi dari akumulator adalah?
Jawab Selama operasi intruksi SUB bejalan maka isi dari alamat 8H akan di tampung kedalam register B sehingga isi dari B adalah 0000 0001 Kemudian nilai dari akumulator dan register B diambil dan dioperasikan oleh ALU sehingga hasilnya adalah 0000 0001 Kemudian hasil disimpan kedalam akumulator
OUT Instruksi ini memberitahu kepada komputer SAP-1 untuk memindahkan isi akumulator ke register keluaran. Sesudah instruksi ini dikerjakan, kita dapat melihat jawaban dari persoalan yang sedang diselesaikan Dalam Instruksi OUT kita tidak perlu menyebutkan alamat tertentu, sebab dalam instruksi ini tidak berhubungan dengan data dalam memori
HLT Singkatan dari Halt (berhenti) Bertujuan memberitahu kepada komputrer untuk berhenti memproses data HLT menandai akhir dari suatu program, yang mirip dengan tanda “titik” dalam sebuah kalimat.
Contoh Andaikan A = 0000 0110 RF = 0000 0010 SUB RF dikerjakan dan disusul dengan OUT. Maka bilangan desimal berapa yang akan dinyataan oleh tampilan biner?
kesimpulan Memori reference instruction: LDA, ADD, SUB #karena semua intruksi menggunaan data yang tersimpan dalam memori OUT dan HLT #bukan merupakan MRI karena tidak melibatkan data yang ada di dalam memori
Kesimpulan (2) LDA, ADD, SUB, OUT, HLT merupakan perangkat instruksi dalam SAP-1 Instruksi-instruksi tersebut dinamakan dengan mnemonik (mnemonic “pembantu ingatan”) Mnemonik Operasi LDA Isikan data RAM ke dalam akumulator ADD Tambahkan data RAM pada akumulator SUB Kurangkan data RAM dari akumulator OUT Isikan data akumulator ke dalam register keluaran HLT Hentikan pemrosesan
Contoh Alamat Mnemonik 0H LDA 9H 1 H ADD AH 2 H ADD BH 3 H SUB CH Berikut ini adalah sebuah program SAP 1 dalam bentuk mnemonik Alamat Mnemonik 0H LDA 9H 1 H ADD AH 2 H ADD BH 3 H SUB CH 4 H OUT 5 H HLT
Contoh (2) Data dalam memori dengan alamat selanjutnya adalah Alamat Data 6 H FFH 7 H FFH 8 H FFH 9 H 01H AH 02H BH 03H CH 04H DH FFH EH FFH FH FFH Apa yang dilakukan oleh setiap Instruksi ?
Penyelesaian Program tersebut terdapat dalam meori yang rendah, yaitu terletak pada lokasi dengan alamat 0H sampai 5 H Eksekusi instruksi pertama adalah mengisi akumulator dengan isi dari lokasi memori 9H Eksekusi instruksi kedua adalah menambah isi lokasi memori AH pada isi akumulator Eksekusi instruksi ketiga adalah menambah isi lokasi memori BH dengan isi akumulator Eksekusi instruksi keempat adalah mengurangkan isi lokasi memori CH dengan isi akumulator Instruksi OUT memindahkan isi akumulator ke dalam register keluaran Instruski HLT menyatakan pemrosesan data di hentikan
Representasi Instruksi dalam bentuk Biner
Pemrograman SAP-1 Gambar disamping merupakan representasi dari saklar pada panel operartor SAP-1 dengan nilai 16 x 8 Jika tertutup = 1, terbuka = 0 Dapat menyimpan 16 kata pada alamat 0 sampai F
Pemrograman SAP-1 (2) Untuk memprogram kata instruksi dan data ke dalam memori SAP-1 digunakan Operation code sebagai berikut : Mnemonik Kode Operasi LDA 0000 ADD 0001 SUB 0010 OUT 1110 HLT 1111
Contoh Terdapat instruksi LDA AH Dimana artinya adalah isi akumultor dengan nilai yang terdapat pada alamat AH Instruksi Kode Operasi Nilai Alamat LDA AH 0000 1010 PC Intruksi Alamat Code 0000 LDA AH 0000 1010 … 1010 ???? ????
Contoh lain Alamat Instruksi 0H LDA FH 1H ADD EH 2H HLT misalkan kita akan menyimpan instruksi sebagai Berikut : Alamat Instruksi 0H LDA FH 1H ADD EH 2H HLT
Jawab Pertama, ubahlah setiap instruksi kedalam bentuk biner : LDA FH = 0000 1111 ADD EH = 0001 1110 HLT = 1111 XXXX XXXX adalah nibble yang tak diperdulikan karena HLT bukan instruksi rujukan – memori.
Jawab (2) Selanjutnya , susunlah saklar-saklat alamat dan data sebagai berikut : Alamat Data bu bu bu bu bu bu bu bu tu tu tu tu bu bu bu tu bu bu bu tu tu tu tu bu bu bu tu bu tu tu tu tu XXXX
Jawab (3) Sehingga menjadi : Alamat Data 0000 0000 1111 0001 0001 1110 0000 0000 1111 0001 0001 1110 0010 1111 XXXX
Latihan Terjemahkan program berikut ke dalam bahasa mesin SAP-1 : Alamat Instruksi 0H LDA 9H 1H ADD AH 2H ADD BH 3H SUB CH 4H OUT 5H HLT
Jawab Pertama kita harus menterjemahkan kedalam bentuk 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 Program sudah dalam bentuk bahasa mesin
Siklus Instruksi Tedapat dua tahapan : Fetch Cycle Execute Cycle Masing-masing memerlukan 3 detak (clock cycle)
Fetch Cycle Tiga hal yang dilakuan dalam tahap ini Mengirim isi pencacah program (PC) ke dalam register pengalamatan (MAR) disebut dengan Address state Menambahkan PC dengan 1 disebut dengan increment state Mengambil instruksi dari memori dan dimasukan ke dalam register instruksi. Disebut dengan memory state
Ilustrasi Cp Pencacah Program CLK 4 CLR MAR 4 Cp CLK CLR Ep Lm Data 4 bit akan keluar dari PC menuju bus Dari bus data akan diambil oleh MAR Data 4 bit alamat akan menuju ke PROM
Ilustrasi Data 8 bit keluar dari PROM Data masuk IR 8 bit Pada tahap ini 8 bit data berada dalam IR PROM 16 x 8 IR 4 8 Ce Li CLK 4 CLR Ei
Total keseluruhan
Siklus Eksekusi Eksekusi instruksi dikendalikan oleh pengendali pengurut Masing –masing tahap eksekusi berbeda-beda untuk setiap instruksi
Instruksi LDA Urutannya Alamat memori dikirim dari IR ke MAR Data dari memori diambil dan masuk ke Akumulator
Intruksi ADD dan SUB Urutannya Alamat memori dikirim dari IR ke MAR Nilai dari memori diambil dan masuk register B Data dari register B dioperasikan dengan akumulator dan hasilnya disimpan dalam akumulator
Instruksi OUT Hanya memerlukan 1 tahap yaitu Memindahkan data dari akumulator ke dalam register keluaran
Instruksi HLT HLT tidak memerlukan rutin karena tidak ada register yang berhubungan dengan pekerjaan instruksi ini
Sekian terimakasih