Anda di halaman 1dari 5

Mikroprosesor Ir.

Morlan Pardede, MT
Konversi Hexa ke BCD dan BCD ke Hexa

MODUL 4
KONVERSI BCD ke Hexa dan Hexa ke BCD

A. TUJUAN
1. Membuat program konversi bilangan BCD ke bilangan biner (Hexa)
2. Membuat program konversi bilangan Hexa ke bilangan BCD

B. Dasar Teori
1. Konvesi BCD ke Biner (Hexa)
Mikroprosesor bekerja dengan bilangan biner untuk itu data yang dalam bentuk
desimal harus diubah ke bentuk bilangan biner atau (hexa). Jika bilangan BCD berada antara
0 sampai 9 pengkonversian bilangan BCD ke bilangan biner mudah dilakukan karena tidak
ada konversi. Tetapi jika bilangan lebih besar dari 9 (berada antara A sampai F) konversi
akan sulit dilakukan. Konversi bilangan BCD ke biner yang umum dilakukan untuk bilangan
BCD dua digit adalah mengalikan digit puluhannya dengan 10 dan kemudian
menambahkannya dengan angka satuan. Karena yang melakukan operasi aritmatik ini adalah
mikroprosesor (bukan manusia) berarti hasilnya berupa bilangan biner (hexa).
Untuk 3 digit dilakukan dengan mengalikan digit bobot ratusan dengan 100, mengalikan
bobot puluhan dengan 10 dan kemudian menjumlahkan hasil kali 100 ditambah dengan hasil
kali 10 dan ditambah angka satuan.
Contoh: Untuk angka 216 dilakukan 2 x 100 + 10x1 + 6.

Algoritma konversi BCD ke biner (Hexa)


Dari uraian konversi BCD ke biner di atas maka dapat dibuat algoritma konversi BCD ke
Biner. Dimulai dengan memberikan hasil dengan 0 dan mengambil digit MSB dari bilangan
BCD. Mengalikan hasil dengan 10 dan kemudian menambahkannya dengan digit BCD.
Proses ini diulangi hingga semua angka BCD dikali 10 dan ditambahkan dengan angka
BCDnya seperti ditunjukkan pada proses berikut:
Mengubah 2001 (BCD) ke biner (Hexa):
0 x 10 + 2 = 2
2 x 10 + 0 = 20 (14H)
20 x 10 + 0 = 200 (C8H)
200 x 10 +1 = 2001 (7D1H)

4-1 POLITEKNIK NEGERI MEDAN


Mikroprosesor Ir.Morlan Pardede, MT
Konversi Hexa ke BCD dan BCD ke Hexa

Proses perkalian dan penjumlahan dilakukan prosesor secara biner sehingga hasilnya adalah
biner atau hexa yaitu 7D1H.
Sesuai dengan algoritma di atas berikut ini diberikan flowchart untuk mengkonversi
bilangan BCD yang.terdapat pada tumpukan memori dan diakhiri dengan kode CR (0DH).
BCD to Hexa

Set alamat awal Bil. BCD

Clear Hasil

Ambil Bilangan BCD

Periksa Bilangan

Tdk
CR ? Selesai

Hasil=Hasil kali 10

Hasil=Hasil+ bil.BCD

Naikkan Alamat bil. BCD

Gambar 1. Diagram Alir Konversi Bilangan BCD ke Hexa


Berikut ini diberikan program mengkonversi bilangan BCD dimana digit-digitnya terdapat
pada memori yang diawali alamat 8120H (MSD) dan akhir digit ditandai dengan karakter
CR(Enter).

Program 1. Konversi BCD ke Hexa


ORG 8100H
BCD_Ke_Hexa:

4-2 POLITEKNIK NEGERI MEDAN


Mikroprosesor Ir.Morlan Pardede, MT
Konversi Hexa ke BCD dan BCD ke Hexa

LXI SP,8140H
LXI B,8130H ;Set alamat awal bil BCD (MSD)
LXI H,0000H ;Clear Hasil
ULANG: LDAX B ;Ambil bil. BCD
CPI 0DH ;Periksa apakah karakter CR

JZ SELESAI ;Jika CR selesai


CALL KALI_10 ;Hasil dikali 10
MVI D,00
MOV E,A
DAD D ;Hasil + bil. BCD
INX B ;Naikkan alamat data
JMP ULANG ;Ulangi
SELESAI: HLT ;Selesai

KALI_10:PUSH B
DAD H ; Hasil dikali
MOV C,L ; Simpan hasil kali 2
MOV B,H
DAD H ; HL dikali 4
DAD H ; HL dikali 8
DAD B ; HL= HL awal dikali 10
POP B
RET

ORG 8130H
DB 06, 05, 05,03H ; Bil. BCD
DB 05, 0DH . ;

2. Konvesi Biner(Hexa) ke BCD


Semua operasi dalam mikroprosesor adalah biner, sedangkan kita biasanya bekerja
dalam bentuk desimal. Sehingga untuk mempermudah pembacaan bilangan biner (Hexa) hasil
operasi mikroprosesor tersebut harus diubah ke dalam bentuk BCD. Konversi bilangan biner
ke bilangan BCD yang umum dilakukan adalah dengan membagi bilangan biner (hexa)
tersebut dengan 10 dan sisanya merupakan digit bilangan BCD. Hasilnya dibagi 10 lagi dan
sisanya merupakan digit BCD, proses ini diulangi hingga hasil bagi sama dengan 0 seperti
ditunjukkan berikut ini.

4-3 POLITEKNIK NEGERI MEDAN


Mikroprosesor Ir.Morlan Pardede, MT
Konversi Hexa ke BCD dan BCD ke Hexa

Mengubah 11001102 atau 66H ke bil. BCD:


66H /0AH = Hasil: 0AH Sisa : 02
0AH /0AH = Hasil: 01H Sisa: 00
01H /0AH = Hasil: 00 Sisa: 01
Jawab:102

Hexa ke BCD

Set alamat awal Bil. BCD

Bil.Hexa=Bil. Hexa dibagi 10

Simpan Sisa bagi sbg


Digit BCD

Naikkan alamat digit BCD

Periksa Bilangan Hexa

Tdk
Bilangan
0?

Simpan CR
(sbg akhir bil. BCD)

Selesai

Gambar 2. Diagram Alir Konversi Hexa ke BCD


Program 2. Konversi Bilangan Hexa ke bilangan BCD
ORG 8000H
LXI B,8200H ;Set alamat awal digit BCD
LXI H,1271H ;Set bilangan Hexa
LXI SP,8210H
ULANG: CALL BAGI-10 ;Isi HL dibagi 10 dan hasil pada DE sisa pada reg.A
STAX B ;Simpan sisa bagi sbg digit BCD
INX B ;Naikkan alamat digit BCD
XCHG ;Hasil bagi menjadi bil. Hexa
MOV A,L ;Periksa bil. Hexa
ORA H ; apakah 0000
JNZ ULANG ; Jika belum 0000 ulangi
MVI A,0DH ;Simpan CR sbg tanda akhir bil. BCD

4-4 POLITEKNIK NEGERI MEDAN


Mikroprosesor Ir.Morlan Pardede, MT
Konversi Hexa ke BCD dan BCD ke Hexa

STAX B
HLT

BAGI-10: PUSH B
LXI D,0000 ;Clear hasil bagi
MVI A,00 ;buffer
MVI C,0AH ;set pembagi 10
MVI B,10H ;Set loop=banyak geser 16 kali(banyak bit bil.dibagi)
ULANG1: DAD HL ;Geser bil dibagi ke kiri
RAL ;geser buffer ke kiri shg MSB dibagi ke LSB buffer
XCHG ;Geser hasil ke kiri dengan bit LSB =0
DAD HL
XCHG
CMP C ;Bandingkan buffer dengan pembagi
JC LMPT ;Lompat jika buffer lebih kecil
SUB C ;Jika buffer > atau= dengan pembagi kurangkan buffer
INR E ;dengan pembagi dan bit LSB hasil=1
LMPT: DCR B ;Kurangi banyak loop
JNZ ULANG1 ;Ulangi jika belum semua bit pembagi digeser ke buffer
POP B
RET ;Kembali

C. Tugas
1. Dengan algoritma yang diberikan buat program konversi bilangan BCD ke Hexa dimana
digit-digit BCD-nya terdapat pada memori 8200H sampai 8204H dan hasilnya (bilangan
hexa) disimpan pada memori yang dimulai dari 8210H.

2. Dengan algoritma yang diberikan buat program konversi bilangan Hexa 16-bit yang
terdapat pada memori 8300H sampai 8301H ke bilangan BCD dimana digit-digit BCD-
nya disimpan pada memori dimulai dari alamat 8310H.

D. Percobaan.
1. Simulasikan Program 1 ( Konversi bilangan BCD ke Hexa)
2. Analisa hasil simulasi
3. Simulasikan program yang anda buat
4. Berikan kesimpulan anda
5. Simulasikan Program 2 ( Konversi bilangan Hexa ke BCD)
6. Analisa hasil simulasi
7. Simulasikan program yang anda buat
8. Berikan kesimpulan anda

4-5 POLITEKNIK NEGERI MEDAN

Anda mungkin juga menyukai