Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

lnstruksi Aritmetika dan Logika

Presentasi serupa


Presentasi berjudul: "lnstruksi Aritmetika dan Logika"— Transcript presentasi:

1 lnstruksi Aritmetika dan Logika
A.Muh.Saad

2 PENDAHULUAN membahas sejumlah instruksi logika dan instruksi aritmetika. Instruksi aritmetika adalah instruksi penjumlahan, pengurangan, perkalian, pembagian, perbandingan, negasi, inkremen dan dekremen. Instruksi logika adalah AND, OR, XOR, NOT, shift (penggeseran), rotate (pemutaran) dan TEST (perbandingan logika). Instruksi aritmetika dan logika pada mikroprosesor sampai Pentium II antara lain XADD, SHRD, SHLD, test bit dan scan bit.

3 TUJUAN BAB Setelah Anda menyelesaikan bab ini Anda diharapkan mampu:
Menggunakan instruksi aritmetika dan logika untuk menyelesaikan perhitungan sederhana dalam sistem bilangan biner, BCD, dan ASCII. Menggunakan instruksi AND, OR, dan XOR untuk menuntaskan manipulasi bit. Menggunakan instruksi shift (penggeseran) bit dan rotate (pemutaran) bit. Menerangkan operasi sampai Pentium II mengenai instruksi pertukaran dan penjumlahan, perbandingan dan pemindahan, pergeseran presisi ganda (double precision shift), bit test, dan bit scan. Memeriksa isi tabel untuk pencocokan menggunakan instruksi string.

4 Penjumlahan (ADD) Penggunaan instruksi ADD untuk penjumlahan dalam format biner 8 bit, 16 bit, dan 32 bit. Format lain dari instruksi penjumlahan yaitu penjumlahan dengan carry, dibahas dalam instruksi ADC. Instruksi inkremen (INC). Inkremen adalah format khusus dari penjumlahan yaitu menambahkan suatu bilangan dengan satu

5

6 Flag paling kanan ini mencatat hasil aritmetika atau operasi logika sejumlah instruksi akan mengubah isi dari sign, zero, carry, auxiliary carry, parity dan overflow flag.

7 Flag paling kanan ini mencatat hasil aritmetika atau operasi logika sejumlah instruksi akan mengubah isi dari sign, zero, carry, auxiliary carry, parity dan overflow flag.

8 Peniumlahan Segera (immediate Addition)
Penjumlahan segera dilakukan ketika konstanta atau data yang diketahui ditambahkan.

9 Penjumlahan Memori ke Register.
Anggap sebuah program aplikasi memerlukan penambahan data memori ke register AL.

10 Penjumlahan Array Array memori adalah sederetan data terurut. Anggaplah se-array data (ARRAY) berisi 10 byte dengan indeks elemen dimulai dari 0 sampai 9.

11 Penjumlahan dengan lnkremen.
Penjumlahan increment (INC) adalah penjumlahan 1 ke register atau ke satu lokasi memori, secara bertahap. Instruksi INC dapat menambahkan 1 ke register atau lokasi apa saja kecuali segmen register.

12

13 Penjumlahan dengan Carry
Addition-with-carry (ADC) berfungsi menjumlahkan register flag (C) ke data operand. Umumnya instruksi ini tampil dalam perangkat lunak untuk penjumlahan bilangan yang lebarnya lebih dari 16 bit dalam mikroprosesor atau yang lebih dari 32-bit dalam sampai dengan Pentium II.

14

15

16 Pertukaran dan Penjumlahan
Satu tipe baru penjumlahan yang disebut exchange and add (XADD) hadir dalam kumpulan instruksi prosesor sampai Pentium II. lnstruksi XADD menjumlahkan data dari sumber data ke tujuan data dan menyimpan hasil penjumlahan pada tempat tujuan, untuk berbagai macam bentuk penjumlahan. Perbedaannya adalah bahwa setelah penjumlahan dilakukan, nilai dari tempat tujuan disalin ke operand sumber. Contoh, jika BL = 12H dan DL = O2H saat instruksi XADD BL, DL

17 Pengurangan (SUB) Ada banyak bentuk pengurangan (SUB)

18 Pengurangan Register instruksi untuk melakukan pengurangan register
Setetafr setiap instruksi pengurangan, mikroprosesor mengubah isi register flag. Register flag berubah untuk sebagian besar instruksi logika dan aritmatika.

19 Pengurangan lmmediate
Seperti halnya penjumlahan, mikroprosesor memungkinkan operand segera untuk pengurangan data konstan.

20 Pengurangan dengan satu (Dekremen),
Pengurangan dengan satu (DEC) mengurangkan1 setahap demi setahap dari register atau isi lokasi memori. Tabel 5-5 memuat instruksi decrement yang menggambarkan dekremen register dan memori'

21 Pengurangan dengan Pinjaman (SBB)
Instruksi pengurangan dengan pinjam (SBB, yaitu subract-with-borrow) sama seperti halnya pengurangan biasa, kecuali bahwa flag carry (c), yang menampung pinjaman, juga adalah hasil selisih pengurangan. Penggunaan terpopuler dari instruksi ini adalah untuk pengurangan bilangan dalam bentuk yang lebih lebar dari 16-bit pada mikroprosesor atau lebih lebar dari 32-bit dalam sampai Pentium II.

22

23

24 Perbandingan (CMP) Instruksi perbandingan (CMP) adalah bentuk pengurangan yang hanya mengubah bit-bit flag, sedangkan operand tujuan tidak pernah berubah. Perbandingan sangat berguna untuk memeriksa seluruh isi register atau lokasi memori terhadap suatu nilai tertentu. CMP biasanya diikuti dengan instruksi jump bersyarat, yang mengetes tiap bit flag. JA (Jump Above) atau JB (Jump Below). Jika JA mengikuti instruksi perbandingan, jump terjadi Jika nilai AL berada di atas 10H. Jika JB mengikuti instruksi perbandingan, jump terjadi Jika nilai AL berada di bawah 10H Instruksi loncatan lainnya JAE (Jump Above or Equal) atau Instruksi loncatan lainnya JBE (Jump Below or Equal)

25

26 Perbandingan dan Pertukaran Data (CMPXCHG)
Instruksi perbandingan dan pertukaran data (CMPXCHG) yang dapat ditemukan hanya pada kumpulan instruksi prosesor sampai Pentium II, membandingkan operand tujuan dengan akumulator. Jika sama, operand sumber akan disalinkan ke tujuan. Jika tidak sama maka operand tujuan akan disalinkan ke akumulator. Instruksi ini berlaku untuk format data 8-, 16-, dan 32-bit

27 Perkalian Perkalian dilakukan dalam format byte, word, dan doubleword, dan dapat juga bilangan bulat bertanda (IMUL) atau bilangan bulat takbertanda (MUL). Beberapa bit flag (O dan C) berubah saat proses perkalian dijalankan dan memberikan hasil yang dapat diramalkan sebelumnya.

28 Perkalian 8-bit Dengan perkalian 8-bit, apakah bilangan bertanda atau tidak bertanda, angka yang dikalikan selalu berada pada register AL. Pengali dapat berupa register 8-bit atau lokasi memori manapun.

29

30 Perkalian 16-bit. Perkalian dalam format word hampir sama dengan perkalian dalam format byte. Bedanya adalah, AX berisi bilangan yang dikalikan dan bukan AL, sedangkan hasilkalinya muncul di DX-AX dan bukan di AX. Register DX selalu berisi hasil perkalian MSB 16-bit, dan AX LSB 16-bitnya.

31

32 Perkalian 32-bit Dalam kelas mikroprosesor ke atas, perkalian 32-bit diperbolehkan karena mikroprosesornya memiliki 32-register. Seperti halnya perkalian 8- dan 16-bit, perkalian 32-bit dapat berupa bilangan bertanda maupun takbertanda dengan menggunakan instruksi IMUL dan MUL. Dengan perkalian 32-bit, isi register EAX dikalikan dengan operand yang ditetapkan dengan satu instruksi. Hasil perkalian (format 64-bit) dapat ditemukan dalam EDX-EAX di mana EAX berisi LSB 32-bit hasil perkalian.

33

34 Pembagian Seperti halnya perkalian, pembagian terjadi pada bilangan 8- atau 16-bit dan juga bilangan 32bit dalam mikroprosesor sampai Pentium Pro. Bilangan-bilangan ini adalah bilangan bulat bertanda (IDIV) atau takbertanda (DIV). Hasil pembagian selalundua kali lebarnya dari bilangan yang dibagi. Artinya, pembagian 8-bit membagi bilangan 16-bit dengan bilangan 8-bit; pembagian 16-bit membagi bilangan 32-bit dengan bilangan 16-bit dan pembagian 32-bit membagi bilangan 64-bit dengan bilangan 32-bit. Untuk mikroprosesor apapun, tidak tersedia instruksi pembagian segera.

35

36 Pembagian 8 bit Pembagian 8-bit menggunakan registerAX untuk menyimpan bilangan yang akan dibagi untuk dibagi dengan isi register 8- bit mana pun atau isi lokasi memori. Hasil bagi diletakkan di AL setelah pembagian dengan AH berisi seluruh nilai sisa pembagian.

37

38 Pembagian 16-bit Pembagian 16-bit serupa dengan pembagian 8-bit, perbedaannya hanyalah bahwa pembagian tidak dilakukan bilangan l6-bit pada AX, tetapi justru pada register DX-AX, yakni pembagi 32-bit. Hasil pembagian (kuosien) ditampilkan di AX dan sisa pembagian ditampilkan di DX setelah instruksi pembagian 16-bit dijalankan.

39

40 Pembagian 32-bit Mikroprosesor sampai Pentium II melakukan pembagian 32-bit dalam bilangan bertanda atau bilangan takbertanda. Isi EDX-EAX format 64-bit dibagi dengan operand yang telah ditentukan dengan instruksi, lalu hasil pembagian32-bit diletakkan di EAX dan sisa pembagian 32-bit di EDX. Selain ukuran dari registernya yang berbeda,instruksi ini mempunyai fungsi yang sama dengan instruksi pembagian 8-bit dan 16-bit. T

41

42 Sisa Pembagian Apa yang dilakukan pada sisa pembagian yang merupakan akibat dari proses pembagian? Ada beberapa kemungkinan. Sisa pembagian dapat digunakan untuk pembulatan ke atas (round) dari hasil pembagian atau dibuang untuk membulatkan ke bawah (truncate) hasil pembagian. Jika pembagian bilangan takbertanda, pembulatan dilakukan setelah membandingkan sisa pembagian dengan setengah pembagi untuk menentukan apakah pembulatan ke atas hasil pembagian dapat dilakukan. Hasil pembagian juga dapat dikonversikan ke dalam bentuk pecahan.

43


Download ppt "lnstruksi Aritmetika dan Logika"

Presentasi serupa


Iklan oleh Google