468x60 Ads


Asus Sayank (*_*)

Patner hidup selama kuliah dan berkerja sama dalam menyelesaikan tugas - tugas kuliah.

パパとママの過去の画像、私の姉

Kenangan yang ngk bakal terlupakan I lup Mom and Dad.

My Heart

God has set the course of my life and today, I choose you, whether it be the best?

Ladie's TK2A Generation

Hanya kebersamaan yang bisa menyatukan kita, Itulah moment yang indah.

Sahabat Sebaya

Walaupun bukan 1 Universitas kita tetap satu, Mahasiswa Penerus bangsa (* amien *)

Tugas 3 Praktek Microprossesor


Laporan 3

Praktikum Mikroprocessor

PENGAKTIFAN LED DENGAN BERBAGAI VARIASI


READ MORE

Tugas 2 Paktek Microprossesor


Laporan 2

Praktikum Mikroprocessor

Pemograman Assambler 2


 Nama Kelompok : 6
 - Merlin Kusuma Efendi (1001081023)

Patner :
-          Winarni Sari (1001081041)
-          Reni Fatimah (1001081025)

A.    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)

B.     Alat dan bahan (perangkat lunak) yang digunakan adalah
-          PC
-          Perangkat lunak Turbo Assamble

C.      Langkah Kerja
  •  Klik Start -> pada menu Start pilih Run -> pada Run ketikan Cmd (Command Prompt).
  •  Kemudian pada Command Prompt, edit untuk membuat job.
  • Kemudian save job, yang tersimpan dalam bentuk .asm
  • Lalu pilih exit untuk kembali ke command.
  • Lalu jalankan perintah dengan mengetik : TASM. Nama job.asm
  • Dan TLINK /t nama job
  • Dan hasilnya akan muncul, kemuadian ketik nama job untuk memasukkan password yang telah disediakan.

Percobaan Pratikum 1

Code_seg segment
            Assume CS:Code_seg
            Org 100h

Start: jmp hapus
kunci db 'Masukkan Password : $'
betul db 13,10,'Password Anda Betul',13,10,'$'
salah db 13,10,'Password Anda Salah',13,10,'$'        
hapus:  mov ah,07h
            mov ch,00
            mov cl,00
            mov dh,56
            mov dl,100
            mov bh,07h
            int 10h

input:   mov ah,09h
            mov dx,offset kunci
            int 21h
            mov ah,01h
            int 21h
            cmp al,'A'
            je keluar
            mov ah,09h
            mov dx,offset salah
            int 21h
            loop input

keluar: mov ah,09h
            mov dx,offset betul
            int 21h
            int 20h
           
Code_seg Ends
            End Start

ð  TASM ain.asm dan TLINK /t ain


ð  Test password betul


ð  Test password salah


Percobaan Pratikum 2

Code_seg segment
            Assume CS:Code_seg
            Org 100h
Start: Jmp mulai
kata db 'masukkan password: $'
password db 'merlin'
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
ð  TASM belajar.asm dan TLINK /t belajar

 
ð  Data, dan menu yang ada pada data yang telah di inputkan

 
ð  Menu 2, muncul hasilnya sebagai berikut

           
Percobaan Pratikum 3

merlin segment
        Assume CS:merlin
            Org 100h
Start: Jmp mulai
kata   db 13,10,'masukan password: $'
kata2   db '$',13,10,13,10
Jawab1 db 13,10,13,10,'welcome at Merlin Asus ^_^',13,10,13,10,'$'
Jawab2 db 13,10,'pasword salah',13,10,'$'

biodata db 13,10,13,10,'Nama    : Merlin Kusuma Efendi',13,10
db 'BP                                     : 1001081023',13,10
db 'Kelas                                 : TK 2 A',13,10
db 'Hobby                               : ONline',13,10
db 'Kuliah favorite                  : praktek mikroprosessor',13,10
db 'Alamat E-mail                   : Merlinkusumaefendi@yahoo.co.id',13,10
db 'Alamat Blog                      : Merlinkusumaefendi.blogspot.com',13,10
db 'Alamat Facebook              : Merlin Kusuma Negara',13,10
db 'Asal                                   : Painan, Pesisir Selatan',13,10,'$'

pnp db 13,10,13,10,'POLITEKNIK NEGERI PADANG',13,10,13,10
db 'Jurusan TI : ',13,10,13,10
db 'Program Study : ',13,10,13,10
db '1. Teknik Komputer',13,10,13,10
db '2. Manajemen Informatika',13,10,'$'

Tanya db 'MENU PILIHAN !',13,10
db '1. Biodata',13,10
db '2. Jurusan TI', 13,10
db '3. exit' ,13,10,13,10
db 'Masukkan Angka (1/2/3) !', 13,10,13,10
db 'Jawaban anda: $'


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

Ulang:mov ah,01h
            int 21h
           
            cmp al,'0'
            je mulai1
           
            jne salah

Mulai1:            mov ah,09h
            mov dx,offset kata2
            int 21h

benar1:            mov ah,01h
            int 21h
           
            cmp al,'2'
            je mulai2
           
            jne salah

Mulai2:            mov ah,09h
            mov dx,offset kata2
            int 21h

benar2:            mov ah,01h
            int 21h
           
            cmp al,'3'
            je benar3

            jne salah

salah:   mov ah,09h
            mov dx,offset jawab2
            int 21h
            jmp mulai
           


benar3:mov ah,09h
            mov dx,offset jawab1
            int 21h
login : mov ah,09h
            mov dx,offset tanya
            int 21h

pilih : mov ah ,01h
            int 21h
            cmp al,'1'
            je data
            cmp al,'2'
            je poli
        cmp al,'3'
        je exit
            jne login
data : mov ah,09h
            mov dx,offset biodata
            int 21h
        jmp login
poli : mov ah,09h
            mov dx,offset pnp
            int 21h
        jmp login
           

exit:int 20h

merlin Ends
            End Start

Hasil dari menu percobaan :





D.    Kesimpulan
1. Pada pemograman bahasa assembler 1
    Mov ah, 02 è untuk memulai program
    Pada pemograman bahasa assembler 2
    mov ah,09h è untuk memulai program dan menampilkan kata

2.  Pada pemograman bahasa assembler1, mov ah,02h untuk memulai program karna yang di gunakan    angka hexa.
Sedangkan pada pemograman bahasa assembler2, mov ah,09h untuk memulai program karna yang digunakan offset kata
READ MORE