Anda di halaman 1dari 41

Instruction

Sets
-Addressing Modes and
Formats-

PRESENTED BY:
DR. YESSI JUSMAN, S.T., M.SC
PROGRAM COUNTER (PC) = ALAMAT INSTRUKSI
INSTRUCTION REGISTER (IR) = INSTRUKSI YANG DIEKSEKUSI
ACCUMULATOR(AC/ACC) = PENYIMPANAN SEMENTARA

REGISTER CPU
KOMPONEN KOMPUTER

Program counter (PC) = alamat instruksi

Instruction register (IR) = instruksi yang dieksekusi

Accumulator(AC/ACC) = penyimpanan sementara

Memory Buffer Register (MBR)= isi alamat instruksi

Memory Address Register (MAR)= alamat instruksi


Issue : platform of processing, yield to processing speed

Control
Unit
IR
To/from
memory PC
R1
MAR
MBR

R2

ALU1 ALU2

R3

ADDER

ALU3 Op-Code Operand-1 Operand-2

ADD A B
BUS
P R O G R A M C O U N T E R ( P C ) = A L A M AT I N S T R U K S I

I N S T R U C T I O N R E G I S T E R ( I R ) = I N S T R U K S I YA N G D I E K S E K U S I

A C C U M U L AT O R ( A C / A C C ) = P E N Y I M P A N A N S E M E N TA R A

M E M O R Y B U F F E R R E G I S T E R ( M B R ) , M E N Y I M P A N I S I D A R I A L A M AT I N S T R U K S I

M E M O R Y A D D R E S S R E G I S T E R ( M A R ) , M E N Y I M P A N A L A M AT I N S T R U K S I

I N S T R U C T I O N R E G I S T E R ( I R ) , B E R I S I I N S T R U K S I YA N G A K A N D I E K S E K U S I .

P R O G R A M C O U N T E R ( P C ) , B E R I S I A L A M AT P A S A N G A N I N S T R U K S I B E R I K U T N Y A Y A N G A K A N D I A M B I L D A R I M E M O R I .

A C C U M U L AT O R ( A C / A C C ) D I G U N A K A N U N T U K P E N Y I M P A N A N S E M E N TA R A O P E R A N D D A N H A S I L A L U .

REGISTER CPU
BAGAIMANA CARA MENUNJUK SEBUAH ALAMAT DI MANA OPERAND
AKAN DIAMBIL
MODE PENGALAMATAN DITERAPKAN PADA SET INSTRUKSI, DIMANA
PADA UMUMNYA INSTRUKSI TERDIRI DARI OPCODE (KODE OPERASI)
DAN ALAMAT

- MODE PENGALAMATAN
• Format instruksi terdiri atas dua bagian yaitu
opcode (operation code) dan address operation.

• Panjangnya instruksi (jumlah bit instruksi)


ditentukan oleh word length masing-masing
sistem.

• Gambar 4.7 dibawah menunjukkan contoh format


isntruksi sepanjang 16 bit, terbagi atas 4 bit
opcode dan 12 bit alamat data.

• Kode operasi yang tampak pada gambar dibawah


dimulai dari 0000 sampai dengan 1111

• Setiap kombinasi empat bit biner memiliki makna


yang berbeda sebagaimana tampak pada bagian
“d” pada gambar.

- MODE PENGALAMATAN
CONTOH OPCODE: (2)=BINER, (16)=HEXADESIMAL
0001(2) = 1(16) = LOAD AC DARI MEMORI
0010(2) = 2(16) = SIMPAN AC PADA MEMORI
0101(2) = 5(16) = TAMBAHKAN PADA AC DARI MEMORI
0110(2) = 6(16) = KURANGKAN ISI AC DARI MEMORI

- CONTOH PROSES EKSEKUSI PROGRAM


CONTOH PROSES EKSEKUSI PROGRAM
1. PC berisi 300, alamat dari instruksi pertama (1940 – 1 adalah opcode dalam
hexadesimal, 940 adalah alamat memori dimana data akan diambil). Instruksi 1940 di-
load ke dalam IR dan PC bertambah 1.

2. 1940 di dalam IR mengindikasikan untuk load AC, jadi isi alamat memori 940 yaitu 0003
di-load ke AC

3. Instruksi selanjutnya 5941, disimpan di IR, PC bertambah 1

4. Instruksi 5941, berarti tambahkan ke AC (isi alamat 941 adalah 0002, tambahkan ke AC
yang sudah berisi 0003 menjadi 0005, simpan di AC)

5. Instruksi 2941 di simpan di IR

6. Instruksi 2941, artinya simpan ke memori (isi AC 0005, disimpan ke memori 941), PC
bertambah 1

CONTOH PROSES EKSEKUSI PROGRAM


Jika diketahui PC : program counter; IR : Instruction Register ; AC : Accumulator, temporary
storage. Perintah terdiri dari 16 bit (4 Hexadecimal); 4 bit pertama adalah “instruksi” dan 12 bit
sisanya adalah alamat memori dengar daftar opcode dan informasi sebagai berikut

SOAL TUGAS 2 PENGURANGAN


Jika diketahui PC : program counter; IR : Instruction Register ; AC : Accumulator, temporary
storage. Perintah terdiri dari 16 bit (4 Hexadecimal); 4 bit pertama adalah “instruksi” dan 12 bit
sisanya adalah alamat memory. dengar daftar opcode dan informasi sebagai berikut.

SOAL TUGAS 2 PENAMBAHAN


Jika diketahui PC : program counter; IR : Instruction Register ; AC : Accumulator, temporary
storage. Perintah terdiri dari 16 bit (4 Hexadecimal); 4 bit pertama adalah “instruksi” dan 12 bit
sisanya adalah alamat memory. dengar daftar opcode dan informasi sebagai berikut.

SOAL TUGAS 2 PERKALIAN


Jika diketahui PC : program counter; IR : Instruction Register ; AC : Accumulator, temporary
storage. Perintah terdiri dari 16 bit (4 Hexadecimal); 4 bit pertama adalah “instruksi” dan 12 bit
sisanya adalah alamat memory. dengar daftar opcode dan informasi sebagai berikut.

SOAL TUGAS 2 PEMBAGIAN


FORMAT OF I N ST RU C T IONS REF L EC T S T HE D ES I G N ER’ S G OAL OF T HE MAC H I N E
PERFORMAN C E AN D F L EX I BI LIT Y
L EN GT H OF I N ST RUC T ION VARI ES , D EPEN D I N G I N T HE PU RPOS E. MOST
I N STRUC T IONS C HOOSES THE L EN GTH EQUAL TO THE B ASI C TRAN SF ER
I N FORMAT I ON UN I T ( WORD , 16 OR 3 2 B I T S )
AL LOC AT I ON OF B I T S , U S UAL LY D EPEN D S ON AD D RES S I N G MOD ES I T U S ED .
REG I ST ER AD D RES S I N G FOR I N STAN C E, TAK ES L ES S S PAC E T HAN AB S OLU T E
AD D RES S I N G .
VARI AB L E L EN GT H I N ST RU C T ION L I K E I N T EL 8 0 8 0 FOR I N STAN CE, MAK ES
I N ST RUC T ION F ETC H C ON S U MES AN OT HER C YC L ES
U S E F I X ED WORD I N ST RUC T ION FOR FAST ER F ETC H C YC L E

- INSTRUCTION FORMATS
ADDRESSING

• Instructions is designed to be able to reference a large range of


locations in main memory
• To achieve this objective, a variety of addressing technique have been
employed.
• Trade off between address range and/or the complexity of address
calculation
• The addressing techniques are :
Immediate, direct, indirect, register, register indirect, displacement,
stack
Issue : flexibilty of operand location, trade off between flexibility of
location and processing speed
Jenis Mode Pengalamatan
Secara garis besar ada 3 jenis :
Direct
◦ Alamat operand ditunjuk secara langsung pada instruksi
◦ Contoh : instruksi LOAD, cara penulisan : LOAD Y
Indirect
◦ Alamat operand ditunjukkan secara tidak langsung oleh data yang terkandung pada alamat
yang ditunjuk
◦ Cara penulisan : LOAD (Y)
Immediate
◦ Alamat operand tidak berisi sebuah alamat, tetapi langsung operand yang akan diproses
◦ Cara penulisan : LOAD #9
Penerapan Mode Pengalamatan
Misalkan kita memiliki contoh register dan memory sebagai berikut
(bagian kiri alamat, kanan datanya):
Memory

Register 0 70

A 1 10

B 2 12

C 50 3 43

D 51 …

… 50 3

Y 51 7

Z 52 10

AC …

IR 100 5

PC 101 6

… 102 15
Direct
Untuk pemanggilan alamat operand berupa register disebut Register
Addressing
◦ Contoh : LOAD C, akan menghasilkan
ACC ← 50, karena alamat register C berisi 50
Untuk pemanggilan alamat operand berupa memory disebut Direct
Addressing
◦ Contoh : LOAD 3, akan menghasilkan
ACC ← 43, karena alamat memory 3 berisi bilangan 43
Indirect
Untuk pemanggilan alamat operand berupa register namanya
Register Indirect Addressing
◦ Contoh : LOAD (D), akan menghasilkan ACC ← 7, karena alamat register D
berisi alamat memory 51, sedangkan alamat memory 51 berisi bilangan 7

Untuk pemanggilan alamat operand berupa memory namanya


Indirect Addressing
◦ Contoh : LOAD (50), akan menghasilkan ACC ← 43, karena alamat
memory 50 berisi alamat memory 3, sedangkan alamat memory 3 berisi
bilangan 43
Displacement / Penggantian
Merupakan alamat relatif, artinya alamat operand yang dituju
berjarak n alamat dari sebuah alamat yang diekspresikan secara
indirect
Contoh : LOAD (C) + 50
akan menghasilkan ACC ← 5, karena alamat register C berisi
alamat 50, sedangkan alamat yang dituju berjarak +50 darinya.
50 + 50 = 100. Alamat 100 berisi bilangan 5
Immediate
Immediate tidak membutuhkan alamat memory/register, karena
tempat untuk alamat operand diisi langsung oleh bilangan
operand-nya
Contoh 1 : LOAD #9, akan menghasilkan ACC ← 9, nilai di
belakang tanda # dianggap sebagai operand-nya
Contoh 2 : ADD Y, #2, #3, akan menghasilkan register Y ← 5,
kedua operand adalah 2 dan 3, dengan demikian 2+3 = 5
Addressing Modes
Operand A
Instruction Instruction

Memory

(a) Immediate
LDA #100

Operand

(b) Direct
LDA A
Addressing Modes - continued.1
A Ri
Instruction Instruction

Memory
Registers
R1

(address) Operand Ri

Memory
location Rn
(c) Indirect
(d) Register
LDA @A
MOV R1
Addressing Modes - continued.2
Op-code Ri Ri A
Instruction Instruction

Memory Memory
Registers Registers
R1 R1

Ri (base addr.)  Operand


Ri (address) Operand

Rn Rn

(e) Register Indirect (f) Displacement


LDA (R1) LDA 100(R1)
Addressing Mode - continued.3

Instruction

Implicit

Top of Stack

(g) Stack
Stack addressing
Contoh Soal
Berapakah isi register Y?
Gunakan kondisi register dan memori yang ada!
LOAD (C)
Register Memory
ADD 3 A 0 70
SUB (0) B 1 10

MPY (C) + 50 C 50 2 12
D 51 3 43
DIV #9
… …
STOR Y Y 50 3
Z 51 7
AC 52 10
IR …
PC 100 5
… 101 6
102 15
OPERASI SET INSTRUKSI UNTUK TRANSFER DATA :

MOVE : memindahkan word atau blok dari sumber ke tujuan


STORE : memindahkan word dari prosesor ke memori.
LOAD : memindahkan word dari memori ke prosesor.
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

Tindakan CPU untuk melakukan operasi arithmetic :


1. Transfer data sebelum atau sesudah.
2. Melakukan fungsi dalam ALU.
3. Menset kode-kode kondisi dan flag.
Operasi set instruksi untuk arithmetic :
1. ADD : penjumlahan 5. ABSOLUTE
2. SUBTRACT : pengurangan 6. NEGATIVE
3. MULTIPLY : perkalian 7. DECREMENT
4. DIVIDE : pembagian 8. INCREMENT
Nomor 5 sampai 8 merupakan instruksi operand
tunggal.
1.Format instruksi 3 alamat
Mempunyai bentuk umum seperti : [OPCODE][AH],[AO1],[AO2]. Terdiri dari satu alamt hasil, dan dua
alamat operand

Cotoh: SUB Y,A,B → Y := A – B

Arti : kurangkan isi reg a dengan isi reg B, kemudian simpan hasilnya di reg Y. bentuk bentuk pada
format ini tidak umum digunakan di dalam computer, tetapi tidak dimungkinkan ada pengunaanya,
dalam peongoprasianya banyak register sekaligus dan program lebih pendek.

Contoh:
A, B, C, D, E, T, Y adalah register
Program: Y = (A – B) / ( C + D × E)
SUB Y, A, B Y := A – B
MPY T, D, E T := D × E
ADD T, T, C T := T + C
DIV Y, Y, T Y := Y / T
Memerlukan 4 operasi
2. Format instruksi 2 alamat
Mempunyai bentuk umum : [OPCODE][AH],[AO]. Terdiri dari satu alamat hasil
merangkap operand, satu alamat operand
Contoh: SUB Y,B → Y:= Y – B
Arti : kurangkan isi reg Y dengan isi reg B, kemudian simpan hasillnya di reg Y. bentuk
bentuk format ini masih digunakan di computer sekarang, untuk mengoprasikan
lebih sedikit register, tapi panjang program tidak bertambah terlalu banyak.
Contoh :
A, B, C, D, E, T, Y adalah register
Program: Y = (A – B) / ( C + D × E)
MOVE Y, A Y := A
SUB Y, B Y := Y - B
MOVE T, D T := D
MPY T, E T := T × E
ADD T, C T := T + C
DIV Y, T Y := Y / T
Memerlukan 6 operasi
3. Format instruksi 1 alamat
Mempunyai bentuk umum : [OPCODE][AO]. Terdiri dari satu alamat operand, hasil disimpan di
accumulator
Contoh : SUB B → AC:= AC – B
Arti : kurangkan isi Acc dengan isi reg B, kemudian simpan hasillnya di reg Acc. bentuk bentuk
format ini masih digunakan di computer jaman dahulu, untuk mengoprasikan di perlukan
satu register, tapi panjang program semakin bertambah.
Contoh :
A, B, C, D, E, Y adalah register
Program: Y = (A – B) / ( C + D × E)
LOAD D AC= D
MPY E AC= AC × E
ADD C AC= AC + C
STOR Y Y = AC
LOAD A AC:= A
SUB B AC= A – B
DIV Y AC= AC / Y
STOR Y Y= ACC
Memerlukan 8 operasi
4.Format instruksi 0 alamat
Mempunyai bentuk umum : [OPCODE]. Terdiri dari semua alamat operand implicit, disimpan dalam
bentuk stack. Operasi yang biasanya membutuhkan 2 operand, akan mengambil isi stack paling atas
dan dibawahnya missal : SUB yang mempunyai arti dalam algoritmik : S[top]:=S[top-1]-S[top] dan arti
dalam bentuk penjelasan : kurangkan isi stack no2 dari atas dengan isi stack paling atas, kemudian
simpan hasilnya di stack paling atas, untuk mengoprasikan ada beberapa instruksi khusus stack PUSH
dan POP.
Contoh :
A, B, C, D, E, Y adalah register
Program: Y = (A – B) / ( C + D × E)
PUSH A S[top] := A
PUSH B S[top] := B
SUB S[top] := A - B
PUSH C S[top] := C
PUSH D S[top] := D
PUSH E S[top] := E
MPY S[top] := D × E
ADD S[top] := C + S[top]
DIV S[top] := (A - B) /S[top]
POP Y Out := S[top]
Memerlukan 10 operasi
Contoh Soal
Berapakah isi register Y?
Gunakan kondisi register dan memori yang ada! ALGORITMIK ISI ACC
INSTRUKSI
AC ← 3 3
LOAD (C)
AC ← AC + 43 46
ADD 3
AC ← AC - 10 36
SUB (0)
AC ← AC X 5 180
MPY (C) + 50
AC ← AC/9 20
DIV #9
Y ← 20
STOR Y

Register Y berisi 20
Soal Tugas 2
Y = (A-B+C) / (F-D*E)
a. Selesaikan persamaan diatas dengan menggunakan tiga alamat instruksi
b. Selesaikan persamaan diatas dengan menggunakan dua alamat instruksi
c. Selesaikan persamaan diatas dengan menggunakan satu alamat instruksi
d. Selesaikan persamaan diatas dengan menggunakan nol alamat instruksi

Y= (A+B*C)/ (D+E-F)
a. Selesaikan persamaan diatas dengan menggunakan tiga alamat instruksi
b. Selesaikan persamaan diatas dengan menggunakan dua alamat instruksi
c. Selesaikan persamaan diatas dengan menggunakan satu alamat instruksi
d. Selesaikan persamaan diatas dengan menggunakan nol alamat instruksi

Y= (A*B)-(C+D)/F
a. Selesaikan persamaan diatas dengan menggunakan tiga alamat instruksi
b. Selesaikan persamaan diatas dengan menggunakan dua alamat instruksi
c. Selesaikan persamaan diatas dengan menggunakan satu alamat instruksi
d. Selesaikan persamaan diatas dengan menggunakan nol alamat instruksi
Tipe-Tipe Instruksi
Pada bahasa pemrograman tingkat tinggi, misal C, contoh : x = x +y;

Statemen tersebut memberi instruksi kepada komputer untuk menambah nilai yang tersimpan di
x dengan nilai yang tersimpan di y dan meletakkan hasilnya di x
Tipe-Tipe Instruksi
Pada bahasa mesin, operasi tersebut membutuhkan tiga instruksi
(misalnya variabel x dan y terletak di lokasi 513 dan 514) :
◦ Load register berisi lokasi memori 513
◦ Tambahkan isi lokasi memori 514 ke register
◦ Simpan isi register di lokasi memori 513
Bahasa pemrograman tingkat tinggi mengekspresikan operasi
dalam bentuk aljabar ringkas, menggunakan variabel
Bahasa mesin mengekspresikan operasi dalam bentuk dasar
melibatkan perpindahan data dari dan ke register
Tipe-Tipe Instruksi
Komputer harus memiliki suatu set instruksi supaya user dapat
memformulasikan pemrosesan data
Program yang ditulis dalam bahasa pemrograman tingkat tinggi
harus diterjemahkan ke bahasa mesin untuk
dijalankan/dieksekusi
Jadi, set instruksi harus mencukupi untuk menjalankan instruksi
dari bahasa tingkat tinggi
Tipe-Tipe Instruksi
Instruksi Aritmatika dan Logika (Arithmetic and Logic Instruction)
◦ Data Processing, contoh : ADD, SUB, MPY, DIV, OR, AND
Instruksi Memory (Memory Instruction)
◦ Data Storage, contoh : LOAD, STOR
Instruksi I/O (I/O Instruction)
◦ Data Movement
Instruksi Test dan Branch (Test And Brach Instruction)
◦ Control
SOAL TUGAS 2 ARITMATIKA KOMPUTER
Terimakasih
dan
Semangat

- DR. YESSI JUSMAN,S.T., M.SC


https://www.scopus.com/authid/detail.uri?authorId=35810354700

Anda mungkin juga menyukai