Desember 26, 2011

bla bla bla bla osk 3

LISTING PROGRAM KE 1
.model small
.code
org 100h
Ø  model small digunakan untuk memberitahukan kepada assembler bentuk memory yang digunakan oleh program.code digunakan untuk memberitahukan kepada assembler bahwa kita akan mulai menggunakan Code Segment-nya disini.org 100h digunakan untuk memberitahukan assembler supaya program pada saat dijalankan (diload ke memory) diletakkan mulai pada offset  ke 100h(256) byte.
mulai:
jmp proses                                  
kal db 13,10,'input your password : $'
kal2 db 10,'selamat datang dipraktikum OSK !!!$'
Ø  jmp digunakan untuk melompat menuju tempat yang ditunjukkan oleh perintah JUMP. Nilai yang akan diproses adalah A dan B. DB (Define Byte), mendefinisikan variable per byte. Dalam kal db terdapat 13,10 berguna sebagai diagonal.
proses :
mov ah,09h
lea dx, kal
int 21h
mov ah,07h
int 21h
cmp al,'2'
je pilihan1
je proses
int 20h
Ø  mov ah,09h dan mov ah,07h berguna untuk menampung semua variabel yang akan dicetak. lea dx,kal berguna untuk mengambil variabel yang berada di kal yaitu “ input  your password”.Int 21h berguna untuk membaca  variabel yang akan dicetak. Cmp al,’2’ berguna untuk menampung nilai. Je pilihan1 berguna untuk melanjutkan ke proses selanjutnya. Je proses berfungsi untuk memproses ke langkah selanjutnya. Int 20 h berguna untuk mengakhiri program dan menyerahkan kendali sepenuhnya kepada DOS.
pilihan1:
mov ah,02h
mov dl,'*'
int 21h
mov ah,07h
int 21h
cmp al,'i'
je pilihan2
jne proses
Ø  Mov ah,02h berguna sebagai tempat penyimpanan data karakter yang akan ditampilkan. Mov dl,’*’ berfungsi untuk mengganti variabel dan nilai menjadi bintang(*).Int 21h berguna untuk membaca  variabel yang akan dicetak. mov ah,07h berguna untuk menampung semua variabel yang akan dicetak. Cmp al,’i’ berguna untuk menampung nilai. Je pilihan2 berguna untuk melanjutkan ke proses selanjutnya. Je proses berfungsi untuk memproses ke langkah selanjutnya. Int 20 h berguna untuk mengakhiri program dan menyerahkan kendali sepenuhnya kepada DOS.
pilihan2:
mov ah,02h
mov dl,'*'
int 21h
mov ah,07h
int 21h
cmp al,'a'
je pilihan3
jne proses
Ø  Mov ah,02h berguna sebagai tempat penyimpanan data karakter yang akan ditampilkan. Mov dl,’*’ berfungsi untuk mengganti variabel dan nilai menjadi bintang(*).Int 21h berguna untuk membaca  variabel yang akan dicetak. mov ah,07h berguna untuk menampung semua variabel yang akan dicetak. Cmp al,’a’ berguna untuk menampung nilai. Je pilihan3 berguna untuk melanjutkan ke proses selanjutnya. Je proses berfungsi untuk memproses ke langkah selanjutnya. Int 20 h berguna untuk mengakhiri program dan menyerahkan kendali sepenuhnya kepada DOS.
pilihan3:
mov ah,02h
mov dl,'*'
int 21h
mov ah,07h
int 21h
cmp al,'2'
je pilihan4
jne proses
Ø  Mov ah,02h berguna sebagai tempat penyimpanan data karakter yang akan ditampilkan. Mov dl,’*’ berfungsi untuk mengganti variabel dan nilai menjadi bintang(*).Int 21h berguna untuk membaca  variabel yang akan dicetak. mov ah,07h berguna untuk menampung semua variabel yang akan dicetak. Cmp al,’2’ berguna untuk menampung nilai. Je pilihan4 berguna untuk melanjutkan ke proses selanjutnya. Je proses berfungsi untuk memproses ke langkah selanjutnya. Int 20 h berguna untuk mengakhiri program dan menyerahkan kendali sepenuhnya kepada DOS.
pilihan4:
mov ah,02h
mov dl,'*'
int 21h
mov ah,07h
int 21h
cmp al,'1'
je pilihan5
jne proses
Ø  Mov ah,02h berguna sebagai tempat penyimpanan data karakter yang akan ditampilkan. Mov dl,’*’ berfungsi untuk mengganti variabel dan nilai menjadi bintang(*).Int 21h berguna untuk membaca  variabel yang akan dicetak. mov ah,07h berguna untuk menampung semua variabel yang akan dicetak. Cmp al,’1’ berguna untuk menampung nilai. Je pilihan5 berguna untuk melanjutkan ke proses selanjutnya. Je proses berfungsi untuk memproses ke langkah selanjutnya. Int 20 h berguna untuk mengakhiri program dan menyerahkan kendali sepenuhnya kepada DOS.
pilihan5:
mov ah,02h
mov dl,'*'
int 21h
mov ah,09h
lea dx,kal2
int 21h
int 20h
end mulai
cmp al,'i'
je pilihan2
jne proses
Ø  Mov ah,02h berguna sebagai tempat penyimpanan data karakter yang akan ditampilkan. Mov dl,’*’ berfungsi untuk mengganti variabel dan nilai menjadi bintang(*).Int 21h berguna untuk membaca  variabel yang akan dicetak. mov ah,09h berguna untuk menampung semua variabel yang akan dicetak. lea dx,kal2 berguna untuk mengambil variabel yang berada di kal yaitu “ selamat datang di praktikum OSK !!!”. Cmp al,’i’ berguna untuk menampung nilai. Je pilihan1 berguna untuk melanjutkan ke proses selanjutnya. Je proses berfungsi untuk memproses ke langkah selanjutnya. Int 20 h berguna untuk mengakhiri program dan menyerahkan kendali sepenuhnya kepada DOS. Kemudian program tersebut selesai dan kembali ke proses pilihan2.
LISTING PROGRAM KE 2
.model small
.code
org 100h
Ø  model small digunakan untuk memberitahukan kepada assembler bentuk memory yang digunakan oleh program.code digunakan untuk memberitahukan kepada assembler bahwa kita akan mulai menggunakan Code Segment-nya disini.org 100h digunakan untuk memberitahukan assembler supaya program pada saat dijalankan (diload ke memory) diletakkan mulai pada offset  ke 100h(256) byte.
TData:
JMP proses
kar DB ?
klm DB 'BATMAN SI MANUSIA KELELAWAR'
Ø  jmp digunakan untuk melompat menuju tempat yang ditunjukkan oleh perintah JUMP. Nilai yang akan diproses adalah A dan B. DB (Define Byte), mendefinisikan variable per byte.
proses:
mov cx,28
xor bx,bx
Ø  Fungsi Melakukan operasi logika Exlusive OR antara Operand1 dengan Operand2. Perintah XOR ini juga sering dipakai untuk me-nol-kan suatu register dengan cara XOR Operand1, Operand1. XOR BX, BX ;Berfungsi untuk me-nol-kan nilai BX ( BX = 0 ).
ulang:
mov dl,klm[bx]
mov kar,dl
call cetak_kar
inc bx
loop ulang
int 20h
Ø  mov dl,klm[bx] berfungsi membuat tulisan terbalik yang bernilai bx. Kemudian melakukan panggilan ke cetak kar. Inc bx untuk menaikan nilai bx. Lalu melakukan pengulangan. Int 20 h berguna untuk mengakhiri program dan menyerahkan kendali sepenuhnya kepada DOS.
cetak_kar proc near
                        push ax
                        push dx
                        mov ah,02h
                        mov dl,kar
                        int 21h
                        pop dx
                        pop ax
                        ret
                        cetak_kar endp
                        end TData
push berguna untuk memasukkan nilai ax dan dx. Mov ah,02h berguna sebagai tempat penyimpanan data karakter yang akan ditampilkan. Mov dl,kar berfungsi untuk mencetak nilai bx yang terbalik.Int 21h berguna untuk membaca  variabel yang akan dicetak. Kemudian pop menghapus nilai dari dx dan ax. Lalu mereturn kembali untuk mengecek kembali. Cetak_kar endp dan end TData menandakan bahwa program tersebut telah selesai atau berhenti