Selasa, 11 Oktober 2011

ULANGAN TENGAH SEMESTER SIA201017/10/2011

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

3.         Contoh coding program pengulangan

.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:
  • 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

1. Menampilkan huruf M-A dengan warna teks MERAH dan backgorund HITAM 



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 :

Coding Program:

.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: