laporan praktikum 2_rizki syaputra_1001081008_tk 2b

Upload: rizki-sang-pemimpi

Post on 05-Apr-2018

225 views

Category:

Documents


0 download

TRANSCRIPT

  • 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