mata kuliah: organisasi komputer · mudah untuk menggunakan notasi desimal yang telah dikenal....

35
ORGANISASI KOMPUTER MATA KULIAH: PRODI PENDIDIKAN TEKNIK INFORMATIKA DAN KOMPUTER JURUSAN PENDIDIKAN TEKNIK ELEKTRO FAKULTAS TEKNIK UNIVERSITAS NEGERI MAKASSAR 2011 INSTRUKSI MESIN DAN PROGRAM By: AYU ANGGRIANI H_092904010 1

Upload: nguyendang

Post on 06-Mar-2019

228 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: MATA KULIAH: ORGANISASI KOMPUTER · mudah untuk menggunakan notasi desimal yang telah dikenal. Tentu saja, nilai tersebut disimpan dalam komputer sebagai bilangan biner. Pada beberapa

ORGANISASI KOMPUTER

MATA KULIAH:

PRODI PENDIDIKAN TEKNIK INFORMATIKA DAN KOMPUTER JURUSAN PENDIDIKAN TEKNIK ELEKTRO

FAKULTAS TEKNIK UNIVERSITAS NEGERI MAKASSAR

2011

INSTRUKSI MESIN DAN PROGRAM

By: AYU ANGGRIANI H_092904010 1

Page 2: MATA KULIAH: ORGANISASI KOMPUTER · mudah untuk menggunakan notasi desimal yang telah dikenal. Tentu saja, nilai tersebut disimpan dalam komputer sebagai bilangan biner. Pada beberapa

CREATED BY: AYU ANGGRIANI H

092904010

PTIK A 2009

By: AYU ANGGRIANI H_092904010 2

Page 3: MATA KULIAH: ORGANISASI KOMPUTER · mudah untuk menggunakan notasi desimal yang telah dikenal. Tentu saja, nilai tersebut disimpan dalam komputer sebagai bilangan biner. Pada beberapa

Bahasa Assembly 1. Assembler Directive 2. Assembler dan Eksekusi Program 3. Notasi Bilangan

Operasi input/output dasar Stack dan Queu Subroutine

1. Subroutine Nesting dan Stack Prosesor 2. Parameter Passing 3. Stack Frame

Instruksi Tambahan 1. Instruksi Logika 2. Instruksi Shift dan Rotate 3. Perkalian dan Pembagian

Program Contoh 1. Program Vector Dot Product 2. Program Byte-Sorting 3. Linked List

Encoding Instruksi Mesin By: AYU ANGGRIANI H_092904010 3

Page 4: MATA KULIAH: ORGANISASI KOMPUTER · mudah untuk menggunakan notasi desimal yang telah dikenal. Tentu saja, nilai tersebut disimpan dalam komputer sebagai bilangan biner. Pada beberapa

PENDAHULUAN

Instruksi Mesin dan Program membahas cara program

dieksekusi dalam komputer dari sudut pandang instruksi

mesin. Penekanannya adalah pada konsep dasar. Kita

menggunakan cara umum untuk mendeskripsikan instruksi

mesin dan metode pengalamatan operand yang biasanya

terdapat pada prosesor komersial. Sejumlah instruksi dan

metode pengalamatan diperkenalkan untuk membantu kita

menampilkan program realistik yang lengkap untuk

menjalankan suatu tugas sederhana. Program umum ini

ditetapkan pada tingkat bahasa assembly.

Bahasa assembly adalah representasi bahasa mesin yang

dapat dibaca untuk prosesor. Fitur hubungan antara bahasa

tingkat-tinggi dan bahasa mesin adalah pertimbangan utama

dalam desain komputer.

By: AYU ANGGRIANI H_092904010 4

Page 5: MATA KULIAH: ORGANISASI KOMPUTER · mudah untuk menggunakan notasi desimal yang telah dikenal. Tentu saja, nilai tersebut disimpan dalam komputer sebagai bilangan biner. Pada beberapa

A. BAHASA ASSEMBLY

Set lengkap nama simbolik semacam dan aturan penggunaannya

membentuk bahasa pemrograman, yang biasanya disebut sebagai

bahasa assembly. Set aturan untuk menggunakan mnemonic

dalam spesifikasi instruksi dan program lengkap disebut syntax

bahasa.

Program yang ditulis dalam bahasa assembly dapat secara

otomatis ditranslasikan ke rangkaian instruksi mesin oleh suatu

program yang disebut assembler. Program assembler adalah salah

satu kumpulan program yang merupakan bagian dari software

sistem.

By: AYU ANGGRIANI H_092904010 5

Page 6: MATA KULIAH: ORGANISASI KOMPUTER · mudah untuk menggunakan notasi desimal yang telah dikenal. Tentu saja, nilai tersebut disimpan dalam komputer sebagai bilangan biner. Pada beberapa

•ASSEMBLER DIRECTIVE

Selain menyediakan mekanisme untuk menyatakan instruksi

dalam suatu program, bahasa assembly memungkinkan

programer untuk menetapkan informasi lain yang diperlukan

untuk mentranslasikan source program ke dalam object

program.

By: AYU ANGGRIANI H_092904010 6

Page 7: MATA KULIAH: ORGANISASI KOMPUTER · mudah untuk menggunakan notasi desimal yang telah dikenal. Tentu saja, nilai tersebut disimpan dalam komputer sebagai bilangan biner. Pada beberapa

By: AYU ANGGRIANI H_092904010 7

Page 8: MATA KULIAH: ORGANISASI KOMPUTER · mudah untuk menggunakan notasi desimal yang telah dikenal. Tentu saja, nilai tersebut disimpan dalam komputer sebagai bilangan biner. Pada beberapa

By: AYU ANGGRIANI H_092904010 8

Page 9: MATA KULIAH: ORGANISASI KOMPUTER · mudah untuk menggunakan notasi desimal yang telah dikenal. Tentu saja, nilai tersebut disimpan dalam komputer sebagai bilangan biner. Pada beberapa

•ASSEMBLY DAN EKSEKUSI PROGRAM

Source program yang ditulis dalam bahasa assembly harus

diassemblem menjadi object program bahasa mesin sebelum

dapat dieksekusi. Hal ini dilakukan oleh program assembler,

yang mengganti semua simbol untuk mode operasi dan

penggalamatan dengan kode biner yang digunakaa dalam

instruksi mesin, dan mengganti semua nama dan label dengan

nilai sebenarnya.

By: AYU ANGGRIANI H_092904010 9

Page 10: MATA KULIAH: ORGANISASI KOMPUTER · mudah untuk menggunakan notasi desimal yang telah dikenal. Tentu saja, nilai tersebut disimpan dalam komputer sebagai bilangan biner. Pada beberapa

•NOTAS1 BILANGAN

Pada saat berhadapan dengan nilai numerik, seringkali lebih

mudah untuk menggunakan notasi desimal yang telah dikenal.

Tentu saja, nilai tersebut disimpan dalam komputer sebagai

bilangan biner. Pada beberapa situasi, lebih mudah untuk

menetapkan pola biner secara langsung. Kebanyakan

assembler memungkinkan bilangan numerik dinyatakan

dengan berbagai cara yang berbeda, menggunakan konvensi

yang ditetapkan oleh syntax bahasa assembly.

By: AYU ANGGRIANI H_092904010 10

Page 11: MATA KULIAH: ORGANISASI KOMPUTER · mudah untuk menggunakan notasi desimal yang telah dikenal. Tentu saja, nilai tersebut disimpan dalam komputer sebagai bilangan biner. Pada beberapa

B. OPERASI INPUT/OUTPUT DASAR

Bagian sebelumnya dalam bab ini mendeskripsikan instruksi

mesin dan mode pengalamatan. Kita telah mengasumsikan bahwa

data yang dikenai operasi instruksi ini telah disimpan dalam

memori. Kita sekarang membahas sarana yang digunakan untuk

mentransfer data antara memori komputer dan dunia luar. Operasi

Input/Output (I/O) sangat penting, dan cara operasi tersebut

dijalankan dapat memiliki efek yang signifikan pada performa

komputer.

By: AYU ANGGRIANI H_092904010 11

Page 12: MATA KULIAH: ORGANISASI KOMPUTER · mudah untuk menggunakan notasi desimal yang telah dikenal. Tentu saja, nilai tersebut disimpan dalam komputer sebagai bilangan biner. Pada beberapa

By: AYU ANGGRIANI H_092904010 12

Page 13: MATA KULIAH: ORGANISASI KOMPUTER · mudah untuk menggunakan notasi desimal yang telah dikenal. Tentu saja, nilai tersebut disimpan dalam komputer sebagai bilangan biner. Pada beberapa

C. STACK DAN QUEU

Program komputer seringkali memerlukan subtask tertentu

yang menggunakan struktur subroutine yang umum. Untuk

mengatur hubungan kontrol dan infonnasi antara program utama

dan subrotine, maka digunakan suatu struktur data yang disebut

stack. Bagian ini akan mendeskripsikan stack, dan struktur data

yang berhubungan erat dengannya yang disebut queu.

By: AYU ANGGRIANI H_092904010 13

Page 14: MATA KULIAH: ORGANISASI KOMPUTER · mudah untuk menggunakan notasi desimal yang telah dikenal. Tentu saja, nilai tersebut disimpan dalam komputer sebagai bilangan biner. Pada beberapa

By: AYU ANGGRIANI H_092904010 14

Page 15: MATA KULIAH: ORGANISASI KOMPUTER · mudah untuk menggunakan notasi desimal yang telah dikenal. Tentu saja, nilai tersebut disimpan dalam komputer sebagai bilangan biner. Pada beberapa

By: AYU ANGGRIANI H_092904010 15

Page 16: MATA KULIAH: ORGANISASI KOMPUTER · mudah untuk menggunakan notasi desimal yang telah dikenal. Tentu saja, nilai tersebut disimpan dalam komputer sebagai bilangan biner. Pada beberapa

D. SUBROUTINE

Pada suatu program, seringkali perlu untuk melakukan

subtask tertentu berulangkali pada nilai data yang berbeda.

Subtask semacam itu biasanya disebut subroutine. Misalnya,

suatu subroutine dapat mengevaluasi fungsi sinus atau

mensortir suatu list nilai menjadi urutan meningkat atau

menurun.

Instruksi Call hanyalah instruksi branch khusus yang melakukan

operasi berikut:

• Menyimpan isi PC dalam link register

• Branch ke alamat target yang ditetapkan oleh instruksi

Instruksi Return adalah instruksi branch khusus yang melakukan

operasi berikut:

• Branch ke alamat yang terdapat dalam link register.

By: AYU ANGGRIANI H_092904010 16

Page 17: MATA KULIAH: ORGANISASI KOMPUTER · mudah untuk menggunakan notasi desimal yang telah dikenal. Tentu saja, nilai tersebut disimpan dalam komputer sebagai bilangan biner. Pada beberapa

•SUBROUTINE NESTING DAN STACK PROSESOR

Praktek pemrograman umum, yang disebut subroutine nesting,

adalah menggunakan satu sub routine untuk memanggil

subroutine lain. Dalam hat ini, return address call yang kedua juga

disimpan dalam link register, menghancurkan isi sebelumnya.

By: AYU ANGGRIANI H_092904010 17

Page 18: MATA KULIAH: ORGANISASI KOMPUTER · mudah untuk menggunakan notasi desimal yang telah dikenal. Tentu saja, nilai tersebut disimpan dalam komputer sebagai bilangan biner. Pada beberapa

• PARAMETER PASSING

Pada saat calling suatu subroutine, suatu program harus

menyediakan parameter ke subroutine, yaitu operand atau

alamatnya, yang akan digunakan dalam komputasi.

Selanjutnya, subroutine mengembalikan parameter lain, dalam

hal ini, hasil komputasi tersebut. Pertukaran informasi antara

calling program dan subroutine disebut sebagai parameter

passing. Parameter passing dapat dilakukan dengan beberapa

cara. Parameter tersebut dapat ditempatkan dalam register atau

dalam lokasi memori, sehingga dapat diakses oleh subroutine.

Atau alternatif lainnya, parameter tersebut dapat ditempatkan

pada stack prosesor yang digunakan untuk menyimpan return

address.

By: AYU ANGGRIANI H_092904010 18

Page 19: MATA KULIAH: ORGANISASI KOMPUTER · mudah untuk menggunakan notasi desimal yang telah dikenal. Tentu saja, nilai tersebut disimpan dalam komputer sebagai bilangan biner. Pada beberapa

By: AYU ANGGRIANI H_092904010 19

Page 20: MATA KULIAH: ORGANISASI KOMPUTER · mudah untuk menggunakan notasi desimal yang telah dikenal. Tentu saja, nilai tersebut disimpan dalam komputer sebagai bilangan biner. Pada beberapa

•STACK FRAME

Sekarang amatilah bagaimana stack digunakan dalam contoh pada

Gambar 2.26. Selama eksekusi subroutine, enam lokasi pada puncak

stack berisi entri yang diperlukan oleh subroutine tersebut. Lokasi

ini merupakan ruang kerja privat untuk subroutine, dibuat pada saat

subroutine dimasuki dan dikosongkan pada saat subroutine

mengembalikan kontrol ke calling program. Ruang semacam itu

disebut stack frame. Jika subroutine memerlukan lebih banyak ruang

untuk variabel mernori lokal, maka dapat juga dialokasikan pada

stack.

By: AYU ANGGRIANI H_092904010 20

Page 21: MATA KULIAH: ORGANISASI KOMPUTER · mudah untuk menggunakan notasi desimal yang telah dikenal. Tentu saja, nilai tersebut disimpan dalam komputer sebagai bilangan biner. Pada beberapa

By: AYU ANGGRIANI H_092904010 21

Page 22: MATA KULIAH: ORGANISASI KOMPUTER · mudah untuk menggunakan notasi desimal yang telah dikenal. Tentu saja, nilai tersebut disimpan dalam komputer sebagai bilangan biner. Pada beberapa

By: AYU ANGGRIANI H_092904010 22

Page 23: MATA KULIAH: ORGANISASI KOMPUTER · mudah untuk menggunakan notasi desimal yang telah dikenal. Tentu saja, nilai tersebut disimpan dalam komputer sebagai bilangan biner. Pada beberapa

By: AYU ANGGRIANI H_092904010 23

Page 24: MATA KULIAH: ORGANISASI KOMPUTER · mudah untuk menggunakan notasi desimal yang telah dikenal. Tentu saja, nilai tersebut disimpan dalam komputer sebagai bilangan biner. Pada beberapa

E. INSTRUKSI TAMBAHAN

Sejauh ini kita telah memperkenalkan instruksi berikut:

Move, Load, Store, Clear, Add, Subtract, Increment,

Decrement, Branch, Testbit, Compare, Call, dan Return. 13

Instruksi ini, bersama dengan mode pengalamatan dalam

Tabel 2.1, telah memungkinkan kita untuk menuliskan

routine untuk mengilustrasikan operasi memory-mapped I/O

dasar.

By: AYU ANGGRIANI H_092904010 24

Page 25: MATA KULIAH: ORGANISASI KOMPUTER · mudah untuk menggunakan notasi desimal yang telah dikenal. Tentu saja, nilai tersebut disimpan dalam komputer sebagai bilangan biner. Pada beberapa

a. INSTRUKSI LOGIKA

Operasi logika,seperti AND, OR, dan NOT yang diterapkan pada

bit individu, adalah blok bangunan dasar dari sirkuit digital,

sebagaimana dideskripsikan dalam Apendiks A. Juga akan

menggunakan instruksi yang menerapkan operasi ini ke semua bit

word atau byte secara mandiri dan paralel.

b. INSTRUKSI SHIF DAN ROTATE

Terdapat banyak aplikasi yang meminta bit suatu operand di-

shift sejumlah posisi bit tertentu ke kanan atau kiri. Detil

bagaimana shift tersebut dilakukan tergantung pada apakah

operand tersebut adalah bilangan bertanda atau beberapa

informasi binary-code yang lebih umum.

By: AYU ANGGRIANI H_092904010 25

Page 26: MATA KULIAH: ORGANISASI KOMPUTER · mudah untuk menggunakan notasi desimal yang telah dikenal. Tentu saja, nilai tersebut disimpan dalam komputer sebagai bilangan biner. Pada beberapa

SHIFT LOGIKA

Diperlukan dua instruksi shift logika, satu untuk menggeser ke

kiri (LshiftL) dan yang lain untuk menggeser ke kanan (LshiftR).

R0 C

0 1 1 1 0 . . . 0 1 1

0

1 1 0 . . . 0 1 1 0 0 1

0 Sebelum

Sesudah

(a.) Logical shift left Lshift#2,R0

CONTOH DIGIT-PACKING Instruksi shift logika dan aritmatika

By: AYU ANGGRIANI H_092904010 26

Page 27: MATA KULIAH: ORGANISASI KOMPUTER · mudah untuk menggunakan notasi desimal yang telah dikenal. Tentu saja, nilai tersebut disimpan dalam komputer sebagai bilangan biner. Pada beberapa

R0

0 1 1 1 0 . . . 0 1 1

0 0 0 1 1 1 0 . . . 0

1 1 1 0 0 1 1 . . . 0

1 0 0 1 1 . . . 0 1 0

R0

C

0

1

C

0

1

Before :

After :

(b) Logical shift right LShiftR #2,R0

Before :

After :

(c) Arithmetic shift right AShiftR #2,R0

By: AYU ANGGRIANI H_092904010 27

Page 28: MATA KULIAH: ORGANISASI KOMPUTER · mudah untuk menggunakan notasi desimal yang telah dikenal. Tentu saja, nilai tersebut disimpan dalam komputer sebagai bilangan biner. Pada beberapa

SHIFT ARITMATIKA

Suatu studi tentang representasi bilangan biner 2’s-complement pada

Gambar 2.1 menyatakan bahwa pergeseran posisi bit nomor satu ke

kiri setara dengan mengalikannya dengan 2; dan menggesernya ke

kanan setara dengan membaginya dengan 2.

OPERASI ROTASI

Pada operasi pergeseran, bit yang bergeser di luar operand hilang,

kecuali bit terakhir yang digeser akan disimpan dalam flag Carry C.

By: AYU ANGGRIANI H_092904010 28

Page 29: MATA KULIAH: ORGANISASI KOMPUTER · mudah untuk menggunakan notasi desimal yang telah dikenal. Tentu saja, nilai tersebut disimpan dalam komputer sebagai bilangan biner. Pada beberapa

R0

0 1 1 1 0 . . . 0 1 1

0 1 1 1 0 . . . 0 1 1

0 1 1 1 0 . . . 0 1 1

1 1 0 . . . 0 1 1 0 1

R0

C

0

1

C

C

C

(a) Rotate left without carry RotateL #2,R0

Sebelum :

Sesudah :

Sebelum :

Sesudah :

(b) Rotate left whith carry RotateLC #2,R0

Instruksi rotate

By: AYU ANGGRIANI H_092904010 29

Page 30: MATA KULIAH: ORGANISASI KOMPUTER · mudah untuk menggunakan notasi desimal yang telah dikenal. Tentu saja, nilai tersebut disimpan dalam komputer sebagai bilangan biner. Pada beberapa

R0

0 1 1 1 0 . . . 0 1 1

R0

1 1 0 1 1 1 0 . . . 0

0 1 1 1 0 . . . 0 1 1

1 0 0 1 1 1 0 . . . 0

C

0

1

C

0

1

Sebelum :

Sesudah :

Sebelum :

Sesudah :

(c) Rotate right without carry RotateR #2,R0

(d) Rotate right with carry RotateRC #2,R0

By: AYU ANGGRIANI H_092904010 30

Page 31: MATA KULIAH: ORGANISASI KOMPUTER · mudah untuk menggunakan notasi desimal yang telah dikenal. Tentu saja, nilai tersebut disimpan dalam komputer sebagai bilangan biner. Pada beberapa

F.. PROGRAM CONTOH

Pada bagian ini kita menampilkan tiga contoh yang

mengilustrasikan lebih lanjut penggunaan instruksi mesin.

•PROGRAM VECTOR DOT PRODUCT

Contoh pertama adalah aplikasi numerik yang merupakan

ekstensi program loop .

By: AYU ANGGRIANI H_092904010 31

Page 32: MATA KULIAH: ORGANISASI KOMPUTER · mudah untuk menggunakan notasi desimal yang telah dikenal. Tentu saja, nilai tersebut disimpan dalam komputer sebagai bilangan biner. Pada beberapa

For (j=n - 1 ; j > 0 ; j = j – 1)

{for (k = j – 1; k >= 0 ; k = k – 1)

{if (LIST [k] > LIST [j]

{ TEMP = LIST [k];

LIST[k] = LIST [j];

LIST[j] = TEMP;

}

}

}

Program byte-sorting menggunakan penyortiran straight-selection.

•Program bahasa-C untuk sorting

•PROGRAM BYTE-SORTING

By: AYU ANGGRIANI H_092904010 32

Page 33: MATA KULIAH: ORGANISASI KOMPUTER · mudah untuk menggunakan notasi desimal yang telah dikenal. Tentu saja, nilai tersebut disimpan dalam komputer sebagai bilangan biner. Pada beberapa

•LINKED LIST

Banyak program aplikasi nonnumerik mensyaratkan bahwa list

informasi yang berurutan direpresentasikan dan disimpan dengan

suatu cara srhingga mudah untuk menambahkan item ke list

tersebut atau untuk menhapus item dari list pada posisi apapun

dengan tetap menjaga urutan item yang diinginkan

By: AYU ANGGRIANI H_092904010 33

Page 34: MATA KULIAH: ORGANISASI KOMPUTER · mudah untuk menggunakan notasi desimal yang telah dikenal. Tentu saja, nilai tersebut disimpan dalam komputer sebagai bilangan biner. Pada beberapa

G. ENCODING INSTRUKSI MESIN

Kita telah memperhatikan instruksi yang menjalankan operasi seperti

penambahan, pengurangan, pemindahan, pergeseran, rotasi, dan

branch. Instruksi ini dapat menggunkana operand dengan ukuran

yang berbeda, seperti 32-bit dan 8-bit bilangan atau karakter 8-bit

ASCII-encoded. Tipe operasi yang dilakukan dan tipe operand yang

digunakan dapat ditentukan menggunakan pola biner ter-encode

yang disebut sebagai OP code untuk instruksi tertentu.

By: AYU ANGGRIANI H_092904010 34

Page 35: MATA KULIAH: ORGANISASI KOMPUTER · mudah untuk menggunakan notasi desimal yang telah dikenal. Tentu saja, nilai tersebut disimpan dalam komputer sebagai bilangan biner. Pada beberapa

By: AYU ANGGRIANI H_092904010 35