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
Control
Unit
IR
To/from
memory PC
R1
MAR
MBR
R2
ALU1 ALU2
R3
ADDER
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.
- 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
2. 1940 di dalam IR mengindikasikan untuk load AC, jadi isi alamat memori 940 yaitu 0003
di-load ke AC
4. Instruksi 5941, berarti tambahkan ke AC (isi alamat 941 adalah 0002, tambahkan ke AC
yang sudah berisi 0003 menjadi 0005, simpan di AC)
6. Instruksi 2941, artinya simpan ke memori (isi AC 0005, disimpan ke memori 941), PC
bertambah 1
- INSTRUCTION FORMATS
ADDRESSING
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
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
Rn Rn
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 :
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