Anda di halaman 1dari 28

ABSTRAK

Konversi bilangan biasanya menjadi pengetahuan dasar yang sering atau


mungkin wajib diberikan kepada mahasiswa pada mata kuliah pengenalan
komputer. Ada empat basis bilangan yang sering digunakan yakni :

bilangan berbasis dua atau yang sering disebut dengan bilangan biner
(binary), digit yang digunakan adalah 0 dan 1

bilangan berbasis delapan atau sering juga disebut oktal (octal), digit yang
digunakan adalah 0, 1, 2, …, 7

bilangan berbasis sepuluh atau desimal yang sering kita digunakan dalam
kehidupan sehari-hari, digit yang digunakan adalah 0, 1, 2, …, 8, 9; serta

bilangan berbasis enambelas atau heksadesimal (hexadecimal), dengan


digit yang digunakan adalah 0, 1, 2, 3, …, 8, 9, A, B, …, E, F. Dimana A sebagai
pengganti nilai 10, B=11, C=12, dst.

1
DAFTAR ISI

ABSTRAK .................................................................................................................... 0
DAFTAR ISI ................................................................................................................. 0
DAFTAR GAMBAR .................................................................................................... 0
BAB I PENDAHULUAN ............................................................................................. 5
I.1 Latar belakang ...................................................................................................... 5
I.2 Rumusan masalah ................................................................................................ 5
I.3 Tujuan .................................................................................................................. 5
BAB II DASAR TEORI ............................................................................................... 6
II.1. Pengenalan 8086 ............................................................................................. 6
II.2 . Arsitektur 8086 ............................................................................................... 6
II.3. Register ........................................................................................................... 8
II.4. Instruksi ........................................................................................................ 11
II.5. Interupsi ........................................................................................................ 13
II.6. Pengalamatan / Adressing........... ................................................................. 13
BAB III Rancangan Proyek ....................................................................................... 14
III.1. Algoritma...................................................................................................... 14
III.2. Flowchart ...................................................................................................... 15
BAB IV Analisa Proyek .............................................................................................. 16
IV.1 Pengujian Sistem ............................................................................................. 16
IV.2 Analisa Sistem ................................................................................................ 24
BAB V PENUTUP ...................................................................................................... 27
V.1 Kesimpulan ....................................................................................................... 27
V.2 Saran ................................................................................................................. 27
DAFTAR PUSTAKA ................................................................................................. 28
LAMPIRAN ................................................................................................................ 29

2
DAFTAR GAMBAR

Gambar 2.1. Mikroprosesor 8086 ................................................................................. 6


Gambar 2.2. Arsitektur 8086 ........................................................................................ 7
Gambar 2.3. Register Multi Fungsi ............................................................................... 8
Gambar 2.4.Register Flag .......................................................................................... 10
Gambar 3.1. Flow Chart Program Konversi Bilangan ................................................ 15
Gambar 5.1. Hasil Output dari Program Hexa ke desimal......................................... 24
Gambar 5.2. Output Program Hexa ke biner............................................................... 25
Gambar 5.3. Output Program Hexa ke oktal ............................................................... 25
Gambar 5.4. Output Program di Akhir ...................................................................... 26

3
BAB I
PENDAHULUAN

I.1 Latar belakang


Seiring dengan perkembangan tehnologi, semua pekerjaan sudah dapat
dilakukan dengan instan, cepat, tepat dan efisien dalam penggunaan waktu.Hal ini
juga sangat membantu manusia dalam melakukan pekerjaannya, termasuk juga
untuk melakukan konversi dari hexa ke biner,oktal,desimal dan untuk
mempermudah hal tersebut maka diciptakan alat bantu untuk
mengkonversikannya

Konversi bilangan adalah proses mengubah bentuk bilangan satu ke


bentuk bilangan lain yang memiliki nilai yang sama. Misal: nilai bilangan desimal
12 memiliki nilai yang sama dengan bilangan octal 15; Nilai bilangan biner 10100
memiliki nilai yang sama dengan 24 dalam octal dan seterusnya.

1. Bilangan Biner

Bilangan biner terdiri dari dua basis 0 dan 1. Supaya mempermudah


perhitungan, bilangan biner diterjemahkan ke basis 10 terlebih dahulu. Dalam
menghitung basis ini ke desimal menggunakan penjumlahan 2 pangkat. Contoh
terjemahkan bilangan biner 1101(2) ke desimal:

1 1 0 1 Desimal

23 x 1 22 x 1 21 x 0 20 x 1 = (8+4+0+1) = 13(10)

Sehingga 1101(2) = 13(10)

Contoh bilangan biner :

0000 0000 0

0000 0001 1

0000 0010 2

0000 0011 3

0000 0100 4

0000 0101 5

0100 0101 133

1111 1111 511

4
5

2. Bilangan Oktal

Bilangan oktal terdiri dari delapan basis 0,1,2,3,4,5,6, dan 7. Cara


perhitungannya sama dengan binary. Perbedaannya dalam basis ini menggunakan
penjumlahan 8 pangkat. Contoh terjemahkan bilangan oktal 1321(8) ke desimal:

83 82 81 80

512 64 8 1

1 3 2 1 Desimal

83 x 1 82 x 3 81 x 2 80 x 1 = (512+192+16+1)

= 721(10)

Sehingga 1321(8) = 721(10)

3. Bilangan Hexadesimal

Bilangan hexadesimal terdiri dari 16 basis yaitu,


0,1,2,3,4,5,6,7,8,9,A,B,C,D,E, dan F. Huruf pada hexadecimal diterjemahkan
kelanjutan dari angkanya. Pada huruf A dihitung 10, huruf B dihitung 11, dan
seterusnya sampai huruf F. Berbeda dengan basis lainnya, cara penulisan basis ini
diawali dengan 0x. Dalam menghitung basis ini ke desimal menggunakan
penjumlahan 16 pangkat. Contoh terjemahkan bilangan hexadecimal 19F(16) ke
desimal:

Desimal

162 x 1

161 x 9

160 x 15

= (256+144+15)

= 415(10)

Sehingga 19F(16) = 415(10)


6

4. Bilangan Desimal

Bilangan desimal terdiri dari 10 basis, 1,2,3,4,5,6,7,8,9 dan 0. Selain basis


lain yang diterjemahkan ke bilangan desimal. Bilangan desimal juga dapat
diterjemahkan ke basis lain. Basis lain diterjemahkan menggunakan hasil jumlah
dari x pangkat. Kebalikannya, untuk mengubah bilangan desimal ke basis lain,
menggunakan pembagian.

Bilangan biner (Bilangan berbasis dua, bilangannya: 0,1)

Bilangan octal (Bilangan berbasis delapan bilangannya: 0,1,2,3,4,5,6,7)

Bilangan desimal (Bilangan berbasis sepuluh, bilangannya:


0,1,2,3,4,5,6,7,8,9)

Bilangan hexadesimal (Bilangan berbasis enam belas, bilangannya:


0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F)

Konversi bilangan hexadesimal ke desimal.

Cara mengkonversi bilangan biner ke desimal adalah dengan mengalikan


satu-satu bilangan dengan 16 (basis hexa) pangkat 0 atau 1 atau 2 dst dimulai dari
bilangan paling kanan. Kemudian hasilnya dijumlahkan. Misal, 79AF(hexa) =
(Fx20) + (9x21) + (Ax22) = 15+144+2560+28672 = 31391(desimal).

Konversi bilangan hexadesimal ke biner.


7

Sama dengan cara konversi bilanga octal ke biner, bedanya kalau bilangan
octal binernya harus 3 buah, bilangan desimal binernya 4 buah. Misal kita
konversi 2 hexa menjadi biner hasilnya bukan 10 melainkan 0010. Contoh lihat
gambar:

Konversi bilangan hexadesimal ke octal.

konversi hexa desimal ke octal yakni dengan mengubah bilangan hexa


ke biner kemudian diubah menjadi bilangan octal. Ringkasnya hexa->biner-
>octal. Lihat contoh;

Contoh Hexadecimal ke Biner


8

9A(16) = ... (2)

9 = 1001

A/10 = 1010

Hasil Konversi = 1001010

Contoh hexadecimal ke Desimal

7A(16) = ... (10)

= (7x161) + (A/10x162)

= 112 + 2560

= 2672

Hasil Konversi = 2672

Contoh Hexadecimal ke Oktal

AF(16) = ... (10)

Diubah ke Biner

A/10 = 1010

F/15 = 1111

Diubah ke Oktal

010 = 2

101 = 5

111 = 7

Hasil Konversi = 257


9

I.2 Rumusan masalah


1. Rumus dalam mencari nilai dari operasi penjumlahan,
pengurangan,penglogaritmaan pembagian, perkalian, perpangkatan,
pengakaran .
2. Bagaimana cara membuat program untuk mencari nilai dari operasi
penjumlahan, pengurangan, pembagian, perkalian, perpangkatan,
pengakaran dengan bahasa assembly.

I.3 Tujuan
1. Kita dapat lebih mudah dan tepat mencari nilai dari operasi penjumlahan,
pengurangan, pembagian,perkalian, perpangkatan, pengakaran, nilai
cosinus sudut, nilai sinus sudut, nilai tangent dari suatu sudut.

2. Mengetahui bagaimana cara untuk melakukan proses pada pemrograman


bahasa assembly

3. Sebagai syarat agar dapat lulus dalam praktikum laboratorium sistem


mikroprosesor .
BAB II
DASAR TEORI

II.1 PENGENALAN 8086

Gambar 2.1 Mikroprosesor 8086

Intel 8086 merupakan mikroprosesor 16-bit dengan arsitektur x86 yang di

desain oleh Intel antara tahun 1976 dan pertengahan 1978, pada saat dikeluarkan.

Dari segi arsitektur secara umum setiap mikroprosesor dapat dipandang oleh

beberapa komponen, yaitu:

• ALU (Arithmetic Logic Unit) merupakan unit yang melakukan semua operasi

aritmatika dan logika.

• Register kerja yang dapat dijangkau pemakai/pemrogram.

• Register prosesor yang dapat digunakan hanya oleh mikroprosesor secara

implisit dan tak dapat dijangkau pemakai.

• Kendali dan pewaktu.

II.2 ARSITEKTUR 8086

Secara umum arsitektur pada mikroprosesor 8086/8088 dapat dilihat pada

gambar 2.2.

10
11

Gambar 2.2 Arsitektur 8086

Beberapa bagian pada gambar dijelaskan sebagai berikut:

1=register utama

2=register segmen dan IP

3=penambah alamat

4=bus alamat internal

5=antrian instruksi

6=unit kontrol

7=bus antarmuka

8=databus internal

9=ALU (Arithmatic Logika Unit)

10/11/12=bus alamat/data/kontrol eksternal.


12

II.3 REGISTER

II.3.1 REGISTER MULTI FUNGSI

Gambar 2.3 Register Multi fungsi

Pada gambar 2 dapat dilihat beberapa register yang ada pada


mikroprosesor 8086.Dan berikut adalah penjelasan singkat masing – masing
register.

• Register A (AL,AH,AX,EAX,RAX) Akumulator


Register A adalah akumulator.dimana akumulator biasanaya digunakan
oleh instruksi yang melakukan perkalian, pembagian, penjumlahan dan
pengurangan. AX adalah register berukuran 16 bit dimana dibagi menjadi 2
register AH (8 bit high) dan AL (8 bit low). RAX dan EAX memiliki ukuran 64
bit dan 32 bit.

• Register B (BL,BH,BX,EBX,RBX) Base


Register B (Base) terkadang menyimpan alamat offset dari sebuah lokasi
memori didalam sistem. Register Base juga dapat digunakan untuk
mengalamatkan data memori.
13

• Register C (CL,CH,CX,ECX,RCX) Count


Register C juga merupakan register multi-fungsi yang banyak digunakan
oleh banyak instruksi.Biasanya register Count digunakan untuk pencacahan
perluangan suatu subrutin ataupun label.

• Register D (DL,DH,DX,EDX,RDX) Data


Register Data digunakann untuk penyimpanan sebagian dari hasil operasi
perkalian ataupun pembagian

• RBP (Base Pointer)


Base Pointer digunakan untuk menunjukan lokasi suatu memori untuk
transfer data memori.

• RSI (Source Index)


Source Index digunakan untuk mengalamatkan sumber data string untuk
operasi string.

• RDI (Destination Index)


Destination Index digunakan untuk mengalamatkan tujuan data string
untuk operasi string.

• RSP (Stack Pointer)


Stack Pointer mengalamatkan area memori yang disebut stack. Memori
stack menyimpan data melalui pointernya

II.3.2 Register Flags


Register Flags adalah register yang mengindikasikan kondisi
mikroprosesor dan kontrol operasinya. Register Flag hanya bersifat penanda
(bendera) dan tidak merubah nilai yang ada pada register lain dan memori. Pada
gambar 3 adalah register flag yang digunakan oleh mikroprosesor 8086.
14

Gambar 2.4 Register Flag


• Carry
Flag Carry menampung carry dari penjumlahan atau borrow dari
pengurangan. Flag carry juga dapat mengindikasikan error.

• Parity
Flag Parity digunakan unutk mengecek kesalahan bilangan. Logika memiliki
logika 0 untuk parity ganjil dan logika 1 untuk parity genap.

• Auxiliary Carry
Auxiliary Carry juaga digunakan untuk mengecek carry (half carry)

• Zero
Flag Zero digunakan untuk menandakan bahwa hasil dari operasi aritmatika
bernilai nol.

• Sign
Flag sign digunakan untuk menandai tanda aritmatika dari hasil operasi
penjumlahan ataupun hasil logika.

• Interupt
Interupt digunakan untik mengontrol operasi INTR (permintaan interupt).

• Trap
Trap digunakan untuk mengenablekan fitur debugging on-chip.
15

• Overflow
Overflow terjadi ketika bilangan bertanda dijumlahkan ataupun dikurangkan.

• Direction
Direction digunakan untuk penanda pada register DI atau SI arah
penambahannya bersifat maju atau mundur.

II.4 INSTRUKSI
Instruksi yang akan dibahas pada modul ini adalah instruksi perpindahan
data.

II.1.3.1 Instruksi Umum (Perpindahan Data)


Instruksi perpindaahan data merupakan instruksi yang paling sering dalam
permrograman mikroprosesor dan juaga relatif lebih mudah untuk dipahami.

• MOV
MOV merupakan instruksi paling umum dalam pemrograman
mikroprosesor. Instruksi MOV melaksanakan operasi perpindahan data . Contoh :
MOV AX,BX. MOV BX,678h

• PUSH / POP
PUSH dan POP adalah instruksi perpindahan data yang spesifik pada
segmen stack. Instruksi PUSH berfungsi untuk mengamankan nilai suatu register
kedalam memori stack sebelum mikroprosesor memasuki suatu rutin ataupun
prosedur, sedangkan Instruksi POP digunakan untuk mengembalikan nilai register
dari memori stack setelah rutin selesai dijalankan.

• LEA (Load Effective Addres)


Instruksi LEA digunakan untuk mengisi register 16 bit manapun dengan
alamat offset. Contoh :
DATA1 DW 2000H ;define DATA1
16

.CODE ;start code segment


.STARTUP ;start program

II.1.3.2 Instruksi Aritmatika dan Logika


Berikut adalah instruksi yang digunakan pada Aritmatika dan Logika:

• ADDITION,SUBTACTION, COMPARISON
Beberapa instruksi yang digunakan adalah ADD, SUB dan CMP.

• MULTIPLICATION, DIVISION
Instruksi yang digunakan untuk operasi perkailain dan pembagian adalah
MUL dan DIV.

• BASIC LOGIC
Beberapa instruksi logika pada mikroprosesor adalah AND, OR, XOR,
NOT dan TEST.

• SHIFT , ROTATE
Instruksi SHIFT dan ROTATE digunakan untuk memanipulasi bilangan
pada level bit binernya , sama dengan instruksi logika dasar.

II.1.3.3 Instruksi Kontrol Program

Instruksi yang digunakan pada control program adalah sebagai berikut:

• JUMP
Instruksi kontrol program utama adalah JUMP , instruksi ini
memungkinkan mikroprosesor “melompati” bagian program menuju bagian lain
dari memori untuk instruksi berikutnya.
Instruksi JUMP sendiri terbagi 2 yaitu CONDITIONAL JUMP dan
UNCONDITIONAL JUMP.
17

II.5 INSTERUPSI

Interupsi jika diartikan adaalh “panggilan” mendesak dari

hardware(biasanys berasal dari sinyal hardware) ataupun “panggilan” yang

dihasilkan dari exekusi sofware.(biasanya akibat dari beberapa event internal).

II.6 PENGALAMATAN / ADRESSING

Penjelasan dasar dari mode pengalamatan data,

II.6.1 PENGALAMATAN LANGSUNG

Karena Instruksi MOV sangat umum dan flexibel . Instruksi MOV

menyediakan PENGALAMATAN LANGSUNG / DIRECT ADDRESSING.

Pengalamatan langsung memindahkan sebuah byte atau word antara lokasi

memori dan register . Pengalamatan ini tidak mendukung transfer memori ke

memori. Contoh : MOV AX,[1204h].

II.6.2 PENGALAMATAN REGISTER/ REGISTER ADDRESSING

Pengalamtan register mentransfer salinan byte atau word data dari register

sumber atau isi dari lokasi suatu memori ke register tujuan ataupun lokasi memori

tujuan . Contoh : MOV AX,BX .

II.6.3 PENGALAMATAN SEGERA/ IMMEDIATELY ADDRESSING

Pengalamatan segera mentransfer sebuah data byte atau word ke tujuan

register atau lokasi memori. Contoh : MOV AL,22h.


BAB III
RANCANGAN PROYEK

III.1 Algoritma

Algoritma untuk program kalkulator adalah sebagai berikut :

1. Start.

2. Masukkan nilai bit hexa.

3. Masukkan nilai Cx=8

4. Pilih operasi yang anda gunakan, yaitu konversi hexa ke biner ,Hexa ke

desimal dan Hexa keoktal

5. Jika anda memilih batal maka operasi nya akan dikeluarkan secara

otomatis untuk mengahiri program

6. Jika anda memilih Hexa ke biner maka instruksi yang digunakan

menggunakan perintah add

7. Jika anda memilih Hexa ke desimal,maka instruksi yang digunakan adalah

menggunakan perintah sub

8. Jika anda memilih Hexa ke oktal,maka instruksi yang digunakan adalah

menggunakan perintah mull

9. Jika anda memilih pembagian, maka instruksi yang digunakan adalah

menggunakan perintah div

10. Tampilkan

11. End proces

18
19

II.2 Flowchart

Gambar 3.1 Flow Chart Program Konversi Bilangan Dari Hexadesimal


20

Gambar 3.2 Flow Chart Program Konversi Hexa ke Biner


21

Gambar 3.3 Flow Chart Program Konversi Hexa ke Desimal


22

Gambar 3.2 Flow Chart Program Konversi Hexa ke Okta


BAB IV
Analisa Proyek

IV.1 Pengujian Sistem


1.Memulai program

2. Input 2 bit bilangan heksa

3. Input pilihan konversi untuk= 1. konversi bilangan Hexa ke biner

2. konversi bilangan Hexa ke desimal

3. Konversi bilangan Hexa ke oktal

4. Jika pilihan yang diinput adalah 1 maka lanjut ke langkah 5 jika tidak lanjut ke
langkah 11

5. Input Cx=8 jika Cx=8 lanjut ke langkah 6 jika tidak ke langkah 9

6. Geser ke kiri 1 bit

7. Jika carry = 0 maka tampilkan 0 jika tidak tampilkan 1

8. Input Cx=1

9. Input Cx=0

10.Tampilkan hasil

11.Jika pilihan yang diinput adalah 2 maka lanjut ke langkah 12 jika tidak lanjut
ke langkah 17

12. Bagikan bilangan dengan 10

13. Simpan data di AL

14. Tambahkan AH dengan 30

15. Simpan AL ke DL

16. Tampilkan hasil

17. Jika pilihan yang diinput adalah 3 maka lanjut ke langkah 18 jika tidak ke
langkah

18. Bagikan bilangan dengan 8

19. Simpan data di AL

23
24

20. Tambahkan AH dengan 30

21. Simpan data AL ke DL

SELESAI

IV.2 Analisa Sistem

Gambar 5.1 Merupakan hasil output dari program konversi hexadesimal ke biner
seperti yang terlihat pada gambar diatas.

Gambar 5.2 Merupakan hasil output dari program konversi hexadesimal ke


desimal seperti yang terlihat pada gambar diatas.
25

Gambar 5.3 Merupakan hasil input dari program konversi hexadesimal ke oktal,
seperti yang terlihat pada gambar diatas

Gambar 5.4 Merupakan hasil input dari program saat di ahiri, seperti yang terlihat
pada gambar diatas.
BAB V
PENUTUP

V.1 Kesimpulan
 Dengan menggunakan bahasa pemrograman assemby dan compiler
emulator 8086 kita dapat merancang aplikasi program konversi bilangan
Hexa ke biner,desimal dan oktal.
 Uji coba program konversi bilangan hexadesimal dengan menggunakan
bahasa assembly ini berlangsung lancar dengan berhasilnya aplikasi ini
mengonversi bilangan Hexa ke biner,desimal dan oktal dengan tepat.

V.2 Saran
 Aplikasi ini dapat dikembangkan lebih lanjut dengan tampilan yang lebih
menarik.
 Aplikasi ini dapat diterapkan pada alat komunikasi sehingga membantu
kita untuk melakukan perhitungan dengan cepat dan tepat terkhusus untuk
para mahasiswa dalam mengerjakan tugasnya.
 Apliksai ini dapat dikembangkan programnya untuk perhitungan yang
lebih rumit.

26
DAFTAR PUSTAKA

Modul Praktikum Sistem Mikroprosesor

Jogiyanto. H.M. 1999 Language and Languages (Computer Program)

www.cplusplus.com

http://www.musbikhin.com/konversi-bilangan siddiq. (2014, - 4). konversi-


bilangan-biner-octal-desimal.html.

27
LAMPIRAN

; Program Konversi Bilangan Hexa ke Biner & Desimal & Okta


ORG 100h

jmp judul
msgjudul db "PROGRAM KONVERSI BILANGAN HEXA KE
BINER & DESIMAL & OKTAL $"
msg1 db "Nilai Hexa : $"
msg2 db "Menu :",0ah,0dh,"1.Konversi ke
biner",0ah,0dh,"2.Konversi ke desimal",0ah,0dh,"3.Konversi ke Octa
$"
msg3 db "Masukkan pilihan : $"
msg4 db "Nilai Biner : $"
msg5 db "Nilai Decimal : $"
msg6 db "Nilai Octadecimal : $"
msg7 db "Apakah ingin melakukan pengulangan? (y/n):$"
msg8 db " $"

Judul:
mov dh,0h ;atur kursor pada baris 0
mov dl,0bh ;atur kursor pada kolom 0
mov ah,2
int 10h
lea dx,msgjudul
mov ah,9
int 21h

28

Anda mungkin juga menyukai