TRANSFER
DATA
Transfer
data :
1.
Menetapkan
operasi operand sumber dan operand tujuan.
2.
Lokasi-lokasi
tersebut dapat berupa memori, register, atau bagian paling atas daripada stack.
3.
Menetapkan
panjang data yang dipindahkan.
4.
Menetapkan
mode pengalamatan.
Tindakan
CPU untuk melakukan transfer data adalah :
·
Memindahkan
data dari suatu lokasi ke lokasi lain.
·
Apabila
memori dilibatkan :
a.
Menetapkan
alamat memori.
b.
Menjalankan
transformasi alamat memori virtual ke alamat memori actual.
c.
Mengawali
pembacaan/penulisan memori.
Operasi
set instruksi untuk transfer data :
ü
MOVE
: Memindahkan word atau blok dari sumber ke tujuan.
ü
STORE
: Memindahkan word dari processor ke memori.
ü
LOAD
: Memindahkan word dari memori ke processor.
ü
EXCHANGE
: Menukar isi sumber ke tujuan.
ü
CLEAR/RESET
: Memindahkan word 0 ke tujuan.
ü
SET
: Memindahkan word 1 ke tujuan.
ü
PUSH
: Memindahkan word dari sumber ke bagian paling atas stack.
ü
POP
: Memindahkan word dari bagian paling atas sumber.
ARITHMETIC
Arithmetic:
Tindakan
CPU untuk melakukan operasi arithmetic :
Ø
Transfer
data sebelum atau sesudah.
Ø
Melakukan
fungsi dalam ALU.
Ø
Menset
kode kondisi dan flag.
Operasi
set instruksi untuk arithmetic :
1.
ADD
: Penjumlahan
2.
SUBTRACT
: Pengurangan
3.
MULTIPLY
: Perkalian
4.
DIVIDE
: Pembagian
5.
ABSOLUTE
6.
NEGATIVE
7.
DECREMENT
8.
INCREMENT
Ket : Operasi no.5-8 merupakan
instruksi operand tunggal.
LOGICAL
Logical
:
Tindakan
CPU untuk melakukan operasi logical :
Ø
Transfer
data sebelum atau sesudah.
Ø
Melakukan
fungsi dalam ALU.
Ø
Menset
kode kondisi dan flag.
Operasi
set instruksi untuk operasi logical :
1.
AND,
OR, NOT, EXOR.
2.
COMPARE
: Melakukan perbandingan logika.
3.
TEST
: Menguji kondisi tertentu.
4.
SHIFT
: Operand menggeser ke kiri atau ke kanan menyebabkan konstanta pada ujung bit.
5.
ROTATE
: Operand menggeser ke kiri atau ke kanan dengan ujung yang terjalin.
TRANSFER
CONTROL
Transfer Control :
Tindakan CPU untuk transfer
control :
Mengupdate program counter untuk ke
subrutin, call, atau return.
Operasi set instruksi untuk transfer
control :
1.
JUMP
(Cabang) : Pemindahan tidak bersyarat dan memuat PC dengan alamat tertentu.
2.
JUMP
BERSYARAT : Menguji persyaratan tertentu dan memuat PC dengan alamat tertentu
atau tidak melakukan apa tergantung dari persyaratan.
3.
JUMP
SUBRUTIN : melompat ke alamat tertentu.
4.
RETURN
: Mengganti isi register dan register lainnya yang berasal dari lokasi
tertentu.
5.
EXECUTE
: Mengambil operand dari lokasi tertentu dan mengeksekusi sebagai instruksi.
6.
SKIP
: Menambah PC sehingga melompati instruksi berikutnya.
7.
SKIP
BERSYARAT : Melompat atau tidak melakukan apa-apa berdasarkan pada persyaratan.
8.
HALT
: Menghentikan eksekusi program.
9.
WAIT
(HOLD) : Melanjutkan eksekusi pada saat
persyaratan dipenuhi.
1. NO OPERATION : Tidak ada operasi
yang dilakukan.
X =
(A+B*C) / (D-E*F)
3 Alamat :
MPY T,
B, C
ADD T,
T, A
MPY Y,
E, F
SUB Y,
D, Y
DIV T,
T, Y
2 Alamat :
MOV T, B
MPY T, C
ADD T, A
MOV Y, E
MPY Y, F
MOV R, D
SUB R, Y
DIV T, R
1 Alamat :
LOAD E
MPY F
STOR Y
LOAD D
SUB Y
LOAD B
MPY C
ADD A
DIV Y
STOR Y
0 Alamat :
PUSH A
PUSH B
PUSH C
MPY
ADD
PUSH D
PUSH E
PUSH F
MPY
SUB
DIV
POP Y
Note :
Saya harus mendahulukan penempatan D sebelum pengurangan/SUBTRACT
(D – E * F) pada setiap alamat, karena apabila
E*F=Y, maka D – Y dan bukan Y – D. Contoh : Hasil Y = 3 dan D = 1 , maka
D – Y =
1 – 3 = - 2
Berbeda
dengan, Y – D = 3 – 1 = 2
Tidak ada komentar:
Posting Komentar