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 Maret 2022

Tanggal Pengumpulan : 8 Maret 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 generasikedua.
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 untukmesin sehingga
nanti bisa dibaca oleh manusia. Berbeda dengan high level language atau bahasa tingkat
tinggi, bahasa assembly ini mempunyai hubungan 1-1 dengan berdasarkaninstruksi 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.

C. Bilangan Bertanda dan Bilangan Tidak Bertanda


Pada assembler bilangan dibedakan menjadi 2, yaitu bilangan bertanda dan tidak.
Bilangan bertanda adalah bilangan yang mempunyai arti plus(+) dan minus(-), misalkan
angka 17 dan -17. Pada bilangan tidak bertanda, angka negatif tidaklah dikenal. Jadi angka
-17 tidak akan akan dikenali sebagai angka -17, tetapi sebagai angka lain. Assembler akan
selalu melihat pada Sign Flag, jika pada flag ini bernilai 0,maka bilangan akan diperlakukan
sebagai bilangan tidak bertanda, sebaliknya jika flag ini bernilai 1, maka bilangan akan
diperlakukan sebagai bilangan bertanda.

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

3
IV. Langkah Praktikum
1. Buka aplikasi emu8086
2. Buat aplikasi sesuai perintah dibawah ini :
a. Buat program untuk menjumlahkan data Heksadesimal: 45H dan 93H, analisa
hasilnya jika:
i) Data merupakan Bilangan Tak Bertanda.
ii) Data merupakan Bilangan Bertanda.
b. Buat program untuk menjumlahkan data Heksadesimal: 6645H dan 0A493H,
analisa hasilnya jika:
i) Data merupakan Bilangan Tak Bertanda.
ii) Data merupakan Bilangan Bertanda.
c. Buat program untuk menjumlahkan data Heksadesimal: 45H,77H, 56,
0AAH,80H dan 93H, analisa hasilnya jika:
i) Data merupakan Bilangan Tak Bertanda.
ii) Data merupakan Bilangan Bertanda.
d. Buat program untuk menjumlahkan data Heksadesimal:
9988H,5678H,8294H, 6645H dan 0A493H, analisa hasilnya jika:
i) Data merupakan Bilangan Tak Bertanda.
ii) Data merupakan Bilangan Bertanda.
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 Data Heksadesimal
Data : 45H, 93H

Program :

4
Hasil :

i) Hasil Bilangan Bertanda

ii) Hasil Bilangan Tidak Bertanda

5
2. Program Penjumlahan Data Heksadesimal
Data : 6645H, 0A493H.

Program :

Hasil :

i) Hasil Bilangan Bertanda

ii) Hasil Bilangan Tidak Bertanda

6
3. Program Penjumlahan Data Heksadesimal
Data : 45H,77H, 56, 0AAH,80H dan 93H

Program :

Hasil :

i) Hasil Bilangan Bertanda

ii) Hasil Bilangan Tidak Bertanda

7
4. Program Penjumlahan Data Heksadesimal
Data : 9988H,5678H,8294H, 6645H dan 0A493H

Program :

Hasil :

i) Hasil Bilangan Bertanda

ii) Hasil Bilangan Tidak Bertanda

8
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
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 EMU 8086 belum support pada penjumlahan variabel yang lebih dari tipe dword,
sehingga hasilnya tidak muncul sesuai perhitungan matematis. Bilangan bertanda adalah
bilangan yang mempunyai arti plus(+) dan minus(-), misalkan angka 17 dan -17. Pada bilangan
tidak bertanda, angka negatif tidaklah dikenal. Jadi angka -17 tidak akan akan dikenali sebagai
angka -17, tetapi sebagai angka lain.
Analisis Secara Perhitungan :
1. Data : 45H + 93H = D8H
a. Bilangan Bertanda
45H = 0100 0101 = 69 (K’16)
1001 0011
93H = − (K’2)
1
= 1001 0010 (K’1)
= 1101 1101 (2SM)
= -109 (K’16)
69 + (-109) = -40

b. Bilangan Tidak Bertanda


45H = 0100 0101 = 69 (Decimal)
93H = 1001 0011 = 147 (Decimal)
69 + 147 = 216

2. 6645H + A493H = 10AD8H


a. Bilangan Bertanda
6645H = 0110 0110 0100 0101 (K’16)
1010 0100 1001 0011
A493H = − (K’2)
1
= 1010 0100 1001 0010 (K’1)
= 1101 1011 0110 1101 (2SM)
= -23405 (K’16)
26181 + (-23405) = 2776
9
b. Bilangan Tidak Bertanda
6645H = 0110 0110 0100 0101 = 26181 (Decimal)
A493H = 1010 0100 1001 0011 = 42131 (Decimal)
26181 + 42131 = 68312

3. 45H + 77H + 56H + AAH + 80H + 93H = 2CF


a. Bilangan Bertanda
45H = 0100 0101 = 69 (K’16)
77H = 0111 0111 = 119 (K’16)
56H = 0101 0110 = 86 (K’16)
1010 1010
AAH = − (K’2)
1
= 1010 1001 (K’1)
= 1101 0110 (2SM) = -86 (K’16)
1001 0011
80H = − (K’2)
1
= 1001 0010 (K’1)
= 1000 1101 (2SM) = -109 (K’16)

69 + 119 + 86 + (-86) + (-109) = -49

b. Bilangan Tidak Bertanda


45H = 0100 0101 = 69 (Decimal)
77H = 0111 0111 = 119 (Decimal)
56H = 0101 0110 = 86 (Decimal)
AAH = 1010 1010 = 170 (Decimal)
80H = 1000 0000 = 128 (Decimal)
93H = 1001 0011 = 147 (Decimal)

69 + 119 + 86 + 170 + 128 + 147 = 719

4. 9988H + 5678H + 8294H + 6645H + A493H + = 27D6C


a. Bilangan Bertanda
1001 1001 1000 1000
9988H = − (K’2)
1
= 1001 1001 1000 0111 (K’1)
= 1110 0110 0111 1000 (2SM) = -26232 (K’16)
5678H = 0101 0110 0111 1000 = 22136 (K’16)
1000 0010 1001 0100
8294H = − (K’2)
1
= 1000 0010 1001 0011 (K’1)
10
= 1111 1101 0110 1100 (2SM) = -32108 (K’16)
6645H = 0110 0110 0100 0101 = 26181 (K’16)
1010 0100 1001 0011
A493H = = − (K’2)
1
= 1010 0100 1001 0010 (K’1)
= 1101 1011 0110 1101 (2SM) = -23405 (K’16)

(-26232) + 22136 + (-32108) + 26181 + (-23405) = -33428

b. Bilangan Tidak Bertanda


9988H = 1001 1001 1000 1000 = 39304 (Decimal)
5678H = 0101 0110 0111 1000 = 22136 (Decimal)
8294H = 1000 0010 1001 0100 = 33428 (Decimal)
6645H = 0110 0110 0100 0101 = 26181 (Decimal)
A493H = 1010 0100 1001 0011 = 42131 (Decimal)

39304 + 22136 + 33428 + 26181 + 42131 = 163180

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.
3. Bilangan bertanda adalah bilangan yang mempunyai arti plus(+) dan minus(-), misalkan
angka 17 dan -17. Pada bilangan tidak bertanda, angka negatif tidaklah dikenal. Jadi angka
-17 tidak akan akan dikenali sebagai angka -17, tetapi sebagai angka lain.

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