Anda di halaman 1dari 13

LAPORAN PRAKTIKUM MIKROPROSESOR

PENJUMLAHAN BILANGAN DALAM SOFTWARE EMU8086

Disusun Oleh :

Fikri Purwana Senja (201331010)

2A-TTE

Dosen Pembimbing :

Ferry Satria, BSEE, M.T.

Rahmawati Hasanah, S.ST., M.T.

Tanggal Praktikum : 2 February 2022

Tanggal Pengumpulan : 6 February 2022

PROGRAM STUDI TEKNIK TELEKOMUNIKASI

JURUSAN TEKNIK ELEKTRO

POLITEKNIK NEGERI BANDUNG

2022
DAFTAR ISI

I. Tujuan ............................................................................................................................................ 1
II. Dasar Teori ..................................................................................................................................... 1
III. Alat ................................................................................................................................................. 3
IV. Langkah Praktikum ........................................................................................................................ 3
V. Hasil Praktikum .............................................................................................................................. 4
VI. Analisis Data .................................................................................................................................. 9
VII. Kesimpulan .................................................................................................................................. 11
VIII. Daftar Pustaka .............................................................................................................................. 11
I. Tujuan
Dalam praktikum ini, diharapkan mahasiswa dapat :
1. Memahami penggunaan fitur software Emu8086.
2. Membuat program dan menjalankan program dengan bahasa assembly pada operasi
penjumlahan hexadecimal dalam software emu8086.
3. Memahami cara kerja program penjumlahan hexadecimal dalam sofwtware emu8086

II. Dasar Teori


A. Mikroprosesor Intel 8086
Mikroprosesor atau CPU merupakan komponen yang bekerja layaknya “otak” pada
manusia atau menjadi pengendali utama semua aktivitas yang dieksekusi oleh computer.
Intel 8086 merupakan salah satu merk prosesor 16 bit yang dapat beroperasi secara internal
16 bit dan mengirimkan data 16 bit secara eksternal melalui bus.

Gambar 1 Arsitektur Intel 8086

Mikroprosesor ini terbagi menjadi 2 unit, yaitu BIU (Bus Interface Unit), dan EU
(Execution Unit). Sesuai dengan namanya BIU bertugas sebagai unit antarmuka bus. BIU
tersusun dari beberapa komponen, yaitu register segmen, Instruction Pointer (IP), dan
Instruction Stream Byte Queue (ISBQ). EU bertugas sebagai unit eksekutor. EU juga
tersusun dari beberapa komponen, yaitu decoder instruksi, sistem control, Arithmetic Logic
Unit (ALU), register serbaguna dan flag register.

Emu8086 merupakan software emulator bagi pemrograman bahasa assembler atau


mikrokontroller. Dengan menggunakan software emulator, kita dapat melakukan simulasi
apakah program control hardware yang dibuat sudah benar atau masih terdapat suatu
kesalahan / error. Emu 8086 merupakan emulator untuk prosesor 8086 yang sudah
dilengkapi dengan editor dan assembler yang bersifat GUI (Graphical User Interface).
Dengan emu 8086 internal register dapat diamati dari waktu ke waktu akibat dari eksekusi
suatu instruksi assembly.

1
Perintah dasar bahasa assembly dalam software Emu8086
1. Model Small
Tanda directive ini digunakan untuk memberitahukan kepada assembler bentuk
memory yang digunakan oleh program kita. Supaya lebih jelas model-model yang
bisa digunakan adalah :
a. Tiny
Jika program hanya menggunakan 1 segmen seperti program COM. Model ini
disediakan khusus untuk program COM.
b. Small
Jika data dan code yang digunakan oleh program kurang dari ukuran 1 segmen
atau 64 Kb.
c. Medium
Jika data yang digunakan oleh program kurang dari 64 Kb tetapi code yang
digunakan bisa lebih dari 64 Kb.
d. Compact
Jika data yang digunakan bisa lebih besar dari 64 Kb tetapi codenya kurang dari
64 Kb.
e. Large
Jika data dan code yang dipakai oleh program bisa lebih dari 64 Kb.
f. Huge
Jika data, code maupun arry yang digunakan bisa lebih dari 64 Kb.
2. .Code
Tanda directive ini digunakan untuk memberitahukan kepada assembler bahwa kita
akan mulai menggunakan code segmen dimulai dari baris tersebut. Code segmen ini
digunakan untuk menyimpan program yang nantinya akan dijalankan.
3. .ORG 100H
Pada program Com perintah ini akan selalu digunakan. Perintah ini digunakan untuk
meberitahukan assembler supaya program pada saat dijalankan (diload ke meory)
ditaruh mulai pada offset ke 100H (256 byte). Dapat dikatakan juga bahawa kita
menyediakan 100H byte kosong pada saat program dijalankan. 100H byte kosong ini
akan ditempati oleh PSP (Program Segmen Prefix) dari program tersebut. PSP ini
digunakan oleh DOS untuk mengontrol jalannya program tersebut.
4. JMP
Perintah JMP (JUMP) ini digunakan untuk melompat menuju tempat yang
ditunjukkan oleh perintah JUMP.
5. INT 20H
Peirntah INT adalah suatu perintah untuk menghasilkan suatu interupsi.

B. Bahasa Assembly
Bahasa Assembly merupakan jenis bahasa pemrograman yang ada pada generasi
kedua. Bahasa assembly ini juga dinamakan sebagai bahasa rakitan yang merupakan
bahasa yang digunakan untuk computer, namun bahasa ini masuk ke dalam kategori
sebagai bahasa tingkat rendah atau low level language. Bahsa ini merupakan notasi untuk
mesin sehingga nanti bisa dibaca oleh manusia. Berbeda dengan high level language atau
bahasa tingkat tinggi, bahasa assembly ini mempunyai hubungan 1-1 dengan berdasarkan
instruksi mesin. Contohnya, untuk setiap julukan atau mnemonic yang nanti akan ditulis

2
dengan menggunakan bahasa assembly, maka nanti juga akan langsung diterjemahkan
dengan tepat satu kode operasi sehingga bisa langsung dimengerti oleh computer.
Sementara itu, pada bahasa tingkat tinggi satu perintah mampu diterjemahkan ke dalam
berbagai macam kode operasi di dalam bahasa mesin tersebut. Proses perubahan bahasa
dari bahasa assembly ke bahasa mesin dilakukan oleh assembler. Sementara untuk proses
kebalikannya merupakan fungsi dari diassembler. Namun untuk setiap kkomputer yang
sudah dilengkapi dengan bahasa mesin yang cenderung tidak sama sehingga
mengakibatkan bahasa assembly yang dihasilkan juga berpotensi tidak sama.
Untuk bahasa tingkat tinggi, bahasa ini lebih berfokus pada manusia dimana cara
kerjanya adalah bagaimana agara supaya semua pernyataan yang ada didalam program
tersebut bisa ditulis dengan mudah sehingga mudah dipahami oleh manusia. Sementara
untuk jenis bahasa tingkat rendah lebih berfokus pada bahasa mesin. Inilah yang menjadi
perbedaan dasar diantara kedua jenis bahasa yang kerap digunakan oleh computer dalam
menjalankan tugasnya.

Kelebihan bahasa assembly :


1. Ketika decompile ukurannya lebih kecil
2. Lebih efisien dan hemat memori
3. Lebih cepat untuk dieksekusi

Kesulitan bahasa assembly :


1. Lebih sulit dalam melakukan pekerjaan rumit, misalnya operasi matemtais.
2. Relatif lebih sulit untuk dipahami terutama jika jumlah baris sudah terlalu
banyak.
3. Dalam melakukan suatu perkejaan, baris program relative lebih panjang
disbanding bahasa tingkat tinggi.

III. Alat
a. PC/Laptop
b. Software Emu8086

IV. Langkah Praktikum


1. Buka aplikasi emu8086
2. Buat aplikasi sesuai perintah dibawah ini :
a. Buat program untuk menjumlahkan 6 data Heksadesimal berikut : F5H, ACH, 8BH,
D4H, ABH, dan 99H. Simpan hasil penjumlahan pada register BX.
b. Buat program untuk menjumlahkan 9 data Heksadesimal berikut : FFH, 7AH, 8BH,
66H, DDH, 9CH, 7FH, 5CH, dan EEH. Simpan hasil penjumlahan pada register
CX.
c. Buat program untuk menjumlahkan 6 data Heksadesimal berikut : FAAFH,
BEDAH, ABCDH, AA66H, 88DDH, dan BECAH. Simpan hasil penjumlahan pada
register BL : CX.
d. Buat program untuk menjumlahkan 6 data Heksadesimal berikut : FFFFFFH,
7AAF45H, 8B6543H, FFFF66H, DDE4C9H, dan 9CDDEEH. Simpan hasil
penjumlahan pada register CX : DX.

3
e. Buat program untuk menjumlahkan 20 data Heksadesimal berikut : FFH, 7AH, 88H,
54H, B7H, 99H, 7EH, 9DH, 5EH, 2BH, 66H, 4FH, C5H, 7AH, AAH, 9CH yang
tersimpan pada Data Area. Simpan hasil penjumlahan pada register DX.
f. Buat program untuk menjumlahkan 4 data Heksadesimal berikut : FAAFH,
BEDAH, ABCDH, AA66H. Simpan hasil penjumlahan pada Register:BL:CX.
3. Setelah program dibuat, klik compile untuk memastikan tidak ada kesalahan dalam
pembuatan program.
4. Jalankan program yang telah dibuat dengan klik emulate.
5. Amati tampilan program operasi penjumlahan heksadesimal tersebut dengan klik single
step.
6. Masukkan data yang dihasilkan dari operasi penjumlahan heksadesimal pada data hasil
praktikum.

V. Hasil Praktikum
1. Program Penjumlahan 6 Heksadesimal
Data : F5H, ACH, 8BH, D4H, ABH, 99H

Program :

Hasil :

4
2. Program Penjumlahan 9 Data Heksadesimal
Data : FFH, 7AH, 8BH, 66H, DDH, 9CH, 7FH, 5CH, EEH.

Program :

Hasil :

5
3. Program Penjumlahan 6 Data Heksadesimal
Data :FAAFH, BEDAH, ABCDH, AA66H,88DDH, BECAH.

Program :

Hasil :

6
4. Program Penjumlahan 6 Data Heksadesimal
Data : FFFFFFH, 7AAF45H, 8B6543H, FFFF66H, DDE4C9H, 9CDDEEH

Program :

Hasil :

7
5. Program Penjumlahan 20 Data Heksadesimal
Data :
FFH,7AH,8BH,66H,DDH,9CH,88H,54H,B7H,99H,7EH,9DH,5EH,2BH,66H,4FH,C5H,
7AH,AAH,9CH

Program :

Hasil :

6. Program Penjumlahan 4 Data Heksadesimal

8
Data :FAAFH,BEDAH,ABCDH,AA66H

Program :

Hasil :

VI. Analisis Data


Pada praktikum ini, praktikan ditugaskan membuat program untuk menjumlahkan
bilangan heksadesimal dengan menggunakan software EMU8086. Pada program tersebut
terdapat beberapa perintah atau sytax yang digunakan, pertama adalah TITLE yang berfungsi
untuk memberikan judul untuk program yang dibuat dengan simple. Kedua adalah .MODEL
SMALL yang berfungsi untuk memberitahukan bentuk memori yang digunakan pada program,
pada program ini menggunakan SMALL yang artinya data dan code yang digunakan pada
program kurang dari ukuran 1 segment atau 64 KB. Ketiga adalah .STACK 100H yang
berfungsi memberitahuakn lokasi penyimpanan/memory dan sebagai tempat penyimpanan
sementara untuk data. Keempat adalah .DATA yang berfungsi untuk mengunduh data RAM

9
area. Pada bagian akhri program terdapat syntax MAIN ENDP yang berfungsi untuk
mengakhiri prosedur atau method pada program yang dibuat dan syntax END MAIN berfungsi
untuk menutup kode area.
Pada program ini juga menggunakan syntax operasi penjumlahan yaitu ADD (addition)
dan ADC (addition with carry). Pada syntax ADD digunakan untuk menjumlahkan bilangan
sedangkan syntax ADC digunakan untuk menyimpan hasil carry yang berasal dari penjumlahan
sebelumnya.
Percobaan pertama adalah membuat program untuk menjumlahkan 6 bilangan
heksadesimal yaitu F5H,ACH,8BH,D4H,ABH,99H dengan hasil penjumlahan disimpan pada
register BX. Variabel yang digunakan adalah variabel DB karena data hanya memiliki 8 byte
dan dapat disimpan pada satu lokasi memori. Pada proses penjumlahan data dapat dipanggil
sesuai urutan dengan menggunakan syntax SI, SI+1, SI+2, SI+3, SI+4, SI+5. Register yang
digunakan pada penjumlahan ini adalah register BL dan BH yang berfungsi untuk menyimpan
carry yang dihasilkan. Penjumlahan akan dilakukan sesuai urutan data yang dimasukkan yaitu
mulai dari F5H hingga 99H dan hasil yang didapat yaitu 444.
Percobaan kedua adalah membuat program untuk menjumlahkan 9 bilangan
heksadesimal yaitu FFH,7AH,8BH,66H,DDH,9CH,7FH,5CH,EEH dan hasil penjumlahan
disimpan pada register CX. Variabel yang digunakan adalah DB karena data hanya memiliki 8
byte dan dapat disimpan pada satu lokasi memori. Pada proses penjumlahan dapat dipanggil
sesuai urutan dengan menggunakan syntax SI, SI+1, SI+2, SI+3, dan seterusnya. Register yang
digunakan pada penjumlahan ini adalah register CL dan CH untuk menyimpan carry yangn
dihasilkan. Penjumlahan akan dilakukan sesuai urutan data yang dimasukkan yaitu mulai dari
FFH sampai dengan EEH dan hasil yang diperoleh yaitu 5AC.
Percobaan ketiga adalah membuat program untuk menjumlahkan 6 bilangan
heksadesimal yaitu FAAFH, BEDAH, ABCDH,AA66H,88DDH, BECAH dengan hasil
penjumlahan disimpan pada register BL : CX. Variabel yang digunakan adalah DW karena data
memiliki 16 byte dan disimpan pada dua lokasi memori. Pada proses penjumlahan dapat
dipanggil sesuai urutan dengan menggunakan sytax SI, SI+2, SI+4, dan seterusnya. SI + 2
karena pada penjumlahan tersebut memerlukan dua lokasi memori untuk menyimpan data.
Register yang digunakan pada penjumlahan ini adalah register CX dan BL yang berfungsi untuk
menyimpan carry yang dihasilkan. Penjumlahan akan dilakukan sesuai urtan data yang
dimasukkan yaitu mulai dari FAAFH hingga BECAH dan hasil yang diperoleh yaitu 45763.
Percobaan keempat adalah membuat program untuk menjumlahkan 6 bilangan
heksadesimal yaitu FFFFFFH,7AAF45H,8B6543H,FFFF66H,DDE4C9H,9CDDEEH dengan
hasil penjumlahan disimpan pada register CX : DX. Variabel yang digunakan adalah DD karena
data yang digunakan memiliki 32 byte dan disimpan pada empat lokasi memori, tetapi pada
data tersebut hanya memiliki 6 angka / huruf maka hanya menggunakan tiga lokasi memori
sedangkan memori keempat hanya diisi dengan 00. Pada proses penjumlahan data dapat
dipanggil sesuai urutan dengan menggunakan syntax SI, SI+2, SI+4, dan seterusnya. Register
yang digunakan pada penjumlahan ini adalah register DX dan CX yang berfungsi untuk
menyimpan carry yang dihasilkan. Penjumlahan akan dilakukan sesuai urutan FFFFFFH
sampai dengan 9CDDEEH dan hasil yang diperoleh yaitu 480D6A4.
Percobaan kelima adalah membuat program untuk menjumlahkan 20 bilangan
heksadesimal yaitu FFH, 7AH, 8BH, 66H, DDH, 9CH, 88H, 54H, B7H, 99H, 7EH, 9DH, 5EH,
2BH, 66H, 4FH, C5H, 7AH, AAH, 9CH dengan hasil penjumlahan disimpan pada register CX.
Variabel yang digunakan adalah DB karena data hanya memiliki 8 byte dan dapat disimpan
pada satu lokasi memori. Pada proses penjumlahan data dapat dipanggil sesuai urutan dengan
menggunakan syntax SI, SI+2, SI+3, SI+4, dan seterusnya. Register yang digunakan dalam

10
penjumlahan ini adalah DL dan DH untuk menyimpan carry yang dihasilkan. Penjumlahan
akan dilakukan sesuai urutan data yang dimasukkan yaitu mulai dari FFH sampai dengan 9CH
dan hasil yang diperoleh yaitu AED.
Percobaan keenam adalah membuat program untuk menjumlahkan 4 bilangan
heksadesimal yaitu FAAFH, BEDAH, ABCDH, AA66H dengan hasil penjumlahan disimpan
pada register BL : CX. Variabel yang digunakan adalah DW karena data memiliki 16 byte dan
disimpan pada dua lokasi memori. Pada proses penjumlahan dapat dipanggil sesuai urutan
dengan menggunakan syntax SI, SI+2, SI+4, dan seterusnya. SI + 2 karena pada penjumlahan
tersebut memerlukan dua lokasi memori untuk menyimpan data. Register yang digunakan pada
penjumlahan ini adalah register CX dan BL yang berfungsi untuk menyimpan carry yang
dihasilkan. Penjumlahan akan dilakukan sesuai urtan data yang dimasukkan yaitu mulai dari
FAAFH hingga AA66H dan hasil yang diperoleh yaitu 30FBC.

VII. Kesimpulan
Dalam praktikum kali ini, didapat kesimpulan bahwa :

1. Terdapat beberapa variabel yang digunakan yaitu varaibel DB (Define Byte) digunakan
untuk data yang memiliki ukuran 1 byte, variabel DW (Define Word) digunakan untuk
data yang memiliki ukuran lebih besar dari 1 byte atau 2 byte, dan variabel DD (Define
Double Word) digunakan untuk data yang memiliki ukuran 2 byte atau 4 byte.
2. Perintah atau syntax yang digunakan pada program penjumlahan ini adalah ADD
(addition) dan ADC (addition with carry). Pada syntax ADD digunakan untuk
menjumlahkan bilangan sedangkan syntax ADc digunakan untuk menyimpan hasil carry
yang berasal dari penjumlahan sebelumnya.

VIII. Daftar Pustaka

[1] Ardiyanto88, "Perintah dasar Bahasa Assembly Menggunakan Emulator 8086," 25 Desember
2013.

[2] Nesabamedia, "Pengertian Bahasa Assembly Beserta Manfaat dan Contohnya," 01 Januari 2021.

[3] E. P. Prasetya, "Pengenalan Mikroprosesor dengan Emulator 8086," 13 Oktober 2020.

11

Anda mungkin juga menyukai