LDA
Sebagaimana telah disebutkan dalam Bab 9, kata-kata dalam memori dapat diberi lambang R0 R1, R2 dan setetusnya. Artinya, R0 disimpan pada alamat 0H, R1 disimpan pada alamat 1H, R2 disimpan pada alamat 2H, dan seterusnya.
LDA merupakan singkatan dari “load the accumulator” (artinya = isilah akumulator). Instruksi LDA yang lengkap mengandung alamat heksadesimal dari data yang hendak diisikan. Sebagai contoh: LDA 8H, artinya: isilah akukulator dengan isi dari lokasi memori 8H”.
Umpamanya
R8 = 0000 0010
Maka eksekusi instruksi LDA 8H menghasilkan;
A = 0000 0010
Begitu pula LDA AH berarti: “isilah akumulator dengan isi dari lokasi memori AH”, LDA FH, berarti “isilah akumulator dengan isi dari lokasi memori FH”, dan sebagainya.
ADD
Add adalah instruksi lain dari SAP-1. Instruksi ADD yang lengkap mengandung alamat dari kata yang hendak ditambahkan. Misalnya, ADD 9H berarti “tambahkan isi dari lokasi memori 9H pada isi akumolator.”, hasil penjumlahan ini akan menggantikan isi akumulator semula.
Ikutilah contoh berikut ini. Kita umpamakan dalam akumulator tersimpan bilangan desimal 2, dan bilangan 3 desimal menempati lokasi memori 9H. Maka:
A = 0000 0010
R9 = 0000 0011
Selama pelaksanaan instruksi ADD 9H akan berlangsung operasi sebagai berikut. Pertama, R9 disisikan ke dalam register B sehingga:
B = 0000 0011
Dan pada waktu yang bersamaan, bagian penjumlah-pengurangan melakukan penjumlahan dari A dan B, menghasilkan jumlah
SUM = 0000 0101
Kedua, hasil jumlahan ini diisikan ke dalam akumulator, sehingga
A = 0000 0101
Urutan langkah operasi diatas digunakan untuk semua instruksi ADD; kata Ram yang dialamatkan akan masuk ke dalam register B dan keluaran dari penjumlah-pengurang memasuki akumulator. Dengan demikian, eksekusi instruksi ADD 9H adalah operasi menambahkan R9 pada isi akumulator, dan eksekusi instruksi ADD H berupa operasi menambahkan RF pada isi akumulator, dan sebagainya.
SUB
Instruksi SAP-1 yang lain lagi adalah SUB. Instruksi SUB yang lengkap disertai alamat dari kata yang hendak dikurangkan. Sebagai contoh, SUB CH berarti “kurangkan isi lokasi memori CH dari isi akumulator”, jawaban selisih yang diberikan oleh bagian penjumlah-pengurang kemudian menggantikan isi akumulator semula.
Sebagai contoh yang kongkret; misalkan isi akumulator adalah angka desimal 7 dan lokasi memori CH berisi bilangan desimal 3. Maka
A = 0000 0111
Rc = 0000 0011
Pelaksanaan instruksi SUB CH berlangsung sebagai berikut; Pertama, Rc diisikan ke dalam register B untuk memperoleh:
B = 0000 0011
Pada waktu hampir bersamaan, bagian penjumlah-pengurang dari A dan B menghasilkan selisih:
DIFF = 0000 0100
Kedua, hasil pengurangan ini disimpan dalam akumulator, sehingga isinya menjadi
A = 0000 0100
Urutan langkah operasi seperti di atas dipakai oleh semua instruksi SUB; kata RAM yang dialamatkan akan masuk keregister B dan keluaran dari penjumlah-pengurang masuk ke dalam akumulator. Jadi, eksekusi dari insrtuksi SUB CH adalah mengurangkan Rc dari isi akumulator, eksekusi dari instruksi SUB EH adalah mengurangkan RE dari isi akumulator, dan demikian seterusnya.
Out
Instruksi OUT memberitahu kepada komputer SAP-1 untuk memindahkan isi akumulator ke bandar keluaran. Sesudah instruksi OUT dilaksanakan, kita dapat melihat jawaban dari persoalan yang sedang diselesaikannya.
Instruksi OUT ini sudah dalam bentuk yang lengkap; kita tidak perlu menyebutkan alamat tertentu dalam menggunakan OUT sebab instruksi ini tidak berhubungan dengan data di dalam memori.
HLT
HLT adalah singkatan dari “halt” (berhenti), Instruksi ini memberitahu kepada komputer untuk berhenti memproses data. HLT menandai akhir suatu program, serupa dengan tanda titik di akhir sebuah kalimat. Kita harus menggunakan instruksi HLT pada akhir setiap program SAP-1; jika tidak, kita akan mendapatkan sampah komputer (jawaban yang tak memiliki arti disebabkan proses yang lepas kendali).
Instruksi HLT sudah merupakan bentuk instruksi yang lengkap; kita tidak perlu menyertakan kata RAM bilamana menggunakan HLT, sebab instruksi tersebut tidak melibatkan memori.
Instruksi Rujukan Memori
LDA, ADD, dan SUB disebut instruksi-instruksi rujukan memori (memory-reference instructions) karena semua instruksi yang bersangkutan menggunakan data yang tersimpan dalam memori OUT dan HLT, di pihak lain, bukan instruksi-instruksi rujukan-memori karena mereka tidak melibatkan data yang ada di dalam memori.
Mnemonik
LDA, ADD, SUB, OUT, dan HLT adalah perangkat instruksi bagi SAP-1. instruksi-instruksi singkat seperti ini disebut mnemonik (mnemonic, artinya pembantu ingatan). Mnemonik sangat popular dalam pekerjaan komputer karena singkatan-singkatan tersebut. Meningkatkan kita kepada operasi yang akan berlangsung pada waktu instruksi dilaksanakan. Tabel 10-1 merangkumkan perangkat instruksi SAP-1.
8
TABEL 10-1. PERANGKAT INSTRUKSI SAP-1
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
|
080 dan 8085
8080 adalah mikroprosesor pertama yang dipakai secara luas. Mikroprosesor ini memiliki 72 instruksi. Versi yang telah dikembangkan dari 8080 adalah mikroprosesor 8085, dengan perangkat instruksi yang pada dasarnya sama. Untuk membusat SAP menjadi komputer yang berguna secara praktis, instruksi-instruksi SAP harus dibuat kompatibel ke atas dengan perangkat instruksi 8080/ 8085. Dengan kata lain, instruksi SAP-1: LDA, ADD, SUB, OUT dan HLT adalah instruksi-instruksi 8080/8085. Demikian pula, instruksi-instruksi SAP-2 dan SAP-3 akan merupakan bagian dari perangkat instruksi 8080/8085. Pemahaman instruksi SAP akan membuat anda siap untuk mempelajari 8080 dan 8085, dua jenis mikroprosesor yang sangat populer. Sekali anda memahami perangkat instruksi 8080/8085, anda dapat beralih kepada mikroprosesor yang lain.
CONTOH 10-1
Berikut ini adalah sebuah program SAP-1 dalam bentuk mnemonik.
Alamat Mnemonik
OH LDA 9H
1 H ADD AH
2 H ADD BH
3 H SUB CH
4 H OUT
5 H HLT
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 dilakukam oleh setiap instruksi ?
JAWABAN
____________________________________
Program tersebut terdapat dalam bagian memori yang rendah , yaitu terletak pada lokasi dengan alamat 0H sampai 5H. Pelaksanaan instruksi pertama adalah mengisi akumulator dengan isi dari lokasi memori 9H, dengan ini isi akumulator menjadi :
A = 01H
Instruksi kedua adalah menambahkan isi lokasi memori AH pada isi akumulator untuk memperoleh isi akumulator yang baru yaitu :
A = 01H 02H = 03H
Begitu pula pelaksanaan instruksi yang ketiga akan menambahkan isi lokasi memori BH pada akumulator sehingga :
A = 03H 03H = 06H
Instruksi SUB akan mengurangkan isi lokasi memori CH untuk menghasilkan ;
A = 06H – 04H = 02H
Instruksi OUT memindahkan isi akumulator kepada bandar keluaran, dengan demikian peraga biner menyajikan angka
0000 0010
Instruksi HLT menghentikan pemrosesan data.
_______________________________________
10 –3 PEMROGAMAN SAP – 1
Untuk memasukkan instruksi dan kata-data kedalam memori SAP-1 kita harus menggunakan kode tertentu yang dapat ditafsirkan oleh komputer. Tabel 10–2 memperlihatkan kode yang dipakai dalam SAP-1. Bilangan 0000 mewakiliki LDA, 0001 untuk ADD, 0010 untuk SUB, 1110 untuk OUT, dan 1111 untuk HLT. Karena kode-kode ini memberitahu kepada komputer tentang operasi yang harus dilaksanakan. Maka kode yang bersangkutan disebut kode operasi (operation code) ; disingkat opcode).
TABEL 10-2. KODE OPERASI SAP-1
Mnemonik
|
Kode Operasi
|
LDA
|
0000
|
ADD
|
0001
|
SUB
|
0100
|
OUT
|
1110
|
HLT
|
1111
|
Seperti telah dibahas sebelumnya, saklar-saklar alamat dan data dari gambar 9–7 memungkinkan pemrograman memori SAP-1. Berdasarkan rancangan rangkaian, saklar-saklar tersebut menghasilkan logika 1 untuk posisi keatas (U) dan logika 0 untuk posisi Ke bawah (D). Dalam peprograman saklar data dilaksanakan dengan satu instruksi, kode operasi yang akan diberikan sebagai nibble bagian atas, dan operand (pelengkap instruksi ) sebagai nibble bagian bawah.
Sebagai contoh, misalkan kita akan menyimpan instruksi sebagai Berikut : alamat dengan instruksi :
Alamat Instruksi
0H LDA FH
1H ADD EH
2H HLT
Pertama, ubahlah setiap instruksi kedalam bentuk biner :
LDA FH = 0000 1111
ADD EH = 0001 1110
HLT = 1111 XXXX
Dalam instruksi pertama, 0000 adalah kode operasi untuk LDA, dan 1111 adalah ekivalen biner dari FH. Dalam instruksi kedua, 0001 adalah kode operasi untuk ADD, dan 1110 adalah ekivalen biner dari EH. Dalam instruksi ketiga, 1111 adalah kode operasi untuk HLT, dan XX adalah nibble yang tak diperdulikan karena HLT bukan instruksi rujukan – memori.
Selanjutnya , susunlah saklar-saklat alamat dan data sebagai berikut :
Alamat Data
DDDD DDDD UUUU
DDDU DDDU UUUD
DDUD UUUU XXXX
Setiap kali setelah selesai menyusun suatu alamat dan kata- data, tekanlah tombol “tulis” (write). Karena D menyimpan biner 0 dan U menyimpan biner 1, tiga lokasi memori yang pertama sekarang mempunyai isi :
Alamat Data
0000 0000 1111
0001 0001 1110
0010 1111 XXXX
Suatu hal lagi yang perlu diketahui dalam penyusunan program adalah bahwa bahasa asembli (assembly language) menyangkut tata cara penulisan program dan mnemonik, sedangkan bahasa mesin (macine language) menyangkut tata cara penulisan dengan bilangan 0 dan 1, Contoh yang berikut, akan memperjelas perbedaan antara kedua bahasa tersebut.
_________________________________
|