Anda di halaman 1dari 14

LAPORAN PRAKTIKUM MIKROKONTROLER DAN MIKROPROSESOR PEMROGRAMAN ASSEMBLER II

OLEH :

KELOMPOK NAMA NO BP PARTNER KELAS PRODI JURUSAN

:8 : RIZKI SYAPUTRA : 1001081008 : HARDIKA RAHAYU : TK 2B : TEKNIK KOMPUTER : TEKNOLOGI INFROMASI

POLITEKNIK NEGERI PADANG 2011/2012

12

LAPORAN PRAKTIKUM II PEMROGRAMAN ASSAMBLER II 1.Tujuan Setelah melakukan praktikum ini diharapkan mahasiswa mampu: 1. Membuat program assambler sederhana menggunakan text editor dengan compiler tasm sebagai compiler assambler (Turbo Assambler) 2. Menjelaskan perbedaan pembuatan program berekstensi COM dan EXE 3. 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:0b800h Org 0h Syarat Label: Harus unik Maksimal 31 karakter Karakter yang boleh digunakan:
13

o Alphabet o 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 isinya 2. 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
14

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 :

15

Setelah file compiler dicopykan, kemudian buat sebuah file program Assembler dengan menggunakan 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 Kalimat Program ini mencetak sebuah kalimat Nama Saya Rizki Syaputra,I Love Program Assembler,Insya Allah.. I Will to Use it.. Berikut ini List Programnya :

16

Setelah program diatas dibuat,kemudian compile tersebut dengan cara : Buka aplikasi command prompt kemudian pindahkan ke folder tempat file program tersebut 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 link kan file tersebut dengan cara sebagai berikut:

Setelah kita melink kan file tersebut akan tampak hasil program sebagai berikut :

b. Mencetak program Input Per Huruf Progran 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:

17

Proses Compile File

18

c. Membuat program Awas Komputer anda Rusak Program 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 :

19

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 masing masing program yang telah penulis buat, 13,10 (perintah yang digunakan untuk ENTER) Dari program pertama diatas tentang menampilkan beberapa kalimat, penulis dapat menganalisa bahwa :

20

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 :

21

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 byte int 21h // berfungsi untuk mencetak program cmp al,'y' //pilihan y je mahasiswa // melompat ke mahasiswa 22

cmp al,'Y' //pilihan Y je mahasiswa // melompat ke mahasiswa je artis //melompat ke artis cmp al,'t'//pilihan t jne Mulai //melompat ke mulai artis: mov ah,09h //memasukkan 09h ke ah mov dx,offset jawab2 // memanggil jawab2 int 21h //mencetak program jmp selesai // melompat ke selesai mahasiswa: mov ah,09h // memasukkan 09h ke ah mov dx,offset jawab1 // memanggil jawab1 int 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
23

pada saat program dijalankan(diload kememory) ditaruh mulai pada offset ke 100h(256)byte
Start: Jmp mulai // melompat ke mulai Tanya db 'AWAS KOMPUTER ANDA RUSAK! $' // menyimpan data AWAS KOMPUTER ANDA RUSAK Mulai: mov ah,09h //memasukkan 09h ke ah mov dx,offset Tanya //memanggil Tanya int 21h // menampilkan data mov ah,06h mov dl, 0ffh xor al,al int 21h cmp al,'Q' // menekan tombol Q je selesai // lompat selesai cmp al,'q' // menekan tombol q jne 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 file TSAM 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

24

REFERENSI Jobsheet Pratikum Mikrokontroler dan Mikroprosesor Ebook Pemrograman Dengan Bahasa Assembly Edisi Online Versi 1.0

25

Anda mungkin juga menyukai