This is featured post 1 title

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation test link ullamco laboris nisi ut aliquip ex ea commodo consequat.

This is featured post 2 title

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation test link ullamco laboris nisi ut aliquip ex ea commodo consequat.

This is featured post 3 title

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation test link ullamco laboris nisi ut aliquip ex ea commodo consequat.

This is featured post 4 title

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation test link ullamco laboris nisi ut aliquip ex ea commodo consequat.

This is featured post 5 title

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation test link ullamco laboris nisi ut aliquip ex ea commodo consequat.


Pratikum Mikroprosesor "PEMROGRAMAN ASSAMBLER 2"

0 komentar


Nama               : DAVID MAULANA
BP                   : 1001081015

Nama Kelompok

Nama                   : HUTRILA AFDAL
BP              : 1001081009

Nama          : MAILENDRA YENTI
BP              : 1001081001

1.       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:
o   Alphabet
o   Angka
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
-          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)

2.      Langkah Kerja

a.       Input per Huruf
1. Ketik program berikut ini
Code_seg segment
     Assume CS:Code_seg
     Org 100h
Start: Jmp mulai
Tanya db 'Jawab pertanyaan di bawah ini!',13,10
      db 'Apakah anda seorang mahasiswa',13,10
      db 'Jawaban anda: $'
Jawab1 db 13,10,'Anda seorang mahasiswa',13,10,'$'
Jawab2 db 13,10,'Anda seorang artis',13,10,'$'

Mulai:     mov ah,09h
     mov dx,offset Tanya
     int 21h

Ulang:     mov ah,01h
     int 21h
     cmp al,'y'
     je mahasiswa
     cmp al,'Y'
     je mahasiswa
     je artis
     cmp al,'t'
     jne Mulai

artis:     mov ah,09h
     mov dx,offset jawab2
     int 21h
     jmp selesai

mahasiswa: mov ah,09h
           mov dx,offset jawab1
           int 21h

selesai:   int 20h

Code_seg Ends
     End Start
3.      Compile program dan simpan
4.      Maka dapat menampilkan hasil seperti dibawah :
 
b.      Membuat Aplikasi Password
1. Ketik program di bawah ini
Code_seg segment
     Assume CS:Code_seg
     Org 100h
Start: Jmp mulai
kata db 'masukkan password: $'
password db 'cipto'
tampung db 6,?,6 dup(?)
kata1 db 13,10,'password anda salah ',13,10,13,10,'$'
kata2 db 13,10,'password anda benar ',13,10,13,10,'$'

mulai:     mov ah,09h
     mov dx,offset kata
     int 21h

     mov ah,0ah
     mov dx,offset tampung
     int 21h
    
     push ds
     pop es
     mov di,offset password
     mov si,offset tampung + 2
     mov cx,05h
     cld

ulang:     cmpsb
     jc salah
     loop ulang
     call betul
     int 20h
    
salah:     mov ah,09h
     mov dx,offset kata1
     int 21h
     jmp mulai

betul proc
     mov ah,09h
     mov dx,offset kata2
     int 21h
     ret

Code_seg Ends
     End Start
4. Simpan dan compile
5. maka memilik hasil seperti dibawah :
3.       Pertanyaan
Sebutkan beberapa interupt bios yang digunakan pada program dan jelaskan ?
·         Int 20h berguna untuk memberhentikan proses computer terhadap suatu program COM.
·         Int 21h digunakan untuk mencetak huruf ke sebuah computer.
4.      Analisa
Pada awal penulisan program ditentukan oleh program .COM atau EXE. Penulisan .COM pemberian Org 100h, merupakan awal mulai menulis program alamat 100h. Penulisan Assume cukup dituliskan 1 segmen saja, yaitu
Assume CS:Code_Seg
Dan diakhiri dengan kode :
Code_Seg Ends
End Start
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

5.      Kesimpulan
·         untuk mengcompile program dengan perintah TASM dan TLINK adalah melihat proses compile sudah selesai.
·         Besaran – besaran variable 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)
·         Agar dapat mempermudah penulisan, lebih baik tulis dengan notepad, kemudian masukkan kedalam EDIT dan disimpan. Lakukan compile program dengan TASM dan TLINK untuk melihar proses compile sudah selasai. Dan dapat melihat program <namafileprogram>.COM

6.       Referensi
1.      Lukito, Ediman, 1982, Dasar-dasar Pemrograman Dengan Assambler 8088, PT Elex Media Komputindo, Jakarta
2.      Mulyono, Heri, 2005, Diktat Kuliah Bahasa Rakitan, STMIK Jaya Nusa, Padang
3.      Partoharsodjo, Hartono, 1991, Tuntunan Praktis Pemrograman Bahasa Assembly, PT Elex Media Komputindo, Jakarta