Upload
rizki-sang-pemimpi
View
226
Download
0
Embed Size (px)
Citation preview
8/2/2019 Laporan Praktikum 2_rizki Syaputra_1001081008_tk 2b
1/14
LAPORAN PRAKTIKUM MIKROKONTROLER DAN
MIKROPROSESOR
PEMROGRAMAN ASSEMBLER II
OLEH :
KELOMPOK : 8
NAMA : RIZKI SYAPUTRA
NO BP : 1001081008
PARTNER : HARDIKA RAHAYU
KELAS : TK 2B
PRODI : TEKNIK KOMPUTER
JURUSAN : TEKNOLOGI INFROMASI
POLITEKNIK NEGERI PADANG
2011/2012
8/2/2019 Laporan Praktikum 2_rizki Syaputra_1001081008_tk 2b
2/14
LAPORAN PRAKTIKUM II
PEMROGRAMAN ASSAMBLER II
1.TujuanSetelah melakukan praktikum ini diharapkan mahasiswa mampu:
1. Membuat program assambler sederhana menggunakan text editor dengan compilertasm sebagai compiler assambler (Turbo Assambler)
2. Menjelaskan perbedaan pembuatan program berekstensi COM dan EXE3. Menjelaskan program percabangan, perbandingan dan pencetakan pada layar
2. Dasar Teori
Secara umum struktur penulisan suatu segment dapat dilukiskan sebagai berikut:
[Nama Segment] segment
ASSUME CS:[Segment] DS:[Segment] SS:[Segment] ES:[Segment]
Org 100h
[label]: [Program ASM]
-
-
[nama segment] ends
End [label]
Penulisan awal program juga ditentukan oleh ekstensi program COM atau EXE
Pada Penulisan program .COM pemberian Org 100h, merupakan awal mulai menulis
program pada alamat 100h. Hal ini hanya berlaku untuk program yang berektensikan com,
karena 100h alamat sebelum digunakan untuk PSP (program segment prefiks). Disamping itu
juga Org menujuk lokasi memori tertentu dari suatu segment.
Penulisan Assume cukup dituliskan 1 segmen saja, yaitu
Assume CS:Code_Seg
Tetapi bila menuliskan program .EXE, penulisan segmen harus benar-benar menunjukkan
arah yang benar, contoh:
Assume CS:Code_Seg DS:Data_Seg SS:Stack_Seg ES:0b800hOrg 0h
Syarat Label:
- Harus unik- Maksimal 31 karakter- Karakter yang boleh digunakan:
8/2/2019 Laporan Praktikum 2_rizki Syaputra_1001081008_tk 2b
3/14
14
o Alphabeto Tanda Dollar ($)o Tanda Tanya (?)o Titik (.)o Tanda satuan (@)
- Bukan merupakan suatu perintah assambler- Label hanya dapat didefinisikan satu kali dalam program
Mendefinisikan variabel
Pada bahasa assambler, variabel dibagi menjadi 2 jenis:
1. variabel yang dapat dimodifikasi isinya2. variabel yang tidak dapat dimodifikasi isinya
Variabel yang dapat dimodifikasi isinya
Variabel ini adalah variabel yang memakan tempat pada memori.
Adapun besaran-besaran variabel tersebut adalah
- DB (Define Byte), mendefinisikan variabel per Byte- DW (Define Word), mendefinisikan variabel per Word (2 Byte)- DD (Define Double Word) mendefinisikan variabel per 2 Word (4 Byte)
Tata penulisan variabel jenis ini adalah
Label (DB/DW/DD) [Isi Variabel]
Contoh
Satu db Aku adalah anak gembala $
Dua db 1234h
Tiga db 12h
Variabel yang tidak dapat dimodifikasi isinya
Variabel ini digunakan untuk menggantikan besaran tertentu dengan menggunakan kata equ dan
variabel ini tidak menggunakan memori.
Contoh penggunaan variabel ini adalah
Satu equ 2190h
Dua equ 2323h
Int 21h service number 09h
Interupt ini digunakan untuk mencetak suatu kalimat, dengan syarat-syarat sebagai berikut
8/2/2019 Laporan Praktikum 2_rizki Syaputra_1001081008_tk 2b
4/14
15
- Masukkan service number interupt pada register AH- Masukkan segment dari variabel tempat menampung kalimat yang akan dicetak ke
register DS dan offsetnya ke register DX.
- Kalimat yang akan dicetak harus diakhiri dengan tanda $ (dollar)
3. Alat dan Bahan
Alat dan bahan (perangkat lunak) yang digunakan adalah
- PC- Perangkat lunak Turbo Assambler
4.Praktikum
Pada pertemuan ini, penulis melakukan pratikum Pemrograman Assambler II yang
merupakan lanjutan dari Praktikum Pemrograman Assembler I minggu lalu.Sebagai
tambahannya pada Praktikum ini penulis membutuhkan beberapa file compiler seperti TLINK
dan TASM.Kedua file ini nanti kita tempatkan dalam folder yang sama dengan file program
Assembler yang kita buat.
Sebelum penulis membahas tentang program yang Alhamdulillah telah berhasil penulis
buat, terlebih dahulu penulis akan menjelaskan langkah langkah yang dilakukan untuk
memebuat sebuah Program Assembler dengan menggunakan Compiler :
- Terlebih dahulu buat lah sebuah folder pada disk drive yang anda inginkan- Copy kan file compiler TLINK dan TSAM
Seperti contoh berikut ini :
8/2/2019 Laporan Praktikum 2_rizki Syaputra_1001081008_tk 2b
5/14
16
- Setelah file compiler dicopykan, kemudian buat sebuah file program Assembler denganmenggunakan aplikasi notepad.exe dan simpan tersebut dalam folder tadi (Satukan
dengan file compiler) dan beri ekstensi dari file tersebut .asm
Program Assembler yang Alhamdulillah telah berhasil penulis buat adalah sebagai
berikut :
a. Program Mencetak Sebuah KalimatProgram ini mencetak sebuah kalimat Nama Saya Rizki Syaputra,I Love Program
Assembler,Insya Allah.. I Will to Use it..
Berikut ini List Programnya :
8/2/2019 Laporan Praktikum 2_rizki Syaputra_1001081008_tk 2b
6/14
17
Setelah program diatas dibuat,kemudian compile tersebut dengan cara :
- Buka aplikasi command prompt kemudian pindahkan ke folder tempat file programtersebut disimpan.Seperti dibawah ini:
Dari gambar diatas menunjukkan file program assembler tersebut disimpan didalam
folder D:\Pratikum II Assembler
- Lakukan compile terhadap file kalimat1.asm tersebut, dengan cara berikut ini :
- Kemudian linkkan file tersebut dengan cara sebagai berikut:
- Setelah kita melinkkan file tersebut akan tampak hasil program sebagai berikut :
b. Mencetak program Input Per HurufProgran ini merupakan sebuah program yang akan menanyakan apakah anda
mahasiswa ?, apabila user menekan tombol y atau Y.Maka akan muncul pesan
Anda seorang Mahasiswa.Namun, apabila user menekan tombol t maka akan
muncul pesan Anda seorang Artis.
Berikut ini list program yang penulis buat:
8/2/2019 Laporan Praktikum 2_rizki Syaputra_1001081008_tk 2b
7/14
18
Proses Compile File
8/2/2019 Laporan Praktikum 2_rizki Syaputra_1001081008_tk 2b
8/14
19
c. Membuat program Awas Komputer anda RusakProgram ini akan menampilkan kalimat Awas computer anda Rusak! dan kalimat
ini akan muncul tanpa henti.Agar bias keluar tekan tombol Q atau q.
Berikut ini Script programnya :
Proses Compile :
8/2/2019 Laporan Praktikum 2_rizki Syaputra_1001081008_tk 2b
9/14
20
Kemudian untuk menghetikannya tekan tombol Q
ANALISA
Dari ketiga program yang Alhamdulillah telah penulis selesaikan pada Praktikum II ini, dapat
penulis analisa bahwa :
- Pada program pertama, menampilkan sebuah kalimat, menggunakan variable db- Pada masingmasing program yang telah penulis buat, 13,10 (perintah yang
digunakan untuk ENTER)
- Dari program pertama diatas tentang menampilkan beberapa kalimat, penulis dapatmenganalisa bahwa :
8/2/2019 Laporan Praktikum 2_rizki Syaputra_1001081008_tk 2b
10/14
21
SangPemimpi1 merupakan kode program
Assume CS : SangPemimpi1 memberitahukan kepada assembler bahwa programnya
dimulai dari sini.Org 100h digunakan untuk memberitahukan kepada assembler
supaya pada saat program dijalankan(diload kememory) ditaruh mulai pada offset
ke 100h(256)byte, kemudian ketika program dijalankan akan melompat ke mulai.Pada
mulai tersebut terdapat program untuk memanggil word, dimana word ini menyimpan
data yang akan ditampilkan.Dan mov ah,09h berarti memasukkan nilai 09h kedalam ah,
setelah itu program melakukan interap 21h (untuk mencetak data ) dan interap 20h(untuk
mengakhiri program).- Dari program kedua, penulis dapat menganalisa bahwa :
8/2/2019 Laporan Praktikum 2_rizki Syaputra_1001081008_tk 2b
11/14
22
SangPemimpi2 merupakan kode program
Assume CS : SangPemimpi2 memberitahukan kepada assembler bahwa programnya
dimulai dari sini.Org 100h digunakan untuk memberitahukan kepada assembler
supaya pada saat program dijalankan(diload kememory) ditaruh mulai pada offset
ke 100h(256)byte, ketika program dijalankan, maka program akan melompat ke mulai,
pada mulai sendiri terdapat program mov ah,09h yang berarti memasukkan nilai 09h
kedalam ah,setelah itu terdapat perintah mov dx,offset Tanya program ini akan
melakukan pemanggilan terhadap Tanya.Pada Tanya itu sendiri terdapat data berupa
pertanyaan yang akan ditanyakan pada user.
Ulang: mov ah,01h // perintah ini untuk memasukkan data 1 byteint 21h // berfungsi untuk mencetak programcmp al,'y' //pilihan yje mahasiswa // melompat ke mahasiswa
8/2/2019 Laporan Praktikum 2_rizki Syaputra_1001081008_tk 2b
12/14
23
cmp al,'Y' //pilihan Yje mahasiswa // melompat ke mahasiswaje artis //melompat ke artiscmp al,'t'//pilihan tjne Mulai //melompat ke mulai
artis: mov ah,09h //memasukkan 09h ke ahmov dx,offset jawab2 // memanggil jawab2int 21h //mencetak programjmp selesai // melompat ke selesai
mahasiswa: mov ah,09h // memasukkan 09h ke ahmov dx,offset jawab1 // memanggil jawab1int 21h //mencetak program
selesai: int 20h //program berakhir
- Dari program ketiga dapat penulis analisa bahwa :
Sangpemimpi3 Segment // Kode program
Assume CS : SangPemimpi2 memberitahukan kepada assembler bahwa programnya
dimulai dari sini.Org 100h digunakan untuk memberitahukan kepada assembler supaya
8/2/2019 Laporan Praktikum 2_rizki Syaputra_1001081008_tk 2b
13/14
24
pada saat program dijalankan(diload kememory) ditaruh mulai pada offset ke
100h(256)byte
Start: Jmp mulai // melompat ke mulaiTanya db 'AWAS KOMPUTER ANDA RUSAK! $' // menyimpan data AWAS KOMPUTERANDA RUSAK
Mulai: mov ah,09h //memasukkan 09h ke ahmov dx,offset Tanya //memanggil Tanyaint 21h // menampilkan datamov ah,06hmov dl, 0ffhxor al,alint 21hcmp al,'Q' // menekan tombol Qje selesai // lompat selesaicmp al,'q' // menekan tombol qjne Mulai // lompat ke mulai
selesai: int 20h // program berakhir
KESIMPULAN
Dari pratikum I yang telah dilakukan, penulis dapat menyimpulkan bahwa :
Instruksi (MOV) digunakan untuk memindahkan data dari satu tempat ke tempat lain
Int ini mempunyai tugas memberhentikan proses komputer terhadap suatu program
COM.
Untuk mengkompile program assembler yang telah dibuat penulis menggunakan fileTSAM dan TLINK.
Variable yang digunakan :
DB (Define Byte), mendefinisikan variabel per Byte
DW (Define Word), mendefinisikan variabel per Word (2 Byte)
DD (Define Double Word) mendefinisikan variabel per 2 Word (4 Byte)
Mov ah, adalah mengisi register ah dengan service number dari int 21 untuk mencetak 1
huruf pada layar.
Mov dl, 41 mengisi register dl dengan 41 yang merupakan Kode ASCII dari huruf A
Int 21 merupakan perintah mencetak
Int 20 perintah untuk menghentikan program
8/2/2019 Laporan Praktikum 2_rizki Syaputra_1001081008_tk 2b
14/14
25
REFERENSI
Jobsheet Pratikum Mikrokontroler dan Mikroprosesor
Ebook Pemrograman Dengan Bahasa Assembly Edisi Online Versi 1.0