1 / 43

lnstruksi Aritmetika dan Logika

lnstruksi Aritmetika dan Logika. A.Muh.Saad. PENDAHULUAN. membahas sejumlah instruksi logika dan instruksi aritmetika . Instruksi aritmetika adalah instruksi penjumlahan , pengurangan , perkalian , pembagian , perbandingan , negasi , inkremen dan dekremen .

Download Presentation

lnstruksi Aritmetika dan Logika

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. lnstruksiAritmetikadanLogika A.Muh.Saad

  2. PENDAHULUAN • membahassejumlahinstruksilogikadaninstruksiaritmetika. • Instruksiaritmetikaadalahinstruksipenjumlahan, pengurangan, perkalian, pembagian, perbandingan, negasi, inkremendandekremen. • Instruksilogikaadalah AND, OR, XOR, NOT, shift • (penggeseran), rotate (pemutaran) dan TEST (perbandinganlogika). • Instruksiaritmetikadanlogikapadamikroprosesor 80386 sampai Pentium II antara lain XADD, SHRD, SHLD, test bit dan scan bit.

  3. TUJUAN BAB SetelahAndamenyelesaikanbabiniAndadiharapkanmampu: • Menggunakaninstruksiaritmetikadanlogikauntukmenyelesaikanperhitungansederhanadalamsistembilanganbiner, BCD, dan ASCII. • Menggunakaninstruksi AND, OR, dan XOR untukmenuntaskanmanipulasi bit. • Menggunakaninstruksi shift (penggeseran) bit dan rotate (pemutaran) bit. • Menerangkanoperasi 80386 sampai Pentium II mengenaiinstruksipertukarandanpenjumlahan, perbandingandanpemindahan, pergeseranpresisiganda (double precision shift), bit test, dan bit scan. • Memeriksaisitabeluntukpencocokanmenggunakaninstruksi string.

  4. Penjumlahan (ADD) • Penggunaaninstruksi ADD untukpenjumlahandalam format biner 8 bit, 16 bit, dan 32 bit. • Format lain dariinstruksipenjumlahanyaitupenjumlahandengan carry, dibahasdalaminstruksi ADC. • Instruksiinkremen (INC). Inkremenadalah format khususdaripenjumlahanyaitumenambahkansuatubilangandengansatu

  5. Flag paling kanan ini mencatat hasil aritmetika atau operasi logika sejumlahinstruksiakanmengubahisidari sign, zero, carry, auxiliary carry, parity dan overflow flag.

  6. Flag paling kanan ini mencatat hasil aritmetika atau operasi logika sejumlahinstruksiakanmengubahisidari sign, zero, carry, auxiliary carry, parity dan overflow flag.

  7. PeniumlahanSegera (immediate Addition) • Penjumlahansegeradilakukanketikakonstantaatau data yang diketahuiditambahkan.

  8. PenjumlahanMemorike Register. • Anggapsebuah program aplikasimemerlukanpenambahan data memorike register AL.

  9. Penjumlahan Array • Array memoriadalahsederetan data terurut. Anggaplah se-array data (ARRAY) berisi 10 byte denganindekselemendimulaidari 0 sampai 9.

  10. Penjumlahandenganlnkremen. • Penjumlahan increment (INC) adalahpenjumlahan 1 ke register ataukesatulokasimemori, secarabertahap. • Instruksi INC dapatmenambahkan 1 ke register ataulokasiapasajakecualisegmen register.

  11. Penjumlahandengan Carry • Addition-with-carry (ADC) berfungsimenjumlahkan register flag (C) ke data operand. • Umumnyainstruksiinitampildalamperangkatlunakuntukpenjumlahanbilangan yang lebarnyalebihdari 16 bit dalammikroprosesor 8086-80286 atau yang lebihdari 32-bit dalam 80386 sampaidengan Pentium II.

  12. PertukarandanPenjumlahan • Satutipebarupenjumlahan yang disebut exchange and add (XADD) hadirdalamkumpulaninstruksiprosesor 80486 sampai Pentium II. • lnstruksi XADD menjumlahkan data darisumber data ketujuan data danmenyimpanhasilpenjumlahanpadatempattujuan, • untukberbagaimacambentukpenjumlahan. Perbedaannyaadalahbahwasetelahpenjumlahandilakukan, nilaidaritempattujuandisalinke operand sumber. • Contoh, • jika BL = 12H dan DL = O2H • saatinstruksi XADD BL, DL

  13. Pengurangan(SUB) • Ada banyak bentuk pengurangan (SUB)

  14. Pengurangan Register • instruksiuntukmelakukanpengurangan register • Setetafrsetiapinstruksipengurangan, mikroprosesormengubahisi register flag. • Register flag berubahuntuksebagianbesarinstruksilogikadanaritmatika.

  15. Penguranganlmmediate • Sepertihalnyapenjumlahan, mikroprosesormemungkinkan operand segerauntukpengurangan data konstan.

  16. Pengurangandengansatu (Dekremen), • Pengurangandengansatu (DEC) • mengurangkan1 setahapdemisetahapdari register atauisilokasimemori. • Tabel 5-5 memuatinstruksi decrement yang menggambarkandekremen register danmemori'

  17. PengurangandenganPinjaman (SBB) • Instruksipengurangandenganpinjam (SBB, yaitusubract-with-borrow) samasepertihalnyapenguranganbiasa, kecualibahwaflag carry (c), yang menampungpinjaman, jugaadalahhasilselisihpengurangan. • Penggunaanterpopulerdariinstruksiiniadalahuntukpenguranganbilangandalambentuk yang lebihlebardari 16-bit padamikroprosesor 8086-80286 ataulebihlebardari 32-bit dalam 80386 sampai Pentium II.

  18. Perbandingan (CMP) • Instruksiperbandingan (CMP) adalahbentukpengurangan yang hanyamengubah bit-bit flag, sedangkan operand tujuantidakpernahberubah. • Perbandingansangatbergunauntukmemeriksaseluruhisi register ataulokasimemoriterhadapsuatunilaitertentu. • CMP biasanyadiikutidenganinstruksijump bersyarat, yang mengetestiap bit flag. • JA (Jump Above) atau • JB (Jump Below). • Jika JA mengikutiinstruksiperbandingan, jump terjadiJikanilai AL beradadiatas10H. • Jika JB mengikutiinstruksiperbandingan, jump terjadiJikanilai AL beradadibawah10H • InstruksiloncatanlainnyaJAE (Jump Above or Equal) atau • InstruksiloncatanlainnyaJBE (Jump Below or Equal)

  19. PerbandingandanPertukaran Data (CMPXCHG) • Instruksiperbandingandanpertukaran data (CMPXCHG) yang dapatditemukanhanyapadakumpulaninstruksiprosesor 80486 sampai Pentium II, membandingkan operand tujuandenganakumulator. • Jikasama, operand sumberakandisalinkanketujuan. • Jikatidaksamamaka operand tujuanakandisalinkankeakumulator. • Instruksiiniberlakuuntuk format data 8-, 16-, dan 32-bit

  20. Perkalian • Perkaliandilakukandalam format byte, word, dandoubleword, dandapatjugabilanganbulatbertanda (IMUL) ataubilanganbulattakbertanda (MUL). • Beberapa bit flag (O dan C) berubahsaatprosesperkaliandijalankandanmemberikanhasil yang dapatdiramalkansebelumnya.

  21. Perkalian 8-bit • Denganperkalian 8-bit, apakahbilanganbertandaatautidakbertanda, angka yang dikalikanselaluberadapada register AL. Pengalidapatberupa register 8-bit ataulokasimemorimanapun.

  22. Perkalian 16-bit. • Perkaliandalam format word hampirsamadenganperkaliandalam format byte. Bedanyaadalah, AXberisibilangan yang dikalikandanbukanAL, sedangkanhasilkalinyamunculdiDX-AXdanbukandi AX. • Register DX selaluberisihasilperkalian MSB 16-bit, dan AX LSB 16-bitnya.

  23. Perkalian 32-bit • Dalamkelasmikroprosesor 80386 keatas, perkalian 32-bit diperbolehkankarenamikroprosesornyamemiliki 32-register. Sepertihalnyaperkalian 8- dan 16-bit, • perkalian 32-bit dapatberupabilanganbertandamaupuntakbertandadenganmenggunakaninstruksi IMUL dan MUL. • Denganperkalian 32-bit, isi register EAX dikalikandengan operand yang ditetapkandengansatuinstruksi. • Hasilperkalian (format 64-bit) dapatditemukandalam EDX-EAX dimana EAX berisi LSB 32-bit hasilperkalian.

  24. Pembagian • Sepertihalnyaperkalian, pembagianterjadipadabilangan 8- atau 16-bit danjugabilangan32bit dalammikroprosesor 80386 sampaiPentium Pro. • Bilangan-bilanganiniadalahbilanganbulatbertanda (IDIV) atautakbertanda (DIV). • Hasilpembagianselalunduakali lebarnyadaribilangan yang dibagi. • Artinya, pembagian 8-bit membagibilangan • 16-bit denganbilangan 8-bit; • pembagian16-bit membagibilangan 32-bit denganbilangan 16-bit dan • pembagian32-bit membagibilangan 64-bit denganbilangan 32-bit. • Untukmikroprosesorapapun, tidaktersediainstruksipembagiansegera.

  25. Pembagian8 bit • Pembagian8-bit menggunakanregisterAXuntukmenyimpanbilangan yang akandibagiuntukdibagidenganisi register 8-bit mana pun atauisilokasimemori. • Hasilbagidiletakkandi AL setelahpembagiandengan AH berisiseluruhnilaisisapembagian.

  26. Pembagian 16-bit • Pembagian16-bit serupadenganpembagian 8-bit, perbedaannyahanyalahbahwapembagiantidakdilakukanbilangan l6-bit pada AX, tetapijustrupada register DX-AX, yaknipembagi 32-bit. • Hasilpembagian (kuosien) ditampilkandiAX dansisapembagianditampilkandi DX setelahinstruksipembagian 16-bit dijalankan.

  27. Pembagian 32-bit • Mikroprosesor80386 sampai Pentium II melakukanpembagian 32-bit dalambilanganbertandaataubilangantakbertanda. • IsiEDX-EAX format 64-bit dibagidengan operand yang telahditentukandenganinstruksi, • laluhasil pembagian32-bit diletakkandi EAX dansisapembagian 32-bit di EDX. • Selainukurandariregisternya yang berbeda,instruksiinimempunyaifungsi yang samadenganinstruksipembagian 8-bit dan 16-bit. T

  28. SisaPembagian • Apayang dilakukanpadasisapembagian yang merupakanakibatdariprosespembagian? Adabeberapakemungkinan. • Sisapembagiandapatdigunakanuntukpembulatankeatas (round) darihasilpembagianataudibuanguntukmembulatkankebawah (truncate) hasilpembagian. • Jikapembagianbilangantakbertanda, pembulatandilakukansetelahmembandingkansisapembagiandengansetengahpembagiuntukmenentukanapakahpembulatankeatashasilpembagiandapatdilakukan. • Hasilpembagianjugadapatdikonversikankedalambentukpecahan.

More Related