Disusun Oleh :
2A-TTE
Dosen Pembimbing :
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
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.
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.
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 :
5
2. Program Penjumlahan Data Heksadesimal
Data : 6645H, 0A493H.
Program :
Hasil :
6
3. Program Penjumlahan Data Heksadesimal
Data : 45H,77H, 56, 0AAH,80H dan 93H
Program :
Hasil :
7
4. Program Penjumlahan Data Heksadesimal
Data : 9988H,5678H,8294H, 6645H dan 0A493H
Program :
Hasil :
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
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.
11