Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

Pertemuan 5 (SET INSTRUKSI ARM, MOTOROLA, DAN INTEL)

Presentasi serupa


Presentasi berjudul: "Pertemuan 5 (SET INSTRUKSI ARM, MOTOROLA, DAN INTEL)"— Transcript presentasi:

1 Pertemuan 5 (SET INSTRUKSI ARM, MOTOROLA, DAN INTEL)
Para desainer berusaha untuk membuat bahasa assembly ortogonal. Artinya, instruksi dibagi menjadi operasi dan mode alamat , dan hampir semua mode alamat yang tersedia untuk hampir semua instruksi. Banyak programmer tidak menyukai "dekat" ortogonal, sementara yang lain berterima kasih atas upaya tersebut. Pada tingkat bit, orang menulis assembler jelas akan melihat bahwa "petunjuk" bisa menjadi salah satu dari beberapa-op kode yang berbeda. Benar-benar suatu kompromi yang bagus karena memberikan kenyamanan hampir sama dengan mesin benar-benar ortogonal, namun juga memberikan kebebasan CPU desainer untuk mengisi tabel op-code. Selain itu, banyak instruksi dan mode pengalamatan menambahkan kata-kata tambahan di belakang untuk alamat, lebih alamat-mode bit, dll Group 4 PTIK 09

2 3.11 Bahasa Assembly Pembahasan bahasa assembly kali ini diterapkan secara umum pada bahasa assembly Karena instruksi dapat menangani tiga ukuran operand yang berbeda, maka instruksi assembler harus mengindikasikan ukuran yang dimaksud. Hal ini dilakukan dengan menambahkan indikator ukuran ke mnemonic operasi. Indikator ukuran adalah L untuk long word, W untuk word, B untuk byte. Sehingga, jika instruksi add beroperasi pada operand long word, maka mnemonic operasinya ditulis sebagai ADD.L pada saat tidak ada indikasi ukuran, ukuran operand dianggap satu word. Hal ini berarti bahwa instruksi ADD.L. pada saat tidak ada indikasi ukuran, ukuran operand dianggap satu word. Hal ini berarti bahwa instruksi ADD.W#20, D1 dan ADD#20, D1 adalah identik. Group 4 PTIK 09

3 3.12 Kontrol Aliran Program
Instruksi Branch diperlukan untuk mengmplementasikan struktur program seperti statement if dan loop. Secara umum, suatu instruksi branch menguji kondisi branch dan kemudian, tergantung pada hasil tersebut, menyebabkan eksekusi dilanjutkan pada salah satu dari jalur yang ada. Group 4 PTIK 09

4 3.13 Operasi I/O Processor mensyaratkan semua status dan buffer data dalam antar muka perangkat I/Omenjadi addressable seperti lokasi memori. Group 4 PTIK 09

5 3.14 Stack dan Subroutine Suatu stack dapat diimplementasikan menggunakan register alamat apapun sebagai pointer. Mode pengalamatan autoincrement dan autodecrement memfasilitasi proses ini. Satu register spesifik, register A7, ditunjuk sebagai pointer stack prosesor, dan stack yang ditunjuk register ini disebut stack prosessor. Ini adalah stack yang digunakan dalam semua operasi stack yang dilakukan processor secara otomatis, sebagaimana dalam kasus linkage subroutine. Instruksi Branch-to-Subroutine (BSR) digunakan untuk memanggil subroutine. Instruksi tersebut diimplementasikan dengan cara yang sama seperti instruksi branch yang lain, tetapi juga menyebabkan isi program counter di-push ke stack. Branch targetnya adalah instruksi pertama dalam subroutine tersebut. Pada saat subroutine tersebut diselesaikan, Instruksi Return-from-Subroutine (RTS) digunakan untuk kembali ke calling program. Group 4 PTIK 09

6 3.15 Instruksi Logika Kelompok perintah ini dipakai untuk melakukan operasi logika mikrokontroler MCS51, operasi logika yang bisa dilakukan adalah operasi AND (kode operasi ANL), operasi OR (kode operasi ORL) dan operasi Exclusive-OR (kode operasi XRL). Data yang dipakai dalam operasi ini bisa berupa data yang berada dalam Akumulator atau data yang berada dalam memori-data, hal ini sedikit berlainan dengan operasi aritmatik yang harus melihatkan Akumulator secara aktip. Hasil operasi ditampung di sumber data yang pertama. Group 4 PTIK 09

7 3.16 Contoh Program Pada bagian ini, kita menggunakan versi program untuk operasi dot product, byte sorting, dan linked-list Group 4 PTIK 09

8 BAGIAN III CONTOH IA-32 PENTIUM
Intel cooperation menggunakan nama umum Intel Architecture (IA) untuk prosesor dalam merek produknya. Kita akan mendeskripsikan prosesor IA yang beroperasi dengan alamat memori 32-bit dan operand-32 bit. Prosesor IA-32 pertama kali adalah (tahun 1985), (tahun 1989), Pentium (tahun 1993), dan Pentium 4 (tahun 2000) telah diimplementasikan. Group 4 PTIK 09

9 3.17 Register dan Pengalamatan
Dalam arsitektur IA-32 memori adalah byte addressable menggunakan alamat 32-bit, dan instruksi beroperasi pada operand data 8-32 bit. Ukuran operand ini diebut byte dan doubleword dalam istilah intel. Operand 16-bit disebut word pada processor Intel i6-bit awal. Digunaka pengalamatan little-edian, operand multiple-byte dapat mulai dari tiap lokasi alamat byte. Group 4 PTIK 09

10 Struktur Register IA-32 Delapan register 32-bit berlabel R0 hingga R7 adalah general-pupose register yang dapat digunakan untuk menyimpan operand data atau informasi pengalamatan. Delapan general-pupose register menjadi tiga tipe yang berbeda: register data untuk operand penyimpan, dan register pointer dan index untuk menyimpan alamat dan index alamat digunakan untuk metapkan affective address suatu operand memori. Group 4 PTIK 09

11 Mode Pengalamatan IA-32 Arsitektur IA-32 memi bliki set mode pengalamatan yang besar dan fleksibel. Mode tersebut didesain untuk mengakses item data individu atau item data yang merupakan anggota dari list yang berurutan mulai pada alamat memori terentu. Set lengkap mode pengalamatan IA-32 didefeniskan sebagai berikut: Group 4 PTIK 09

12 - Mode Immediate - operandnya disertakan dalaminstruksi
- Mode Immediate - operandnya disertakan dalaminstruksi. Operand tersebut adalah bilangan 8-bit atau 32-bit bertanda, dengan panjang ditetapkan oleh suatu bit dalam OP code instruksi. - Mode Direct - alamat memori operand dinyatakandengan nilai 32-bit dalam instruksi terebut. Group 4 PTIK 09

13 - Mode Register - operand disertakan dalam salah satu dari delapan general-purpose register yang ditetapkan dalam instruksi. - Mode Register Indirect - alamat memori operand disertakan dalam salah satu dari delapan general-purpose register yang ditetapkan dalam instruksi. Group 4 PTIK 09

14 - Mode Base with displacement - displacement 8-bit atau 32-bit bertanda dan salah satu dari delapan general-purpose register untuk digunakan sebagai base register ditetapkan dalam instruksi. - Mode Index with diplecement - diplecement bertanda 32-bit, salah satu dari delapan general-purpose register untuk digunakan sebagai index register, dan faktor skala 1, 2, 4, atau 8 ditetapkan dalam instruksi. Group 4 PTIK 09

15 - Mode Base with index - dua dari delapan genera-purpose register dan faktor skala 1, 2, 4, atau 8 ditetapkan dalam instruksi. - Mode Base with index and diplecement - diplecement 8-bit atau 32-bit bertanda, dua dari delapan register general-purpose dan faktor skala 1, 2, 4, atau8 ditetapkan dalam instruksi. Group 4 PTIK 09

16 3.18 Instruksi IA-32 Set instruksi IA-32 adalah eksensif. Instruksi tersebut di-encode dalam format instruksi variabl-length yang tidak memilik layout regular sepenuhnya. Kebanyakaninstruksi IA-32 memilki satu atau dua operand. Dalam satu atau dua operand, hanya satu operand yang berada dalam memori. Operand lain harus berada dalam registerprosesor. Selain instruksi untu memindahkan data antara memori dan register prosesor, dan melakukan operasi aritmatika, set instruksi menyertakan sejumlah operasi logika da pergesera/rotasi yang berbeda pada data. Group 4 PTIK 09

17 3.19 Bahasa Assembly Aspek dasar bahasa assembly IA-32 untuk menetapkan OP code, mode pengalamatan, dan label alamat instruksi yang diilustrasikan oleh program. Assembler directive diperluka untuk mendefinisikan area data suatu program dan untuk mendefinisikan hubungan antara nama simbolik lokasi data dan nilai alamat fisik aktual. Group 4 PTIK 09

18 3.20 Kontrol Aliran Program
Terdapat dua cara utama untuk menvariasi aliran eksekusi instruksi dari straight-line sequencing. Panggilan ke subroutine dan kembali dari subroutine tersebut memutuskan straight-line sequencing, juga gangguan instruksi branch, baik conditional maupun unconditional, dapat menyebabkan suatu break. Group 4 PTIK 09

19 3.21 Instruksi Logic dan Shift/Rotate
Operasi Logika Arsitektur IA-32memiliki instruksi yang menjalankan operasi logika AND, OR, dan XOR. Operasi tersebut dijalankan bitwise pada dua operand, dan hasilnya ditempatkan pada lokasi destinasi Operasi Pergeseran dan Rotasi Suatu operand dapat digeser ke kiri atau ke kanan dengan sejumlah posisi bit ditetapkan dengan count tertentu. Terdapat empat instruksi shift yaitu: SHL, SHR, SAL, SAR. Group 4 PTIK 09

20 3.22 Operasi I/O Memory-Mapped I/O Regiser buffer perangkat input/output merupakan yang paling umum diakses dalam computer modern oleh metode memory-mapped I/O. instruksi Move IA-32 dapat digunakan untuk mentransfer directive ke perangkat I/O, dan untuk mentransfer informasi status dan data ke dan dari perangkat. Group 4 PTIK 09

21 I/O Terisolasi Set instruksi IA-32 juga memiliki dua instruksi, dengan OP code IN dan OUT, yang hanya digunakan untuk tujuan I/O. alamat yang dinyatakan dalam instruksi tersebut berada dalam ruang alamat yang terpisah dari ruang alamat memori yang digunakan oleh instruksi lain.pengaturan ini diebut isolated I/O utuk membedakanya dari memori-mapped I/O dimana lokasi addressable dalam perangkat I/O berada dalam ruang alamat yang sama dengan lokasi memori. Group 4 PTIK 09

22 Transfer Blok Arsitektur IA-32 juga memiliki dua blok instruksi transfer I/O ; REPINSD dan REPOUTS. Instruksi tersebut mentransfer suatu blok item data secara serial,satu item pada satu waktu, antara memori dan perangkat I/O. Group 4 PTIK 09

23 3.23 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. Sangat dimungkinkan untuk menyertakan blok instruksi yang terdiri dari subroutine pada setiap tempat yang memerlukan program tersebut. Akan tetapi untuk menghemat ruang, hanya satu copy dari instruksi yang merupakan subroutine ditempatkan dalam memori, tiap program yang perlu menggunakan subroutine tersebut hanya perlu branch ke lokasi mulainya. Pada saat sualu program branch ke suatu subroutine kita katakan program tersebut memanggil subroutine. Instruksi yang melakukan operasi branch ini disebut instruksi Call. Setelah subroutine dieksekusi, calling program hams mcresume eksekusi, melanjutkan dengan segera setelah instruksi yang memanggil subroutine tersebut. Subroutine kembali ke program yang memanggilnya dengan mengeksekusi instruksi Return. Group 4 PTIK 09


Download ppt "Pertemuan 5 (SET INSTRUKSI ARM, MOTOROLA, DAN INTEL)"

Presentasi serupa


Iklan oleh Google