lnstruksi Aritmetika dan Logika

Slides:



Advertisements
Presentasi serupa
Flags.
Advertisements

PERTEMUAN KE 5 OPERASI LOMPAT/JUMP.
OPERASI ARITMATIKA OPERASI PENAMBAHAN 1. ADD
Turbo Assembly Operasi Aritmatika.
Bhakti Yudho Suprapto, MT
Arsitektur Komputer “Instruksi Set Arsitektur”
Arsitektur & Organisasi
REGISTER Oleh : Oman Somantri, S.Kom
Dasar pemrograman Mikroprosesor 8086
PENGAMBILAN KEPUTUSAN
Instruksi Aritmatika dan Logika
Instruksi Logika Dasar
Mode Pengalamatan Mengatasi keterbatasan format instruksi
ARSITEKTUR SET INSTRUKSI
REGISTER.
OPERATOR Teknik Informatika Universitas Muhammadiyah Malang 2012 Pemrogramman Terstruktur.
Sistem Bilangan Dasar pemrograman mikroprosesor Tipe : Biner Oktal
EE-2623 Mikroprosesor & Antarmuka
Pointer. Karakteristik Operasi Assembly  Lebar data tujuan dan asal harus sama! Lebar data tidak sama => invalid opcode  Operasi 8bit disimpan pada.
OPERASI ARITMATIKA.
Program Bahasa Rakitan dengan DEBUG.COM
Arsitektur Perangkat Lunak 8086
PENDAHULUAN Pembuatan perangkat lunak yang efisien untuk mikroprosesor membutuhkan pengenalan yang menyeluruh mengenai mode pengalamatan yang digunakan.
Pertemuan 6 Operator & prioritas operator .:: Erna Sri Hartatik ::.
INSTRUKSI LOGIKA DASAR
Register.
Konversi Bilangan Mulyono.
1 Pertemuan 3 Komponen Sistem Komputer dan Register pada prosesor 8088 Matakuliah: T0483 / Bahasa Rakitan Tahun: 2005 Versi: versi 1.0 / revisi 1.0.
Pengenalan Assembler.
Dasar pemrograman Mikroprosesor 8086
Pertemuan 3.
Program Bahasa Rakitan dengan DEBUG.COM
Pertemuan 2 Muhamad Haikal, S.Kom., MT
Mode Pengalamatan Mengatasi keterbatasan format instruksi
EE-2623 Mikroprosesor & Antarmuka
Flag Register.
Pertemuan 3 (Bahasa Assembly)
Model Hipotesis SAP-3 Abdillah, S.Si, MIT.
SAP-3.
Arsitektur Komputer Genap 2004/2005
Tipe Data, Operator Dalam Delphi
INSTRUKSI PENGAMBIL KEPUTUSAN DAN STACK
ORGANISASI dan ARSITEKTUR KOMPUTER
REGISTER.
ORGANISASI & ARSITEKTUR KOMPUTER 2 SET INSTRUKSI IBP WIDJA, MT
Sistem Bilangan & REGISTER
Pengenalan Assembler.
PEMROGRAMAN PASCAL ELEMEN PEMROGRAMAN PASCAL.
FLOW CONTROL INSTRUTIONS
OPERASI ARITMATIKA.
BAB III REGISTER 8088 Mikroprosesor 8088 berorientasi pada register
Transfer Register dan Mikrooperasi
SUPLEMEN MASA DEPAN KULIAH ORGANISASI DAN ARSITEKTUR KOMPUTER
C++: OPERATOR Yenni Astuti, S.T., M.Eng.
Pertemuan 6 Instruksi Bahasa Rakitan 8088
Pemrograman Terstruktur
INSTRUKSI PENGAMBIL KEPUTUSAN DAN STACK
Operasi Aritmatika.
MATA KULIAH TEKNIK DIGITAL DISUSUN OLEH : RIKA SUSANTI, ST., M.ENG
ARITMETIKA BCD DAN ASCII
Pemrograman Terstruktur
Sistem Bilangan Mata Kuliah :Sistem Digital Moh. Furqan, S.Kom
OPERASI Arithmatika dan logika
Manipulasi Bit dan Logika
PEMROGRAMAN DASAR Varian dan Invarian.
Algoritma 1 Temu 2.
INSTRUKSI PENGAMBIL KEPUTUSAN DAN STACK
CHAP 6 SET INSTRUKSI MEMORI
Karakteristik Set Instruksi 14 JP. Karakteristik Set Instruksi Pengertian Set Instruksi Set instruksi adalah kumpulan dari instruksi yang dapat dijalankan.
Dasar Pemrograman Pertemuan 6 Operator & prioritas operator.:: Erna Sri Hartatik ::.
Transcript presentasi:

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. Instruksi logika adalah AND, OR, XOR, NOT, shift (penggeseran), rotate (pemutaran) dan TEST (perbandingan logika). Instruksi aritmetika dan logika pada mikroprosesor 80386 sampai Pentium II antara lain XADD, SHRD, SHLD, test bit dan scan bit.

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 80386 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.

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

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.

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.

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

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

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

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.

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 8086-80286 atau yang lebih dari 32-bit dalam 80386 sampai dengan Pentium II.

Pertukaran dan Penjumlahan Satu tipe baru penjumlahan yang disebut exchange and add (XADD) hadir dalam kumpulan instruksi prosesor 80486 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

Pengurangan (SUB) Ada banyak bentuk pengurangan (SUB)

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.

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

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'

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 8086-80286 atau lebih lebar dari 32-bit dalam 80386 sampai Pentium II.

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)

Perbandingan dan Pertukaran Data (CMPXCHG) Instruksi perbandingan dan pertukaran data (CMPXCHG) yang dapat ditemukan hanya pada kumpulan instruksi prosesor 80486 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

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.

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.

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.

Perkalian 32-bit Dalam kelas mikroprosesor 80386 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.

Pembagian Seperti halnya perkalian, pembagian terjadi pada bilangan 8- atau 16-bit dan juga bilangan 32bit dalam mikroprosesor 80386 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.

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.

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.

Pembagian 32-bit Mikroprosesor 80386 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

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.