UTS 1 2011 STMIK WUP PURWOKERTO
TEORI
1. Langkah yang dilakukan dalam mendevelop sebuah program dalambahasa Assembly sebagai berikut :
- Menentukan program
- Membuat dan menyusun coding sesuai dengan karakter pada notepad yaiotu file berekstensi 'asm"
- mengoperasikan program Assembly lewat (cmd) DOS
- File yg berkestensi 'ASM' di compile otomatis akan menjadi file berekstensi 'OBJ' dengan perintah 'tasm nama file'.
- Hasil compile apakah terdapat error coding apa tidak, jika ia coding perbarui/koreksi file yang berekstensi asm' tersebut pada notepad,Jika sudah tidak ada error coding maka compile file 'OBJ' tersebut menjadi file berkestensi 'com' yaitu dengan menggunakan perintah 'tlink/t'
- Program tersebut di coba panggil, apakah nama file sudah sesuai dengan tujuan pembuatan program
2. Perbedaan melakukan linking sebuah file 'OBJ' menggunakan parameter /t dan tanpa /t /t untuk mendeklarasikan urutan eksekusi compile program Tanpa /t maka terjadi penumpukan data (stack) yaitu tidak bisa menentukan urutan/prioritas ksekusi compile program
.model small
.code
org 100h
mulai:
mov ah,02h
mov dl, 75
mov cx,6
lagi:
int 21h
inc dl
loop lagi
int 20h
end mulai
Output programnya : K L M N O P
4. Analisis coding program
.model small
.code
org 100h
mulai:
mov ah,02h
mov dl,'B'
mov cx,8
lagi:
int 21h
inc al
inc cx
loop lagi
int 20h
Dari analisis coding ditemukan kesalahan dan kekurangan yaitu:
.model small
.code
org 100h
mulai:
mov ah,02h
mov dl,'B'
mov cx,8
lagi:
int 21h
inc al
inc cx
loop lagi
int 20h
Dari analisis coding ditemukan kesalahan dan kekurangan yaitu:
- Analisis coding terdapat pada 'inc cx' yang seharusnya 'inc al','inc dl' atau tidak ada 'inc cx'. Karena 'cx' berfungsi untuk menentukan jumlah perulangan.
- Coding program kurang perintah mengakhiri yaitu 'end mulai'.
Hasil perbaikan coding :
- Jika 'inc cx' diganti dengan 'inc al' hasilnya mencetak huruf 'B' sebanyak 8 kali. Dengan demikian fungsi 'inc al' tidak ada fungsinya karena salah pengalamatan yang seharusnya pengalamtanya ke 'inc dl'
- Jika 'inc cx' diganti dengan inc dl hasilnya 'B C D E F G H I' yang artinya looping sebanyak 8 kali dan penambahan 1 (satu) kode ASCII
PRAKTEK
Mov ah,09 h berfungsi untuk perintah memasukan , dengan alamat 00000100b akan dimasukan ke bl karakter sebanyak 13 dengan warna merah mov bl,00000100b berfungsi merubah huruf menjadi berwarna merah mov bh,00h mov bl,1001101b berfungsi untuk menampilkan warna merah pada beckround huruf sedangkan mov cx,13 berfungsi untuk melakukan looping dalam hal ini huruf yang diminta adalah M-A. Mov ah, 02h merupakan perintah untuk mengcopy sedangkan mov dl merupakan perintah yang harus berisi bilangan hexa dari karakter ascii yang akan dicetak sehingga digunakan mov dl,'M'.
inc bl berfungsi menambahkan satu karakter sedangkan dec dl mengurangi satu karakter loop ulang mengulang sebanyak satu karakter dengan menggunan pengurangan atau decrement maka akan mencetak huruf dari belakang yaitu M-A.Dengan flowchart :
.model small
.code
org 100h
mulai:
mov ah,09h
mov bl,00000100b
mov cx, 13
ulang:
int 10h
inc bl
mov ah, 02h
mov dl,'M'
mov cx, 13
lagi:
inc bl
int 21h
dec dl
loop lagi
int 20h
end mulai
Hasil Output Program:
2. Contoh Program menampilkan kalimat jika menemukan huruf tertentu pencetakan selesai Program looping jika menemukan huruf "N" pada kalimat "SPENSER” maka akan mencetak huruf "N"
Coding Program:
.model small
.code
org 100h
mulai:
vkal db 'SPENSER$'
ulang:
mov DL, vkal[3]
mov ah,02h
int 21h
int 20h
mov ax,bx
cmp ax,11
je exit
inc bx
jmp ulang
exit:
int 20h
end mulai
Hasil Output Program: