instruksi mesin agus budi raharjo

4
AGUS BUDI RAHARJO 5109100164 ORGANISASI KOMPUTER-C 1.1 Langkah-langkah eksekusi instruksi mesin : Add LOCA, R0 Siklus fetch: MAR [PC] //PC diatur untuk menunjuk ke instruksi program(disimpan dalam memori pada lokasi INSTR). Increment PC //mengupdate isi PC dari INSTR ke INSTR + 1 sehingga instruksi berikutnya diambil. READ //membaca instruksi program IR [MDR] //instruksi dibawa ke IR untuk dieksekusi Siklus eksekusi (mengeksekusi Add LOCA, R0) MAR [IR]ADDR {bagian alamat dari IR untuk LOCA} //mentransfer isi operand LOCA yang akan dieksekusi READ //membaca instruksi dan disimpan di MDR MAR [IR] ADDR {bagian alamat dari IR untuk R0} //mentransfer isi operand R0 yang akan dieksekusi READ //membaca instruksi (R0) dan disimpan di MDR ALU MDR //setelah operand yang tersimpan dibaca dari memory ke MDR Kemudian ditransfer dari MDR ke ALU MDR ALU //setelah dua operand diambil dan dioperasikan dengan ALU, maka hasilnya dikirim ke MDR R0 [MDR] //hasil ditransfer pada alamat yang dituju (R0)/isi R0 dioverwrite

Upload: budi-raharjo

Post on 26-Jun-2015

126 views

Category:

Documents


7 download

TRANSCRIPT

Page 1: Instruksi mesin agus budi raharjo

AGUS BUDI RAHARJO

5109100164

ORGANISASI KOMPUTER-C

1.1 Langkah-langkah eksekusi instruksi mesin :

Add LOCA, R0

Siklus fetch:

MAR [PC] //PC diatur untuk menunjuk ke instruksi program(disimpan dalam memori pada lokasi INSTR).

Increment PC //mengupdate isi PC dari INSTR ke INSTR + 1 sehingga instruksi berikutnya diambil.

READ //membaca instruksi program

IR [MDR] //instruksi dibawa ke IR untuk dieksekusi

Siklus eksekusi (mengeksekusi Add LOCA, R0)

MAR [IR]ADDR {bagian alamat dari IR untuk LOCA} //mentransfer isi operand LOCA yang akan dieksekusi READ //membaca instruksi dan disimpan di MDR MAR [IR] ADDR {bagian alamat dari IR untuk R0} //mentransfer isi operand R0 yang akan dieksekusi READ //membaca instruksi (R0) dan disimpan di MDR ALU MDR //setelah operand yang tersimpan dibaca dari memory ke MDR

Kemudian ditransfer dari MDR ke ALU MDR ALU //setelah dua operand diambil dan dioperasikan dengan ALU, maka

hasilnya dikirim ke MDR R0 [MDR] //hasil ditransfer pada alamat yang dituju (R0)/isi R0 dioverwrite

Page 2: Instruksi mesin agus budi raharjo

1.2 Langkah-langkah eksekusi instruksi mesin :

Add R1, R2, R3

Siklus fetch:

MAR [PC] //PC diatur untuk menunjuk ke instruksi program(disimpan dalam memori pada lokasi INSTR).

Increment PC //mengupdate isi PC dari INSTR ke INSTR + 1 sehingga instruksi berikutnya diambil.

READ //membaca instruksi program

IR [MDR] //instruksi dibawa ke IR untuk dieksekusi

Siklus eksekusi (mengeksekusi Add R1,R2 , R3)

MAR [IR]ADDR {bagian alamat dari IR untuk R1} //mentransfer isi operand R1 yang akan dieksekusi READ //membaca instruksi dan disimpan di MDR MAR [IR] ADDR {bagian alamat dari IR untuk R2} //mentransfer isi operand R2 yang akan dieksekusi READ //membaca instruksi dan disimpan di MDR MAR [IR] ADDR {bagian alamat dari IR untuk R3} //mentransfer isi operand R3 yang akan dieksekusi READ //membaca instruksi dan disimpan di MDR ALU MDR //setelah operand yang tersimpan dibaca dari memory ke MDR

Kemudian ditransfer dari MDR ke ALU MDR ALU //setelah tiga operand diambil dan dioperasikan dengan ALU, maka

hasilnya dikirim ke MDR R3 [MDR] //hasil ditransfer pada alamat yang dituju (R3)/isi R3 dioverwrite

1.3 a. Rangkaian pendek intruksi mesin : tambahkan isi lokasi memori A ke lokasi memori B, dan letakkan jawabannya di lokasi C.

Nb: tidak boleh merusak isi lokasi A atau B

Load A, R1 //mentransfer isi operand A ke dalam R1 tanpa merusak isi A

Load B, R2 //mentransfer isi operand B ke dalam R2 tanpa merusak isi B

Add R1, R2 //mengoverwrite isi R2 dengan penjumlahan R1 dan R2

Store R2, C //mentransfer isi R2 ke dalam operand C

Page 3: Instruksi mesin agus budi raharjo

b. mengoverwrite operand awal pada lokasi kedua.

Add A, B //mengoverwrite isi B dengan penjumlahan isi A dengan isi B

Store B, C //mentransfer isi B ke dalam operand C

2.3 misalkan suatu pola biner dalam beberapa lokasi memori, mungkinkah menyatakan apakah pola ini merupakan suatu instruksi mesin atau bilangan?

Jawab :

Mungkin. Karena dalam prosesor dengan alamat 32-bit, suatu instruksi 3 alamat(misal Add A, B, C) terlalu banyak untuk dimasukkan dalam satu

word, sehingga suatu format yang memungkinkan banyak word digunakan untuk instruksi tunggal akan diperlukan untuk menyatakan tipe

instruksi ini.

2.8 program yang dapat mengevaluasi ekspresi AxB + CxD dengan single accumulator

Load A //mentransfer isi operand A ke dalam accumulator

Multiply B // perkalian isi accumulator dengan B

Store B //menyimpan isi accumulator ke B

Load C // mentransfer isi operand C ke dalam accumulator

Multiply D // perkalian isi accumulator dengan D

Add B //menambah isi accumulator dengan B

Store D // menyimpan isi accumulator ke D

2.13 effective address operand memory tiap instruksi :

a) load 20(R1),R5 effective address = 1200 +20 =1220

b) move #3000,R5 effective address = 3000

c) Store R5,30(R1,R2) effective address = 30 +1200 +4600=5830

Page 4: Instruksi mesin agus budi raharjo

d) Add -(R2),R5 effective address = 4600- 4= 4596

e) subtract (R1)+,R5 effective address = 1200

2.16 perbedaan :

ORIGIN 1000

DATAWORD 300 //menginformasikan bahwa nilai data 100 ditempatkan dalam word memory pada alamat ke 1000

/* pernyataan ini tidak menunjuk suatu instruksi yang akan dieksekusi pada saat object program dijalankan/tidak akan muncul pada object program. Hanya memberitahu assembler bahwa nama ORIGIN seharusnya diganti dengan nilai 300 kapanpun muncul program. (disebut assembler directive) digunakan assembler saat mentranslasikan source program ke dalam object program. */

Move #300,1000 //menyatakan instruksi dalam suatu program