5b. lnstruksi Aritmetika dan Logika

Download Report

Transcript 5b. lnstruksi Aritmetika dan Logika

ARITMETIKA BCD DAN ASCII

Mikroprosesor memungkinkan kita untuk
melakukan manipulasi aritmetika baik
terhadap data Binary Code Desimat (BCD)
maupun terhadap data American Standard
Code for Information Interchange (ASCII).
ARITMETIKA BCD
Ada dua teknik operasi aritmetika yang
dilakukan terhadap data BCD: penjumlahan dan
pengurangan.
 Rangkaian instruksinya terdiri dari dua instruksi
yang mengoreksi hasil dari suatu penambahan
BCD dan suatu pengurangan BCD.
 Penjumlahan BCD selalu diikuti instruksi DAA
(decimal adjust after addition), dan
pengurangan BCD diikuti dengan instruksi DAS
(decimal adjust after subtraction)

INSTRUKSI DAA
Instruksi DAA diberikan sesudah instruksi
ADD atau ADC untuk mengatur hasilnya ke
dalam format BCD.
 Anggap DX dan BX masing-masing berisi
paket 4-digit bilangan BCD
INSTRUKSI DAS.

Instruksi DAS memiliki fungsi yang sama dengan instruksi
DAA, kecuali bahwa instruksi ini diberikan sesudah proses
pengurangan dan bukan sesudah proses penambahan.
ARITMETIKA ASCII
Instruksi-instruksi aritmetika ASCII berfungsi
dengan bilangan-bilangan berkode-Ascii.
 Bilangan-bilangan ini nilainya berkisar antara
30H sampai 39H untuk bilangan 0-9.
 Ada 4 instruksi yang digunakan untuk operasi
aritmetika ASCII yaitu: AAA (ASCII adjust after
addition), AAD (ASCII adjust before division),
AAM (ASCII adjust after multiplication), dan AAS
(ASCII adjust after subtraction).
 Instruksi-instruksi ini menggunakan register AX
sebagai sumber dan tujuannya.

INSTRUKSI AAA.

Penjumlahan 2 bilangan kode-ASCII I digit
tidak akan menghasilkan data yang dapat
digunakan.
INSTRUKSI AAD.



Tidak seperti instruksi penyesuaian lainnya, instruksi
AAD ditampilkan sebelum instruksi pembagian.
Instruksi AAD membutuhkan adanya data pada
register AX dalam 2-digit bilangan BCD tak terpaket
(bukan ASCII) sebelum dieksekusi.
Setelah penyesuaian register AX dengan instruksi
AAD, kemudian bagilah dengan bilangan BCD tak
terpaket untuk menghasilkan 1 digit di AL dengan
sisanya di AH.
INSTRUKSI AAM.

Instuksi AAM mengikuti instruksi perkalian setelah proses
perkalian 2 bilangan BCD tak terpaket 1 digit

Contoh 5-23 menunjukkan program singkat yang mengalikan 5
dengan 5.
Hasil perkaliannya adalah 0019H di register AX.
Setelah pengaturan dengan instruksi AAM, AX berisi 0205H. Ini
merupakan hasil dalam bilangan BCD tak terpaket 25.
Jika 3030H dijumlahkan dengan 0205H, hasilnya ASCII 3235H..



INSTRUKSI AAS




Seperti instruksi pengaturan ASCII, AAS mengatur isi
register AX setelah instruksi pengurangan ASCII.
Sebagai contoh anggaplah kita akan mengurangkan
39H dengan 35H. Hasilnya O4H, tidak memerlukan
koreksi.
Di sini instruksi AAS akan memodifikasi AH atau AL.
Dengan kata lain, jika 37H dikurangi 38H, AL akan
bernilai 09H dan bilangan di AH akan didekremen
dengan 1.
Dekremen ini memungkinkan bilangan ASCII berdigitbanyak dapat dikurangkan satu sama lain.