230 likes | 540 Views
Pertemuan 5 (SET INSTRUKSI ARM, MOTOROLA, DAN INTEL). 3.10 Instruksi
E N D
Pertemuan 5(SET INSTRUKSI ARM, MOTOROLA, DAN INTEL) 3.10 Instruksi Para desainerberusahauntukmembuatbahasa assembly ortogonal. Artinya, instruksidibagimenjadioperasidanmode alamat , danhampirsemua mode alamat yang tersediauntukhampirsemuainstruksi. Banyak programmer tidakmenyukai "dekat" ortogonal, sementara yang lain berterimakasihatasupayatersebut. Padatingkat bit, orangmenulisassemblerjelasakanmelihatbahwa "petunjuk" bisamenjadisalahsatudaribeberapa-op kode yang berbeda. Benar-benarsuatukompromi yang baguskarenamemberikankenyamananhampirsamadenganmesinbenar-benarortogonal, namunjugamemberikankebebasan CPU desaineruntukmengisitabel op-code. Selainitu, banyakinstruksidan mode pengalamatanmenambahkankata-katatambahandibelakanguntukalamat, lebihalamat-mode bit, dll Group 4 PTIK 09
3.11 Bahasa Assembly Pembahasanbahasa assembly kali iniditerapkansecaraumumpadabahasa assembly 68000. Karenainstruksi 68000 dapatmenanganitigaukuran operand yang berbeda, makainstruksi assembler harusmengindikasikanukuran yang dimaksud. Hal inidilakukandenganmenambahkanindikatorukuranke mnemonic operasi. Indikatorukuranadalah L untuk long word, W untuk word, B untuk byte. Sehingga, jikainstruksi add beroperasipada operand long word, maka mnemonic operasinyaditulissebagai ADD.L padasaattidakadaindikasiukuran, ukuran operand dianggapsatu word. Hal iniberartibahwainstruksi ADD.L. padasaattidakadaindikasiukuran, ukuran operand dianggapsatu word. Hal iniberartibahwainstruksi ADD.W#20, D1 dan ADD#20, D1 adalahidentik. Group 4 PTIK 09
3.12 KontrolAliran Program Instruksi Branch diperlukanuntukmengmplementasikanstruktur program seperti statement if dan loop. Secaraumum, suatuinstruksi branch mengujikondisi branch dankemudian, tergantungpadahasiltersebut, menyebabkaneksekusidilanjutkanpadasalahsatudarijalur yang ada. Group 4 PTIK 09
3.13 Operasi I/O Processor 68000 mensyaratkansemua status dan buffer data dalamantarmukaperangkat I/Omenjadi addressable sepertilokasimemori. Group 4 PTIK 09
3.14 Stack dan Subroutine Suatu stack dapatdiimplementasikanmenggunakan register alamatapapunsebagai pointer. Mode pengalamatanautoincrementdanautodecrementmemfasilitasiprosesini. Satu register spesifik, register A7, ditunjuksebagai pointer stack prosesor, dan stack yang ditunjuk register inidisebut stack prosessor. Iniadalah stack yang digunakandalamsemuaoperasi stack yang dilakukan processor secaraotomatis, sebagaimanadalamkasus linkage subroutine. Instruksi Branch-to-Subroutine (BSR) digunakanuntukmemanggil subroutine. Instruksitersebutdiimplementasikandengancara yang samasepertiinstruksi branch yang lain, tetapijugamenyebabkanisi program counter di-push ke stack. Branch targetnyaadalahinstruksipertamadalam subroutine tersebut. Padasaat subroutine tersebutdiselesaikan, Instruksi Return-from-Subroutine (RTS) digunakanuntukkembalike calling program. Group 4 PTIK 09
3.15 InstruksiLogika Kelompokperintahinidipakaiuntukmelakukanoperasilogikamikrokontroler MCS51, operasilogika yang bisadilakukanadalahoperasi AND (kodeoperasi ANL), operasi OR (kodeoperasi ORL) danoperasi Exclusive-OR (kodeoperasi XRL). Data yang dipakaidalamoperasiinibisaberupa data yang beradadalamAkumulatoratau data yang beradadalammemori-data, halinisedikitberlainandenganoperasiaritmatik yang harusmelihatkanAkumulatorsecaraaktip. Hasiloperasiditampungdisumber data yang pertama. Group 4 PTIK 09
3.16 Contoh Program Padabagianini, kitamenggunakanversi program 68000 untukoperasi dot product, byte sorting, dan linked-list Group 4 PTIK 09
BAGIAN III CONTOH IA-32 PENTIUM Intel cooperation menggunakannamaumum Intel Architecture (IA) untukprosesordalammerekproduknya. Kita akanmendeskripsikanprosesor IA yang beroperasidenganalamatmemori 32-bit dan operand-32 bit. Prosesor IA-32 pertama kali adalah 80386 (tahun 1985), 80486 (tahun 1989), Pentium (tahun 1993), dan Pentium 4 (tahun 2000) telahdiimplementasikan. Group 4 PTIK 09
3.17 Register danPengalamatan Dalamarsitektur IA-32 memoriadalah byte addressable menggunakanalamat 32-bit, daninstruksiberoperasipada operand data 8-32 bit. Ukuran operand inidiebut byte dandoubleworddalamistilahintel. Operand 16-bit disebut word pada processor Intel i6-bit awal. Digunakapengalamatan little-edian, operand multiple-byte dapatmulaidaritiaplokasialamat byte. Group 4 PTIK 09
3.17.1 Struktur Register IA-32 Delapan register 32-bit berlabel R0 hingga R7 adalah general-pupose register yang dapatdigunakanuntukmenyimpan operand data atauinformasipengalamatan. Delapan general-pupose register menjaditigatipe yang berbeda: register data untuk operand penyimpan, dan register pointer dan index untukmenyimpanalamatdan index alamatdigunakanuntukmetapkan affective address suatu operand memori. Group 4 PTIK 09
3.17.2 Mode Pengalamatan IA-32 Arsitektur IA-32 memibliki set mode pengalamatan yang besardanfleksibel. Mode tersebutdidesainuntukmengakses item data individuatau item data yang merupakananggotadari list yang berurutanmulaipadaalamatmemoriterentu. Set lengkap mode pengalamatan IA-32 didefeniskansebagaiberikut: Group 4 PTIK 09
- Mode Immediate - operandnyadisertakandalaminstruksi. Operand tersebutadalahbilangan 8-bit atau 32-bit bertanda, denganpanjangditetapkanolehsuatu bit dalam OP code instruksi. - Mode Direct - alamatmemori operand dinyatakandengannilai 32-bit dalaminstruksiterebut. Group 4 PTIK 09
- Mode Register - operand disertakandalamsalahsatudaridelapan general-purpose register yang ditetapkandalaminstruksi. - Mode Register Indirect - alamatmemori operand disertakandalamsalahsatudaridelapan general-purpose register yang ditetapkandalaminstruksi. Group 4 PTIK 09
- Mode Base with displacement - displacement 8-bit atau 32-bit bertandadansalahsatudaridelapan general-purpose register untukdigunakansebagai base register ditetapkandalaminstruksi. - Mode Index with diplecement - diplecementbertanda 32-bit, salahsatudaridelapan general-purpose register untukdigunakansebagai index register, danfaktorskala 1, 2, 4, atau 8 ditetapkandalaminstruksi. Group 4 PTIK 09
- Mode Base with index - duadaridelapan genera-purpose register danfaktorskala 1, 2, 4, atau 8 ditetapkandalaminstruksi. - Mode Base with index and diplecement - diplecement 8-bit atau 32-bit bertanda, duadaridelapan register general-purpose danfaktorskala 1, 2, 4, atau8 ditetapkandalaminstruksi. Group 4 PTIK 09
3.18 Instruksi IA-32 Set instruksi IA-32 adalaheksensif. Instruksitersebutdi-encode dalam format instruksivariabl-length yang tidakmemilik layout regular sepenuhnya. Kebanyakaninstruksi IA-32 memilkisatuataudua operand. Dalamsatuataudua operand, hanyasatu operand yang beradadalammemori. Operand lain harusberadadalamregisterprosesor. Selaininstruksiuntumemindahkan data antaramemoridan register prosesor, danmelakukanoperasiaritmatika, set instruksimenyertakansejumlahoperasilogikadapergesera/rotasi yang berbedapada data. Group 4 PTIK 09
3.19 Bahasa Assembly Aspekdasarbahasa assembly IA-32 untukmenetapkan OP code, mode pengalamatan, dan label alamatinstruksi yang diilustrasikanoleh program. Assembler directive diperlukauntukmendefinisikan area data suatu program danuntukmendefinisikanhubunganantaranamasimboliklokasi data dannilaialamatfisikaktual. Group 4 PTIK 09
3.20 KontrolAliran Program Terdapatduacarautamauntukmenvariasialiraneksekusiinstruksidari straight-line sequencing. Panggilanke subroutine dankembalidari subroutine tersebutmemutuskan straight-line sequencing, jugagangguaninstruksi branch, baik conditional maupun unconditional, dapatmenyebabkansuatu break. Group 4 PTIK 09
3.21 Instruksi Logic dan Shift/Rotate 3.21.1 OperasiLogika Arsitektur IA-32memiliki instruksi yang menjalankanoperasilogika AND, OR, dan XOR. Operasitersebutdijalankan bitwise padadua operand, danhasilnyaditempatkanpadalokasidestinasi. 3.21.2 OperasiPergeserandanRotasi Suatu operand dapatdigeserkekiriataukekanandengansejumlahposisi bit ditetapkandengan count tertentu. Terdapatempatinstruksi shift yaitu: SHL, SHR, SAL, SAR. Group 4 PTIK 09
3.22 Operasi I/O 3.22.1 Memory-Mapped I/O Regiser buffer perangkat input/output merupakan yang paling umumdiaksesdalam computer modern olehmetode memory-mapped I/O. instruksi Move IA-32 dapatdigunakanuntukmentransfer directive keperangkat I/O, danuntukmentransferinformasi status dan data kedandariperangkat. Group 4 PTIK 09
3.22.2 I/O Terisolasi Set instruksi IA-32 jugamemilikiduainstruksi, dengan OP code IN dan OUT, yang hanyadigunakanuntuktujuan I/O. alamat yang dinyatakandalaminstruksitersebutberadadalamruangalamat yang terpisahdariruangalamatmemori yang digunakanolehinstruksilain.pengaturaninidiebut isolated I/O utukmembedakanyadarimemori-mapped I/O dimanalokasi addressable dalamperangkat I/O beradadalamruangalamat yang samadenganlokasimemori. Group 4 PTIK 09
3.22.3 Transfer Blok Arsitektur IA-32 jugamemilikiduablokinstruksi transfer I/O ; REPINSD dan REPOUTS. Instruksitersebutmentransfersuatublok item data secaraserial,satu item padasatuwaktu, antaramemoridanperangkat I/O. Group 4 PTIK 09
3.23 Subroutine Padasuatu program, seringkaliperluuntukmelakukan subtask tertentuberulangkalipadanilai data yang berbeda. Subtask semacamitubiasanyadisebut subroutine. Misalnya, suatu subroutine dapatmengevaluasifungsi sinus ataumensortirsuatu list nilaimenjadiurutanmeningkatataumenurun. Sangatdimungkinkanuntukmenyertakanblokinstruksi yang terdiridari subroutine padasetiaptempat yang memerlukan program tersebut. Akantetapiuntukmenghematruang, hanyasatu copy dariinstruksi yang merupakan subroutine ditempatkandalammemori, tiap program yang perlumenggunakan subroutine tersebuthanyaperlu branch kelokasimulainya. Padasaatsualu program branch kesuatu subroutine kitakatakan program tersebutmemanggil subroutine. Instruksi yang melakukanoperasi branch inidisebutinstruksi Call. Setelah subroutine dieksekusi, calling program hams mcresumeeksekusi, melanjutkandengansegerasetelahinstruksi yang memanggil subroutine tersebut. Subroutine kembalike program yang memanggilnyadenganmengeksekusiinstruksi Return. Group 4 PTIK 09