PEMROGRAMAN ASSEMBLER
Disusun oleh:
Oktavia Indriani
IK 2B
I.
TUJUAN
Setelah mengerjakan praktek ini mampu :
Menjelaskan pemrograman assembler
Mempraktikkan pembuatan program menggunakan assembler
Membuat karakter game (pacman) menggunakan emu8086 atau
program assembler
II.
DASAR TEORI
A. Bahasa Assembly
Bahasa assembly adalah sebuah program yang terdiri dari instruksiinstruksi yang menggantikan kode-kode biner dari bahasa mesin
dengan mnemonik yang mudah diingat. Misalnya sebuah instruksi
penambahan dalam bahasa mesin dengan kode 10110011 yang dalam
bahasa assembly dapat dibuat dalam instruksi mnemonik ADD,
sehingga mudah diingat dibandingkan dengan angka 0 dan 1, dalam
setiap instruksi membutuhkan suatu operand baik berupa data langsung
maupun suatu lokasi memori yang menyimpan data yang bersangkutan.
Bahasa assembly sering juga disebut kode sumber atau kode simbolik
yang tidak dapat dijalankan oleh prosesor, sedangkan assembler adalah
suatu program yang dapat menerjemahkan program bahasa assembly ke
program bahasa mesin. bahasa mesin adalah kumpulan kode biner yang
merupakan instruksi yang bisa dijalankan oleh komputer. Program
bahasa mesin sering disebut sebagai kode objek.
Baris-baris program yang mengandung instruksi mesin atau pengarah
assembler harus mengikuti aturan program assembler ASM51. Masingmasing baris atas beberapa field yang dipisahkan dengan spasi atau
Label
Label merupakan suatu simbol yang didefinisikan sendiri
oleh pembuat program untuk menandai lokasi memori pada
area program. Simbol dan labeladalah dua hal yang berbeda.
Simbol tidak menggunakan titik dua, sedangkanlabel harus
diakhiri dengan titik dua.
Contoh :
PAR
simbol
MULAI
MOV
1.2.
Mnenonik
Mnemonic instruksi atau pengarah Assembler dimasukan
dalam Mnemonic field yang mengikuti label mnemonic.
Mnemonic instruksi misalnya ADD, MOV, INC dan lainlain.Sedangkan pengarah Assembler misalnya ORG, EQU,
DB dan lain-lain.
1.3.
Operand
Operand ditulis setelah mnemonic, bisa berupa alamat atau
data yang digunakan instruksi yang bersangkutan.
Contoh :
MOV A, #20h
LAGI:
JNB LAGI
1.4.
Komentar
Komentar harus diawali dengan titik koma. Sub rutin dari
bagian besar program yang mengerjakan suatu operasi
biasanya diawali dengan blok komentar yang menjelaskan
fungsi sub rutin atau bagian besar program tersebut.
1.5.
End
Petunjuk END merupakan kode perintah terakhir yang
menunjukan batas akhir dari proses Assembly.
Instruksi yang sering digunakan dalam pembuatan program
yaitu:
a. Instruksi Aritmatik
Instruksi aritmatik selalu melibatkan akumulator dan ada
juga beberapa instruksi yang melibatkan register lain.
Berikut ini contoh instruksiinstruksi arimatika yaitu:
Tabel 2.4 Instruksi-instruksi Aritmatik
Instruksi
Keterangan
ADD A,Rn
Contoh
ADD A,R1
ADD A, 30H
ADD A,
akumulator
#20H
ADD A,
@R1
ADDC A,
ADDC A,
#data
akumulator dengancarry
#20H
SUBB A, Rn
SUBB A, R1
ADD A, @Rn
akumulator
INC A
INC A
DEC A
DEC A
MUL AB
MUL AB
DIV AB
b. Instruksi Logika
Instruksi Logika ini dipakai untuk melakukan operasi logika,
yaitu operasi AND (instruksi ANL), operasi OR (instruksi
5
ORL),
operasi Exclusive-OR
CLR),
(instruksi
instruksi
XRL),
komplemen
Keterangan
Contoh
MOV A, Rn
MOV A, R0
MOV A,direct
akumulator
Memindahkan isi direct byte ke
MOV A, 30h
MOV A , #data
akumulator
Mengisi akumulator dengan nilai data
MOV A,#20h
MOV A, @Rn
MOV A, @R0
A,30H ;
isi
akumulator
dengan
bilangan
30
heksadesimal
2.2.
Mode Pengalamatan Tak Langsung
Dalam pengalamatan tak langsung, instruksi menentukan
suatu register yang digunakan untuk menyimpan alamat
operan
Contoh :
ADD A,R
alamatnya
2.4.
2.5.
III.
IV.
LANGKAH KERJA
1. Nyalakan PC atau laptop
2. Instal program emu8086
V.
MOV (2*10)+(160*9), AX
MOV (2*10)+(160*10), AX
MOV (2*10)+(160*11), AX
MOV (2*10)+(160*12), AX
2. PEMBAHASAN
Pada pembahasan di bawah ini akan dijelaskan beberapa menu pokok
pada pengkodingan pembuatan lintasan untuk game Pacman ini, yaitu :
JMP Mulai, adalah syntax untuk memulai yang menunjukkan
MOVMOV
SI, 2*6,
BX,yaitu
0 digunakan untuk tabel untuk mengarsir bagian
pixel baris ke bawah 6 titik/pixel baris ke kanan 4 titik/pixel.
MOV AL,178
titik/pixel.
Untuk penugasan-penugasan yang lain konsepnya sama seperti
yang telah dijabarkan di atas, hanya berbeda besar titik bawah
dan kanannya.
VI.
TUGAS
1. Buatlah lintsan untuk game Pacman pada rangkaian.
Jawab :
Langkah-langkah membuat lajur lintasan untuk game Pacman dapat
dijabarkan seperti berikut ini:
11
MOV (2*10)+(160*9), AX
MOV (2*11)+(160*9), AX
MOV (2*12)+(160*9), AX
MOV (2*13)+(160*9), AX
MOV (2*14)+(160*9), AX
12
MOV (2*14)+(160*9), AX
MOV (2*15)+(160*9), AX
MOV (2*16)+(160*9), AX
MOV (2*10)+(160*9), AX
MOV (2*10)+(160*10), AX
(2*10)+(160*11),
AXprogram, output yang keluar adalah:
2. Klik MOV
emulate
untuk mengemulasi
MOV (2*10)+(160*12), AX
ret
MOV (2*21)+(160*9),
3. Untuk
AX menambah panjang lintasan kita masukkan syntax-syntax
berikut
: (2*22)+(160*9),
MOV
AX
MOV (2*23)+(160*9),
AX
MOV (2*24)+(160*9),
AX
MOV (2*25)+(160*9),
AX
MOV (2*26)+(160*9),
AX
13
MOV (2*21)+(160*5),
AX
MOV (2*21)+(160*6),
AX
MOV (2*32)+(160*0), AX
MOV (2*32)+(160*1), AX
MOV (2*32)+(160*2), AX
MOV (2*32)+(160*3), AX
MOV (2*32)+(160*4), AX
MOV (2*32)+(160*5), AX
MOV (2*32)+(160*6), AX
MOV (2*32)+(160*7), AX
MOV (2*32)+(160*8), AX
MOV (2*32)+(160*9), AX
MOV (2*32)+(160*10), AX
MOV (2*32)+(160*11), AX
MOV
(2*32)+(160*12),
AXsebagai berikut :
8. Ketika
dijalankan
hasilnya adalah
MOV (2*32)+(160*13), AX
MOV (2*32)+(160*14),
(2*31)+(160*16), AX
(2*30)+(160*16), AX
MOV (2*32)+(160*15),
(2*29)+(160*16), AX
MOV (2*32)+(160*16),
MOV (2*28)+(160*16), AX
di bawah ini
MOV (2*26)+(160*16), AX
MOV (2*0)+(160*16), AX
MOV (2*1)+(160*16), AX
MOV (2*2)+(160*16), AX
MOV (2*3)+(160*16), AX
MOV (2*4)+(160*16), AX
MOV (2*5)+(160*16), AX
15
MOV (2*0)+(160*20), AX
MOV (2*1)+(160*20), AX
MOV (2*2)+(160*20), AX
MOV (2*3)+(160*20), AX
16
(2*37)+(160*7), AX
(2*37)+(160*10), AX
(2*37)+(160*8), AX
(2*37)+(160*11), AX
(2*37)+(160*9), AX
(2*37)+(160*12), AX
(2*37)+(160*10), AX
(2*37)+(160*13), AX
MOV (2*37)+(160*14), AX
17
18
MOV (2*38)+(160*24),AX
MOV (2*39)+(160*24),AX
MOV (2*40)+(160*24),AX
MOV (2*41)+(160*24),AX
MOV (2*42)+(160*24),AX
MOV (2*43)+(160*24),AX
MOV (2*44)+(160*24),AX
MOV (2*45)+(160*24),AX
MOV (2*46)+(160*24),AX
MOV (2*47)+(160*24),AX
MOV (2*48)+(160*24),AX
MOV (2*49)+(160*24),AX
MOV (2*50)+(160*24),AX
MOV (2*51)+(160*24),AX
MOV (2*52)+(160*24),AX
MOV (2*53)+(160*24),AX
MOV (2*54)+(160*24),AX
MOV (2*55)+(160*24),AX
MOV (2*56)+(160*24),AX
MOV (2*57)+(160*24),AX
MOV (2*58)+(160*24),AX
MOV (2*59)+(160*24),AX
MOV (2*60)+(160*24),AX
MOV (2*61)+(160*24),AX
MOV (2*62)+(160*24),AX
MOV (2*63)+(160*24),AX
MOV (2*64)+(160*24),AX
MOV (2*65)+(160*24),AX
MOV (2*66)+(160*24),AX
MOV (2*67)+(160*24),AX
MOV (2*68)+(160*24),AX
MOV (2*69)+(160*24),AX
MOV (2*70)+(160*24),AX
MOV (2*71)+(160*24),AX
MOV (2*72)+(160*24),AX
MOV (2*73)+(160*24),AX
MOV (2*74)+(160*24),AX
MOV (2*75)+(160*24),AX
MOV (2*76)+(160*24),AX
MOV (2*77)+(160*24),AX
MOV (2*78)+(160*24),AX
MOV (2*79)+(160*24),AX
MOV BX,2 * 0
MOV [BX] 160 * 4,AX
MOV [BX] 160 * 5,AX
MOV [BX] 160 * 6,AX
MOV [BX] 160 * 7,AX
MOV [BX] 160 * 8,AX
MOV [BX] 160 * 9,AX
MOV [BX] 160 * 10,AX
MOV [BX] 160 * 11,AX
MOV [BX] 160 * 12,AX
MOV [BX] 160 * 13,AX
MOV [BX] 160 * 14,AX
19
20
MOV (2*17)+(160*11),AX
MOV (2*18)+(160*11),AX
MOV (2*19)+(160*11),AX
MOV (2*20)+(160*11),AX
MOV (2*21)+(160*11),AX
MOV (2*22)+(160*11),AX
MOV (2*38)+(160*12),AX
MOV (2*39)+(160*12),AX
MOV (2*40)+(160*12),AX
MOV (2*41)+(160*12),AX
MOV (2*42)+(160*12),AX
MOV (2*43)+(160*12),AX
MOV (2*44)+(160*12),AX
MOV (2*53)+(160*12),AX
MOV (2*54)+(160*12),AX
MOV (2*55)+(160*12),AX
MOV (2*56)+(160*12),AX
MOV (2*57)+(160*12),AX
MOV (2*58)+(160*12),AX
MOV (2*59)+(160*12),AX
MOV (2*8)+(160*17),AX
MOV (2*9)+(160*17),AX
MOV (2*10)+(160*17),AX
MOV (2*11)+(160*17),AX
MOV (2*12)+(160*17),AX
MOV (2*29)+(160*17),AX
MOV (2*30)+(160*17),AX
MOV (2*31)+(160*17),AX
MOV (2*32)+(160*17),AX
MOV (2*33)+(160*17),AX
21
VII.
KESIMPULAN
1. Bahasa Assembly adalah bahasa pemrograman berorientasi mesin yang
mengacu pada processor 8086, 8088, 80186, 80286, 80386, 80486, dan
Pentium Processor.
2. Assembler adalah program sistem yang mentranslasikan kode sumber
dalam bahasa rakitan ke dalam bahasa mesin.
3. Game Pacman merupakan salah satu penerapan program berbasis
assembler, berupa node-node yang tersambung membentuk karakter
sehingga nantinya dapat dimainkan.
4. Untuk membuat lintasan Pacman dibutuhkan banyak syntax sehingga
wajar jika line yang dihasilkan dari satu karakter tersebut sangat banyak.
5. Ketika membuat lintasan Pacman yang harus diperhatikan adalah node
atau titik-titik batas yang dibuat yakni jangan terlalu kecil sebab akan
menyulitkan dalam pemrogramnnya nanti.
6. Pada saat membuat lintasan Pacman juga diperlukan imajinasi yang kuat
sehingga karakter yang dihasilkan bentuknya beragam.
VIII.
DAFTAR PUSTAKA
http://kuliahku-kampusku.blogspot.com/2010/02/assembler
pemrograman-rakitan.html
http://madetaufikakbar.blogspot.com/2011/02/bahasa-assembly.html
http://zaifbio.wordpress.com/2013/01/02/pemrograman-bahasaassembly-assembler/
22