1. LA OSK pert3-Addressing Page 1
LAPORAN AKHIR PRAKTIKUM
Mata Praktikum : OSK
Kelas : 2IA18
Praktikum ke- : 3
Tanggal : 8Januari 2013
Materi : Addressing
NPM : 56411856
Nama : Sonityo Danang Jaya
Ketua Asisten : Soni Sebastian.
Nama Asisten :
Paraf Asisten :
Jumlah Lembar : 11 lembar
LABORATORIUM INFORMATIKA
UNIVERSITAS GUNADARMA
2012
2. LA OSK pert3-Addressing Page 2
LISTING PROGRAM
.model small
.code
org 100h
mulai:
jmp proses
vkal db 'Masukan Password menggunakan huruf kapital : $'
vkal1 db 'Incorrect!!! $'
vkal2 db 'Welcome, Login Success!! $'
proses:
mov ah, 09h
lea dx, vkal
int 21h
mov ah, 07h
int 21h
cmp al,'S'
JE ya1
JNE ga1
ga1:
mov ah, 09h
lea dx, vkal1
int 21h
jmp proses
ya1:
mov ah, 02h
mov dl, 2Ah
int 21h
mov ah, 07h
int 21h
3. LA OSK pert3-Addressing Page 3
cmp al,'O'
JE ya2
JNE ga1
ya2:
mov ah, 02h
mov dl, 2Ah
int 21h
mov ah,07h
int 21h
cmp al, 'N'
JE ya3
JNE ga1
ya3:
mov ah, 02h
mov dl, 2Ah
int 21h
mov ah, 07h
int 21H
cmp al,'I'
JE ya4
JNE ga1
ya4:
mov ah, 02h
mov dl, 2Ah
int 21h
mov ah, 07h
int 21H
cmp al,'T'
JE ya5
JNE ga1
4. LA OSK pert3-Addressing Page 4
ya5:
mov ah, 02h
mov dl, 2Ah
int 21h
mov ah, 07h
int 21H
cmp al,'Y'
JE ya6
JNE ga1
ya6:
mov ah, 02h
mov dl, 2Ah
int 21h
mov ah, 07h
int 21H
cmp al,'O'
JE ya7
JNE ga1
ya7:
mov ah, 02h
mov dl, 2Ah
int 21h
mov dl, 20h
int 21h
mov ah, 09h
lea dx, vkal2
int 21h
int 20h
end mulai
5. LA OSK pert3-Addressing Page 5
LOGIKA PROGRAM.
.model small
.code
org 100h
Blok pertama pada program ini merupakan bagian pendahuluan dari pada
program dengan bahasa TASM yang akan dibuat. Pertama, terdapat tanda directive
.model small yang digunakan untuk memberitahukan kepada assembler bentuk atau
ukuran memory yang digunakan oleh program. Kedua, terdapat tanda directive
.codeyang digunakan untuk memberitahukan kepada assembler bahwa kita akan mulai
menggunakan Code Segment-nya pada bagian ini. Code segment ini merupakan tempat
disimpannya program yang nantinya akan dijalankan. Dan selanjutnya ada perintah org
100h yang digunakan untuk memberitahukan assembler agar program pada saat
dilakukan load ke memory atau dijalankan, program diletakkan mulai pada offset ke
100h atau senilai 256 byte.
mulai:
jmp proses
vkal db 'Masukan Password menggunakan huruf kapital : $'
vkal1 db 'Incorrect!!! $'
vkal2 db 'Welcome, Login Success!! $'
Masuk ke label pertama pada program ini yaitu dengan nama mulaidimana akan
melakukan lompatan menggunakan statement jmpmenuju label bernama proses ketika
statement-statement di dalam label ini telah selesai dieksekusi. Adapun statement-
statement yang terdapat pada Label ini yakni pertama dilakukan pemberian nilai pada
variabel bernama vkal dengan string ”Masukan Password menggunakan huruf
kapital :”,vkal1 dengan string ”Incorrect!!!” dan vkal2 dengan string “Welcome,
Login Success!!”.
proses:
mov ah, 09h
lea dx, vkal
int 21h
6. LA OSK pert3-Addressing Page 6
mov ah, 07h
int 21h
cmp al,'S'
JE ya1
JNE ga1
Masuk ke label berikutnya yaitu label dengan nama proses. Pertama-tama
dilakukan pemindahan nilai pada register ah dengan service number 09h. Kemudian
program akan melakukan pengisian register dxdengan alamat offset yaitu data pada
variabel dengan nama vkal dan kemudian nilai data tersebut dicetak menggunakan
statement int 21h[ tercetak kalimat “Masukan Password menggunakan huruf kapital : “
].Berikutnya, dilakukan pemindahan nilai pada register ah dengan service number 07h
dan kemudian dicetak (program meminta sebuah inputan dari user dengan menampilkan
karakter spasi pada layar). Setelah itu, dilakukan sebuah pembandingan nilai data antara
data inputan dengan karakter ”S”. Apabila hasil pembandingan bernilai sama (Equal)
maka program akan melompat menuju label ya1. Namun apabila pembandingan
bernilai tidak sama (not equal) maka program akan melompat menuju label ga1.
ga1:
mov ah, 09h
lea dx, vkal1
int 21h
jmp proses
Label berikutnya yaitu label dengan nama ga1, dimana pertama-tama dilakukan
pemindahan nilai pada register ah dengan service number 09h. Selanjutnya program
akan melakukan pengisian register dxdengan alamat offset yaitu data pada variabel
dengan nama vkal1 dan kemudian nilai data tersebut dicetak menggunakan statement
int 21h[ tercetak kalimat “Incorrect!!!” ]. Setelah itu program kembali lagi menuju
label proses.
ya1:
mov ah, 02h
mov dl, 2Ah
int 21h
mov ah, 07h
7. LA OSK pert3-Addressing Page 7
int 21h
cmp al,'O'
JE ya2
JNE ga1
Label ya1. Pada label ini mula-mula program melakukan pemindahan nilai pada
register ah dengan service number 02h. Kemudian program melakukan pemindahan
nilai pada register dl dengan service number 2Ah, lalu dicetak menggunakan statement
int 21h yang akan menyebabkan karakter inputan dari user diubah menjadi karakter (*).
Berikutnya, dilakukan pemindahan nilai pada register ah dengan service number 07h
dan kemudian dicetak (program meminta sebuah inputan dari user dengan menampilkan
karakter spasi pada layar). Lalu program melakukan pembandingan nilai data antara
data inputan dengan karakter ”O”. Apabila hasil pembandingan bernilai sama (Equal)
maka program akan melompat menuju label ya2. Namun apabila pembandingan
bernilai tidak sama (not equal) maka program akan melompat menuju label ga1.
ya2:
mov ah, 02h
mov dl, 2Ah
int 21h
mov ah,07h
int 21h
cmp al, 'N'
JE ya3
JNE ga1
Label ya2. Pada label ini mula-mula program melakukan pemindahan nilai pada
register ah dengan service number 02h. Kemudian program melakukan pemindahan
nilai pada register dl dengan service number 2Ah, lalu dicetak menggunakan statement
int 21h yang akan menyebabkan karakter inputan dari user diubah menjadi karakter (*).
Berikutnya, dilakukan pemindahan nilai pada register ah dengan service number 07h
dan kemudian dicetak (program meminta sebuah inputan dari user dengan menampilkan
karakter spasi pada layar). Lalu program melakukan pembandingan nilai data antara
data inputan dengan karakter ”N”. Apabila hasil pembandingan bernilai sama (Equal)
maka program akan melompat menuju label ya3. Namun apabila pembandingan
bernilai tidak sama (not equal) maka program akan melompat menuju label ga1.
8. LA OSK pert3-Addressing Page 8
ya3:
mov ah, 02h
mov dl, 2Ah
int 21h
mov ah, 07h
int 21H
cmp al,'I'
JE ya4
JNE ga1
Label ya3. Pada label ini mula-mula program melakukan pemindahan nilai pada
register ah dengan service number 02h. Kemudian program melakukan pemindahan
nilai pada register dl dengan service number 2Ah, lalu dicetak menggunakan statement
int 21h yang akan menyebabkan karakter inputan dari user diubah menjadi karakter (*).
Berikutnya, dilakukan pemindahan nilai pada register ah dengan service number 07h
dan kemudian dicetak (program meminta sebuah inputan dari user dengan menampilkan
karakter spasi pada layar). Lalu program melakukan pembandingan nilai data antara
data inputan dengan karakter ”I”. Apabila hasil pembandingan bernilai sama (Equal)
maka program akan melompat menuju label ya4. Namun apabila pembandingan
bernilai tidak sama (not equal) maka program akan melompat menuju label ga1.
ya4:
mov ah, 02h
mov dl, 2Ah
int 21h
mov ah, 07h
int 21H
cmp al,'T'
JE ya5
JNE ga1
Label ya4. Pada label ini mula-mula program melakukan pemindahan nilai pada
register ah dengan service number 02h. Kemudian program melakukan pemindahan
nilai pada register dl dengan service number 2Ah, lalu dicetak menggunakan statement
int 21h yang akan menyebabkan karakter inputan dari user diubah menjadi karakter (*).
Berikutnya, dilakukan pemindahan nilai pada register ah dengan service number 07h
9. LA OSK pert3-Addressing Page 9
dan kemudian dicetak (program meminta sebuah inputan dari user dengan menampilkan
karakter spasi pada layar). Lalu program melakukan pembandingan nilai data antara
data inputan dengan karakter ”T”. Apabila hasil pembandingan bernilai sama (Equal)
maka program akan melompat menuju label ya5. Namun apabila pembandingan
bernilai tidak sama (not equal) maka program akan melompat menuju label ga1.
ya5:
mov ah, 02h
mov dl, 2Ah
int 21h
mov ah, 07h
int 21H
cmp al,'Y'
JE ya6
JNE ga1
Label ya5. Pada label ini mula-mula program melakukan pemindahan nilai pada
register ah dengan service number 02h. Kemudian program melakukan pemindahan
nilai pada register dl dengan service number 2Ah, lalu dicetak menggunakan statement
int 21h yang akan menyebabkan karakter inputan dari user diubah menjadi karakter (*).
Berikutnya, dilakukan pemindahan nilai pada register ah dengan service number 07h
dan kemudian dicetak (program meminta sebuah inputan dari user dengan menampilkan
karakter spasi pada layar). Lalu program melakukan pembandingan nilai data antara
data inputan dengan karakter ”Y”. Apabila hasil pembandingan bernilai sama (Equal)
maka program akan melompat menuju label ya6. Namun apabila pembandingan
bernilai tidak sama (not equal) maka program akan melompat menuju label ga1.
ya6:
mov ah, 02h
mov dl, 2Ah
int 21h
mov ah, 07h
int 21H
cmp al,'O'
JE ya7
JNE ga1
10. LA OSK pert3-Addressing Page 10
Label ya6. Pada label ini mula-mula program melakukan pemindahan nilai pada
register ah dengan service number 02h. Kemudian program melakukan pemindahan
nilai pada register dl dengan service number 2Ah, lalu dicetak menggunakan statement
int 21h yang akan menyebabkan karakter inputan dari user diubah menjadi karakter (*).
Berikutnya, dilakukan pemindahan nilai pada register ah dengan service number 07h
dan kemudian dicetak (program meminta sebuah inputan dari user dengan menampilkan
karakter spasi pada layar). Lalu program melakukan pembandingan nilai data antara
data inputan dengan karakter ”O”. Apabila hasil pembandingan bernilai sama (Equal)
maka program akan melompat menuju label ya7. Namun apabila pembandingan
bernilai tidak sama (not equal) maka program akan melompat menuju label ga1.
ya7:
mov ah, 02h
mov dl, 2Ah
int 21h
mov dl, 20h
int 21h
mov ah, 09h
lea dx, vkal2
int 21h
int 20h
end mulai
Label terakhir yaitu label ya7. Pada label ini mula-mula program melakukan
pemindahan nilai pada register ah dengan service number 02h. Kemudian program
melakukan pemindahan nilai pada register dl dengan service number 2Ah, lalu dicetak
menggunakan statement int 21h yang akan menyebabkan karakter inputan dari user
diubah menjadi karakter (*). Berikutnya, dilakukan pemindahan nilai pada register ah
dengan service number 20h dan kemudian dicetak (cetak karakter spasi). Lalu program
melakukan pemindahan nilai pada register ah dengan service number 09h. Berikutnya,
program akan melakukan pengisian register dxdengan alamat offset yaitu data pada
variabel dengan nama vka12dan kemudian nilai data tersebut dicetak menggunakan
statement int 21h [ tercetak kalimat “Welcome, Login Success!!” ]. Dan program
secara keseluruhanpun diakhiri dengan statement int 20h dan end mulai.
11. LA OSK pert3-Addressing Page 11
OUTPUT PROGRAM.
Setelah dilakukan proses compile dan running serta input data pada file pass.asm, maka
didapat output sebagai berikut :
“Output di atas didapat karena inputan yang dimasukkan adalah sesuai dengan
deretan karakter password berikut : S O N I T Y O”.
“Output di atas didapat karena inputan yang dimasukkan tidak sesuai dengan deretan
karakter password yang disediakan”.
[ output ]
[ output ]