Your SlideShare is downloading. ×
0
Pertemuan 4 set instruksi arm, motorola, dan intel
Pertemuan 4 set instruksi arm, motorola, dan intel
Pertemuan 4 set instruksi arm, motorola, dan intel
Pertemuan 4 set instruksi arm, motorola, dan intel
Pertemuan 4 set instruksi arm, motorola, dan intel
Pertemuan 4 set instruksi arm, motorola, dan intel
Pertemuan 4 set instruksi arm, motorola, dan intel
Pertemuan 4 set instruksi arm, motorola, dan intel
Pertemuan 4 set instruksi arm, motorola, dan intel
Pertemuan 4 set instruksi arm, motorola, dan intel
Pertemuan 4 set instruksi arm, motorola, dan intel
Pertemuan 4 set instruksi arm, motorola, dan intel
Pertemuan 4 set instruksi arm, motorola, dan intel
Pertemuan 4 set instruksi arm, motorola, dan intel
Pertemuan 4 set instruksi arm, motorola, dan intel
Pertemuan 4 set instruksi arm, motorola, dan intel
Pertemuan 4 set instruksi arm, motorola, dan intel
Pertemuan 4 set instruksi arm, motorola, dan intel
Pertemuan 4 set instruksi arm, motorola, dan intel
Pertemuan 4 set instruksi arm, motorola, dan intel
Pertemuan 4 set instruksi arm, motorola, dan intel
Pertemuan 4 set instruksi arm, motorola, dan intel
Pertemuan 4 set instruksi arm, motorola, dan intel
Pertemuan 4 set instruksi arm, motorola, dan intel
Pertemuan 4 set instruksi arm, motorola, dan intel
Pertemuan 4 set instruksi arm, motorola, dan intel
Pertemuan 4 set instruksi arm, motorola, dan intel
Pertemuan 4 set instruksi arm, motorola, dan intel
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Pertemuan 4 set instruksi arm, motorola, dan intel

1,803

Published on

Published in: Technology, Economy & Finance
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,803
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
50
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. SET INSTRUKSI ARM, MOTOROLA DAN INTEL JUMIATI 092904035PRODI PENDIDIKAN INFORMATIKA DAN KOMPUTER JURUSAN TEKNIK ELEKTRO FAKULTAS TEKNIK UNIVERSITAS NEGERI MAKASSAR 2011
  • 2. PENDAHULUANAdvanced RISC Machines (ARM) limited telahmendesain suatu famili mikroprosesor danmelisensikan desain tersebut ke perusahaan lainuntuk fabrikasi chip yang penggunaannya dalamproduk komputer dan sistem uang embedded.Perusahan ARM yang relatif baru, merupakanperkembangan dari perusahan Acorn Computeryang mengembangkan desain prosesor pada awaltahun 1980-an. Penggunaan utamamikroprosesor ARM adalah pada aplikasiembedded yang berdaya rendah dan berbiayarendah, seperti misalnya mobiletelephone, modem komunikasi, sistemmanejemen mesin mobil, dan hand-held.
  • 3. 1. REGISTER, AKSES MEMORI, DAN TRANSFER DATA Dalam arsitektur ARM, memori adalah byte- addressble, menggunakan alamat 32-bit, dan register prosesor memiliki panjang 32-bit. Dua panjang operand digunakan dalam memindahkan data antara memori dan register prosessor : byte (8 bit) dan word (32 bit). Alamat word harus di- align, yaitu harus merupakan kelipatan 4. Arsitektur ARM. Mendukung pengalamatan memori little- endian pilihannya ditetapkan oleh jalur kontrol input eksternal ke prosesor. Ada saat suatu byte di- load dari memori ke register prosesor atau disimpan dari register ke memori, selalu dialokasikan pada posisi byte register low-order.
  • 4. A. Struktur Register Register prosesor yang digunakan oleh program aplikasi ditampilkan pada gambar 3.1 terdapat enam belas register 32 bit berlabel R0 hingga R15 yang terdiri dari lima belas general-purpose register (R0 hingga R14) dan register program counter (PC), R15, yang terdiri dari 15. General purpose register dapat menyimpan alamat memori atau operand data. Current progarm status register (CPRS), atau cukup disebut register status, menyimpan condition code flag (N, Z, C, V), interupt disable flag, dan bit mode prosesor. Disini kita akan mengasumsikan bahw prosesor dalam mode user dan dieksekusi sebagai program aplikasi.terdapat 15 general purpose register tambahn yang yang disebut register banked. Register tersebut menduplikasikan beberapa dari register R0 sampai R 14.register tersebut digunakan pada saat prosesor switch ke mode operasi supervisor atau interupt. Copy dari register status yang tersimpan juga tersedia dalam mode nonuser tersebut.
  • 5. B. Instruksi Akses Memory Dan Mode Pengalamatan  Eksekusi Conditional Instruksi yaitu Fitur yang membedakan dan agak tidak biasa dari prosesor ARM adalah semua instruksinya dieksekusi secara conditional, tergantung pada kondisi yang ditetapkan pada instruksi tersebut.  Mode Pengalamatan Memori yaitu Metode dasar untuk mengalamati operand memori adalah membangkitkan effective address, EA, dari operan tersebut dengan menambahkan offset bertanda keisi base register Rn.
  • 6. 2. INSTRUKSI ARITMATIKA DAN LOGIKA Set instruksi ARM memiliki sejumlah instruksi untuk operand aritmatika dan logika pada operand yang berada dalam general-purpose register atau dinyatakan sebagai operand immediate dalam instruksi itu sendiri. Operand memori tidak diperbolehkan untuk instruksi ini. Terdapat instruksi untuk bentuk penambahan dan pengurangan yang berbeda, dan terdapat dua instruksi untuk perkalian. Terdapat instruksi untuk operand logika AND,OR,NOT,XOR, dan bit-clear. Instruksi seperti compare disediakan untuk men-set condition code flag berdasarkan hasil dari operasi aritmatika dan logika pada dua operand. Instruksi tersebut tidak menyimpan hasil akurat dalam register.
  • 7. A. INSTRUKSI ARITMATIKAEkspresi bahasa assembly dasar untuk instruksi aritmatika adalah Opcode Rd, Rn, RmDimana operasi yang ditetapkan oleh OP code dilakukan menggunakan operand dalam general-purpose register Rn dan Rm. Hasilnya diletakkan dalam register Rd. Misalnya, instruksi ADD R0, R2, R4Menjalankan operasiR0  [R2] + [R4]Dan instruksi SUB R0, R6, R5Menjalankan operasi R0  [R6] – [R5]Selain dimasukkan dalam register Rm, operand kedua dapat dinyatakan dalam mode immediate. Sehingga, ADD R0, R3, #17Menjalankan operasi R0  [R3] + 17Nilai immediate berada dalam field 8-bit dalam bit b7-0 dari instruksi tersebut.
  • 8. NEXTOperand kedua dapat digeser atau dirotasi sebelum digunakan dalam operasi tersebut. Pada saat diperlukan pergeseran atau rotasi, maka ditetapkan paling akhir dalam ekspresi bahasa assembly untuk instruksi tersebut. Instruksi ADD R0, R1, R5, LSL#4Beroperasi sebagai berikut: operand kedua yang berada dalam register R5, di geser ke kiri 4 posisi bit (setara dengan [R5]) X 16), dan kemudian ditambahkan ke isi register R1; jumlah tersebut diletakkan dalam register R0.Tersedia dua versi instruksi multiply. Versi pertama mengalikan isi dua register dan menempatkan 32-bit low-order produk tersebut dalam register ketiga. Bit high- order produk tersebut, jika ada, dibuang. Misalnya, instruksi MUL R0, R1, R2Menjalankan operasi R0  [R1] x [R2]Versi kedua menempatkan register keempat yang isinya ditambahkan ke produk sebelum menyimpan hasil tersebut dalam register destinasi. Karenanya, instruksi MLA R0 , R1, R2, R3Menjalankan operasi R0  [R1] x [R2] + [R3]
  • 9. G. OPERASI PERGESERAN OPERAND Kita memperhatikan sebelumnya bahwa salah satu fitur yang berbeda dari set instruksi ARM adalah semua instruksi dieksekusi secara CONDITIONAL. Fitur lain yang membedakan adalah operasi pergeseran dan rotasi yang digabungkan ke sebagian operasi instruksi. Pada sebagian besar set instruksi komputer yang lain, operasi pergeseran dilakukan menggunakan instruksi terpisah.
  • 10. B. INSTRUKSI LOGIKAOperasi logika AND, OR, XOR, dan Bit-clear diimplementasikan oleh instruksi OP code AND, ORR, EOR, dan BIC. Kode tersebut memiliki format yang sama dengan instruksi aritmatika. Instruksi AND Rd, Rn, RmMenjalankan operasi Rd  [Rn] ^ [Rm]Yang merupakan bitwise logical AND antara operand dalam register Rn dan Rm. Misalnya, jika register R0 berisi pola hexadesimal 02FA62CA dan R1 berisi pola 0000FFFF, maka instruksi AND R0, RO, R1Akan menyebabkan pola 000062CA diletakkan dalam register R0.Instruksi bit-clear (BIC) dihubungkan erat dengan instruksi AND. Instruksi ini mengkomplemen tiap bit dalam operand Rm sebelum meng-AND-kannya dengan bit dalam register Rn. Menggunakan pola bit R0 dan R1 yang sama dengan contoh diatas, instruksi BIC R0, R0, R1Menghasilkan pola 02FA0000 diletakkan dalam R0.Instruksi move negative, dengan OP-code mnemonic MVN, mengkomplemen bit source operand dan meletakkan hasilnya dalam Rd. Jika isi R3 adalah pola hexadesimal 0F0F0F0F, maka instruksi MVN R0, R3Menempatkan hasil F0F0F0F0 dalam register R0.
  • 11. 3. INSTRUKSI BRANCH Instruksi branch CONDITIONAL berisi offset 24- bit, 2’-complement, bertanda yang ditambahkan ke isi ter-update Program Counter untuk menghasilkan alamat target branch. Format untuk istruksi branch ditampilkan pada Gambar 3.6a, dan suatu contoh diberikan pada Gambar 3.6b. Instruksi BEQ (Branch if Equal to 0) menyebabkan suatu branch kjika flag Z di set ke 1.
  • 12. A. SETTING CONDITION CODEbeberapa instruksi, seperti compare, dinyatakan sebagai berikut CMP Rn, RmYang menjalankan operasi [Rn] – [Rm]Memiliki tujuan utama untuk men-set condition code flag berdasar pada hasil operasi pengurangan. Sebaliknya, instruksi aritmatika dan logika mempengaruhi condition code flag hanya jika ditetapkan untuk melakukannya oleh suatu bit dalam field OP-code. Hal ini diindikasikan dengan menambahkan akhiran S ke mnemonic OP-code bahasa assembly. Misalnya, instruksi ADDS R0, R1, R2Men-set condition code flag, tetapi ADD R0, R1, R2Tidak.
  • 13. B. PROGRAM LOOP UNTUK PENAMBAHAN BILANGANOperasi load dan store dilakukan olehinstruksi pertama, kedua, dan terakhir yangdigunakan oleh mode pengalamatanrelative. Ini mengasumsikan bahwa lokasimemori N, pointer, dan SUM terdapatdalam rentang yang terjangkau oleh offsetrelatif terhadap PC. Lokasi memori pointerberisi alamat NUM 1 dari bilangan pertamayang akan ditambahkan, N berisi jumlahentri didalam list dan SUM digunakan untukmenyimpan jumlah tersebut.
  • 14. 4. BAHASA ASSEMBLYBahasa assembly ARM memiliki assembler directiveuntuk menyiapkan ruangpenyimpanan, menetapkan nilai numerik ke labelalamat dari simbol konstanta, menentukan dimanaprogram dan blok data akan ditempatkan dalammemori, menetapkan akhir teks source programfasilitas tersebut didekskripsikan secara umum.Kita mengilustrasikan ARM directife yangmemaparkan source program lengkapuntukprogram pada gambar. Area directive yangmenggunakan argumen kode atau data, mengindikasikan awal blok memori yang berisiprogram instruksi atau data.
  • 15. A. PSEUDO-INSTRUKTIONCara alternative untuk me-load alamat NUM1 ke register R2,juga disediakan dalam bahasa assembly. Pseudo instruktion ADD Rd, ADDRESSMe-load nilai 32- bit address ke Rd. Instruksi ini bukannya instruksi mesin sebenarnya assembler memilih instruksi mesin riil yang sesuia untuk mengimplementasikan psseudo-instruktion. Misalnya, kombinasi instruksi mesin LDR R2, POINTERDan directive declarasi data POINTER DCD NUM1Yang digunakan dalam gambar adalah salah satu cara untuk mengimplementasikan pseudo- instruction ADR R2, NUM1Cara yang lebih effesien untuk mengimplementasikan instruksi ADR dimungkinkan dalam contoh dan ini salah satu yang akan dipilih oleh assembler, pada saat nilai alamat di-load oleh instruksi ADR dalam 25 byte isi PC terbaru (R 15), instruksi ADD Rd, R15, #offsetDapat digunakan untuk mengimplementasikan Adr pseudo-instruction. Jika hal ini dikerja dalam contoh program, maka tidak diperlukan lokasi POINTER. Assembler mengimplementasikan ADR pseudo-instruction dengan instruction mesin riil ADR R2, R15, #28Karena NUM1 adalah28 byte diatas Pcter-update pada saat instruksi ADD dieksekusi.instruksi ini mengasumsikan bahwa area data segera dilanjutkan dalam instruksi STR. Hal ini tidak sepenuhnya benar karena instruksi untuk mengembalikan kontrol ke sistem operasi harus berada setelah instruksi STR, tetapi instruksi telah dihilangkan.
  • 16. 5. OPERASI INPUT/ OUTPUT Arsitektur ARM menggunakan memori mapped I/O sebagaimana yang didekskripsikan. Membaca karakter dari keyboard atau mengirim suatu karakter dilakukan menggunakan program –controlled I/O sebagaimana didekskripsikan pda bagian tersebut misalnya bit 3 pada tiap register status prangkat INSTATUS (keyboard ) dan OUTSTATUS (display) masing-masing berisi flag control sin dan sout. Juga asumsikan bahwa register keyboard dataIN dan display dataOUT berada pada alamat instatus +4 dan outstatus +4 tepat pada register status. Asumsika bahwa alamat instatus telah diload keregister R1. Rangkaian instruksi READWAIT LDR R3, [R1] TST R3, #8 BEQ READWAIT LDRB R3, [R1, #4] Dengan mengasumsikan outstatus alamat telah diload keregister R2, maka rangkaian instruksi WRITEWAIT LDR R4,,[R2] TST R4, #8 BEQ WRITEWAIT STRB R3, [R4, #4]
  • 17. 6. SUBROUTINE Instruksi branch and Link (BL) digunakan untuk memanggil subroutine. Instruksi tersebut beroperasi dengan cara yang samadengan instruksi branch lainnya dengan satu langkah tambahan. Return address yang merupakan alamat instruksi beriktnya sehingga instruksi BL di-load keregister R4 yang bertindak sebagai link register.karena subroutine dapat di-nest, maka isi link register harus disimpan dalam stack oleh subroutine. Register R13 biasanya digunakan sebagai pointer untuk stack ini.
  • 18. 7. CONTOH PROGRAMA. PROGRAM VECTOR DOT PRODUCT Dua instruksi pertama me-load alamat vector A dan B ke register R1 dan R2. Register tersebut adalah ADR pseudo- instruction yang dideksripsikan pada bagian 3.4 kjika AVEC dan BVEC mendekati program maka instruction Add yang menggunakan nilai terbaru PC dapat digunakan untuk membangkitkan alamat. Mode pengalamatan Relative digunakan untuk meng akses isi N dan DOTPROD,dan mode pengalamatan post-index with writeback digunakan dalam dua dua instruksi pertama dari loop. Instruksi Multiply-Accumulate (MLA) melakukan operasi aritmatika yang diperlukan. Instruksi ini mengalikan element vektor dalam R4 dan R5 dan mengakumulasikan produknya ke R0.
  • 19. B. PROGRAM BYTE-SORTINGalamat LIST byte pertama di-load ke register R4 digunakandalam instruksi compare kedua hingga terakhir untukmenetapkan kapan inner loop (berbasis pada index k) berakhir.R5 berisi alamat LISH +1 dan digunakan pada instruksi compareterkhir untuk menetapkan kapan outer loop (berbasis padaindex j) berakhir. Base register R2 digunakan untuk melewatiindex j secara mundur dari akhir list dalam outer loop. RegisterR3 melewati index k secara mundur melalui tiap sublist dalaminnerloop. Mode pengalamatan pre-indexed with writebackdigunakan untuk me-load byte LISH (j) ke register R0 dan untukme-load byte list (k) ke R1 masing-masing dalam outer loop daninner loop.Fitur eksekusi CONDITIONAL dari set instruksi ARM digunakanuntuk memanfaatkan inner loop pada saat LIST (k) harusdipertukarkan dengan LIST (j). Rangkaian tiga instruksiSTR, STR, MOV hanya dieksekusi jika list k lebih besar dari padalist j, sebagaimana diindikasikan oleh akhiran GT.
  • 20. C. SUBROUTINE PENYISIPAN DAN PENGHAPUSAN LINKED-LISH
  • 21. 8. SUBROUTINE PENYISIPAN DAN PENGHAPUSAN LINKED-LISH Prosesor 68000 dicirikan oleh 16-bit word lenght eksternal karena chip prosesornya memiliki 16 pin data untuk koneksi ke memori. Akan tetapi, data yang dimanipulasi didalam prosessor pada pada register yang berisi 32bit.
  • 22. A. Struktur Register Struktur register 68000 yang ditunjukan pada gambar memiliki 8 register data dan 8 alamat register masing-masing memiliki panjang 32 bit. Register data berfungsi sebagai general purpose accumulator dan sebagai counter. Register alamat menyimpan informasi yang digunakan dalam menentukan alamat operand memori, informasi ini mungkin dinyatakan dalam ukuran long word atau word pada satu alamat suatu memori berada pada register alamat, register tersebut berfungsi sebagai pointer ke lokasi tersebut.
  • 23. B. Pengalamatan Memori komputer 68000 disusun dalam 16 bit word dan merupakan byte addresseble. Dua word berurutan dapat diinterpresentasikan sebagai 32 bit long word tunggal alamat memori ditetapkan sebagaimana ditunjukkan suatu word harus di-align pada batas yang genap yaitu alamatnya harus berupa bilangan genap.digunakan penetapan alamat bigendian. Byte yang berada dalam posisi high order pada suatu word memiliki alamat yang sama dengan word tersebut, sedangkan byte yang berada pada posisi low order memiliki alamat yang lebih tinggi selanjutnya.
  • 24. Mode pengalamatan yang ada didefenisikan sebagaiberikut : Mode immadiate Operandnya dimuat dalam instruksi. Empat ukuran operand dapat ditetapkan Mode absolute Alamat absolut suatu operand ditetapkan dalam instruksi, setelah OP-code Mode register Operandnya berada dalam register prosesor yang ditetapkan dalam instruksi Mode register indirect Effective address operanya berada dalam registeralamat yang ditetapkan dalam instruksi Mode autoincrement Effective address operandnya berada dalam register alamat, an, yang ditetapkan dalam instruksi tersebut Mode auto decrement Isi suatu register alamat ditentukan oleh instruksi Mode basic index Offset bertanda 16-bit dan register alamat ditentukan oleh instruksi Mode full index Offset bertanda 8 bit, register alamat register dan data ditetapkan oleh instruksi Mode basic relative Merupakan mode yang sama dengan mode basic index kecuali program counter digunakan sebagai pengganti index register An. Mode full relative Merupakan mode yang sama dengan mode full index kecuili program counter digunakan sebagai pengganti index register An.
  • 25. SEKIAN & TERIMA KASIH

×