Anda di halaman 1dari 43

ARSITEKTUR ORGANISASI KOMPUTER

INSTRUCTION SET
(ADDRESSING MODES AND FORMATS)

ini merupakan materi kuliah* Arsitektur Organisasi Komputer Kampus IBI Kosgoro 1957, sebagai
pengganti tatap muka perkuliahan online tanggal 04/05/2020 jam 18.30 s/d 21.10 Wib

*Dilarang mengcopy isi materi tanpa izin dari M. Febriansyah


SET INSTRUKSI

• Set instruksi (instruction set) adalah sekumpulan


lengkap instruksi yang dapat di mengerti oleh
sebuah CPU, set instruksi sering juga disebut
sebagai bahasa mesin (machine code), karna
aslinya juga berbentuk biner kemudian
dimengerti sebagai bahasa assembly.
ELEMEN-ELEMEN DARI INSTRUKSI MESIN (SET INSTRUKSI)
a) Operation Code (opcode) : menentukan operasi yang akan dilaksanakan
b) Source Operand Reference : merupakan input bagi operasi yang akan
dilaksanakan
c) Result Operand Reference : merupakan hasil dari operasi yang
dilaksanakan
d) Next instruction Reference : memberitahu CPU untuk mengambil (fetch)
instruksi berikutnya setelah instruksi yang dijalankan selesai. Source dan
result operands dapat berupa salah satu diantara tiga jenis berikut ini:
· Main or Virtual Memory
· CPU Register
· I/O Device
· Missal instruksi dengan 2 alamat operand : ADD A,B A dan B adalah
suatu alamat register.
BEBERAPA SIMBOLIK INTRUKSI:
• ADD : Add (jumlahkan)
• SUB : Subtract (Kurangkan)
• MPY/MUL : Multiply (Kalikan)
• DIV : Divide (Bagi)
• LOAD : Load data dari register/memory
• STOR : Menyimpan data ke register/memory
• MOVE : Memindahkan data dari satu tempat ke tempat lain
• SHR : Shift kanan data
• SHL : Shift kiri data .dan lain-lain
DESAIN SET INSTRUKSI
• Desain set instruksi merupakan masalah yang sangat komplek yang melibatkan banyak
aspek, diantaranya adalah:
• a) Kelengkapan set instruksi
• b) Ortogonalitas (sifat independensi instruksi)
• c) Kompatibilitas : – Source code compatibility – Object code Compatibility

• Selain ketiga aspek tersebut juga melibatkan hal-hal sebagai berikut:


• a) Operation Repertoire: Berapa banyak dan operasi apa saja yang disediakan, dan
berapa sulit operasinya
• b) Data Types: tipe/jenis data yang dapat olah Instruction Format: panjangnya,
banyaknya alamat, dsb.
• c) Register: Banyaknya register yang dapat digunakan 4.Addressing: Mode
pengalamatan untuk operand
ADDRESSING MODES
• Jenis-jenis addressing modes (Teknik Pengalamatan) yang paling
umum:
• a. Immediate
• b. Direct
• c. Indirect
• d. Register
• e. Register Indirect
• f. Displacement
• g. Stack
TEKNIK PENGALAMATAN
• Untuk menyimpan data ke dalam memori komputer, tentu
memori tersebut diberi identitas (yang disebut dengan alamat/
address) agar ketika data tersebut diperlukan kembali,
komputer bisa mendapatkannya sesuai dengan data yang
pernah diletakkan di sana.
• Teknik pengalamatan ini hampir sudah tidak diperlukan lagi
oleh pemakai komputer saat ini karena hampir seluruh
software yang beredar di pasaran tidak mengharuskan si
pemakai menentukan di alamat mana datanya akan disimpan
(semua sudah otomatis dilakukan oleh si software).
Program biasanya ditulis dalam bahasa tingkat tinggi, yang
memunkinkan program untuk menggunakan konstanta, variable
local dan global, pointer, dan array. Pada saat mentranslasi
program bahsa tingkat tinggi menjadi bahsa assembly, compiler
harus mampu mengimplimentasi konstruksi ini menggunakan
fasilitas yang disediakan dalam set instruksi computer dimana
program akan dijalankan. cara yang berbeda dalam menentukan
lokasi suatu operand ditetapkan dalam suatu instruksi yang
disebut sebagai mode pengalamatan.
Ada tiga teknik dasar untuk pengalamatan, yakni :
a) Pemetaan Langsung
b) Teknik Pencarian Tabel
c) Teknik Kalkulasi Alamat
BENTUK INTRUKSI
• a. Format instruksi 3 alamat
• Mempunyai bentuk umum seperti : [OPCODE][AH],[AO1],[AO2]. Terdiri dari satu
alamat hasil, dan dua alamat operand, misal SUB Y,A,B Yang mempunyai arti dalam
bentuk algoritmik : Y := A – B dan arti dalam bentuk penjelasan : 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
Format instruksi 2 alamat
• Mempunyai bentuk umum : [OPCODE][AH],[AO]. Terdiri dari satu alamat hasil
merangkap operand, satu alamat operand, missal : SUB Y,B yang mempunyai arti dalam
algoritmik : Y:= Y – B dan arti dalam bentuk penjelasan : 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
Format instruksi 1 alamat
• Mempunyai bentuk umum : [OPCODE][AO]. Terdiri dari satu alamat operand, hasil disimpan di
accumulator, misal : SUB B yang mempunyai arti dalam algoritmik : AC : = AC – B dan arti
dalam bentuk penjelasan : 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 := AC – B
• DIV Y AC := AC / Y
• STOR Y Y := AC
Memerlukan 8 operasi
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]
KARAKTERISTIK & FUNGSI SET INSTRUKSI
SET INSTRUKSI ?

• Kumpulan instruksi lengkap yang dimengerti oleh CPU


• Kode mesin
• Biner
• Kode assembly

14
ELEMEN INSTRUKSI

• Operation code (Op code)


• Kerjakan
• Source Operand reference
• Dengan data ini
• Result Operand reference
• Simpan hasilnya kesini
• Next Instruction Reference
• Setelah selesai, kerjakan ini ...

15
OPERANDS ?

• Main memory (or virtual memory or cache)


• CPU register
• I/O device

16
PENYAJIAN INSTRUKSI

• Dlm kode mesin setiap instruksi memiliki pola-bit tertentu


• Untuk konsumsi programmers disediakan penyajian simbolik
• Contoh: ADD, SUB, LOAD
• Operand juga disajikan secara simbolik
• Contoh: ADD A,B

17
JENIS INSTRUKSI

• Data processing
• Data storage (main memory)
• Data movement (I/O)
• Program flow control

18
JUMLAH ADDRES (A)

• 3 addres
• Operand 1, Operand 2, Result
• Contoh: ADD A,B,C
• a = b + c;
• Jarang digunakan
• Perlu word yang panjang

19
JUMLAH ADDRES (B)

• 2 addres
• Salah satu sebagai operand dan result
• Contoh: ADD A,B
• a=a+b
• Instruksi lebih pendek
• Diperlukan kerja ekstra
• Temporary storage untuk menyimpan beberapa hasil operasi

20
JUMLAH ADDRES (C)

• 1 addres
• Addres kedua Implicit
• Biasanya register (accumulator)

21
JUMLAH ADDRES (D)

• 0 (zero) addres
• semua addres implicit
• menggunakan stack
• Contoh:
• push a
• push b
• add
• pop c
• Berarti:
• c=a+b

22
ADDRES BANYAK ? SEDIKIT ?

• Addres banyak
• Instruksi semakin kompleks
• perlu register banyak
• Program lebih pendek
• Lebih cepat ?
• Addres sedikit
• Instruksi lebih sederhana
• Eksekusi lebih cepat

23
PERTIMBANGAN PERANCANGAN (1)

• Operation
• Berapa banyak operand?
• Apa saja operasi yang dikerjakan?
• Seberapa komplekx?
• Jenis data
• Format instruksi
• Panjang opcode
• Jumlah addres

24
PERTIMBANGAN PERANCANGAN (2)

• Register
• Jumlah register yang tersedia dlm CPU
• Operasi apa yg dpt dikerjakan oleh masing-masing registers?
• Addressing modes (…)

• RISC v CISC

25
JENIS OPERAND

• Addres
• Number
• Integer/floating point
• Character
• ASCII etc.
• Logical Data
• Bits or flags

• (Apa ada bedanya antara number dg character?)

26
TIPE DATA PADA PENTIUM

• 8 bit Byte
• 16 bit word
• 32 bit double word
• 64 bit quad word
• Addressing menggunakan 8 bit unit
• 32 bit double word dibaca pada addres yg habis dibagi dg 4

27
TIPE DATA SPECIFIK

• General – sembarang isi biner


• Integer - single binary value
• Ordinal - unsigned integer
• Unpacked BCD - One digit per byte
• Packed BCD - 2 BCD digits per byte
• Near Pointer - 32 bit offset within segment
• Bit field
• Byte String
• Floating Point

28
TIPE DATA FLOATING POINT PADA PENTIUM

• Stallings hal:324

29
JENIS OPERASI

• Data Transfer
• Arithmetic
• Logical
• Conversion
• I/O
• System Control
• Transfer of Control

30
DATA TRANSFER

• menentukan
• Source
• Destination
• Jumlah data
• Beda instruksi untuk setiap data movement yang beda
• pada IBM 370
• Atau satu instruction dengan addres yg beda
• pada VAX

31
ARITHMETIC

• Add, Subtract, Multiply, Divide


• Signed Integer
• Floating point ?
• Termasuk operasi:
• Increment (a++)
• Decrement (a--)
• Negate (-a)

32
LOGICAL

• Bitwise operations
• AND, OR, NOT

33
CONVERSION

• Contoh: Biner ke Decimal

34
INPUT/OUTPUT

• Tersedia instruksi khusus


• Atau digunakan instruksi data movement (memory mapped)
• Atau dikerjakan oleh controller (DMA)

35
SYSTEMS CONTROL

• Privileged instructions
• CPU harus berada pada state tertentu
• Ring 0 pada 80386+
• Kernel mode
• Digunakan oleh operating systems

36
TRANSFER OF CONTROL

• Branch
• Contoh: branch to x if result is zero
• Skip
• Contoh: increment and skip if zero
• ISZ Register1
• Branch xxxx
• ADD A
• Subroutine call
• interrupt call

37
BACA SENDIRI

• Jenis operasi pada Pentium and PowerPC


• Stallings hal:338

38
BYTE ORDER
(BAGIAN DARI CHIPS?)

• Bagaiamana urutan bilangan yang lebih dari 1 byte disimpan/dibaca


• contoh (dalam hex)
• Bilangan 12345678 dapat disimpan pada lokasi 4x8bit sbb:

39
CONTOH BYTE ORDER

• Address Value (1) Value(2)


• 184 12 78
• 185 34 56
• 186 56 34
• 186 78 12

• top down atau bottom up?

40
PENAMAAN BYTE ORDER

• Problem ordering dinamakan Endian


• LSB pada posisi paling kiri (pada addres terkecil)
• Dinamakan big-endian
• LSB pada posisi paling kanan (pada addres terbesar)
• Dinamakan little-endian

41
STANDARD…?

• Pentium (80x86), VAX adalah little-endian


• IBM 370, Motorola 680x0 (Mac), dan RISC yang lain, adalah big-endian
• Internet menggunakan big-endian
• Membuat program untuk Internet pada PC lebih susah.
• WinSock menyediakan htoi (Host to Internet) dan itoh (Internet to Host) untuk
keperluan konversi

42
Terima kasih

Anda mungkin juga menyukai