meteor jatuh

Minggu, 09 Oktober 2011

TUGAS TEORI UTS 20011

UJIAN TENGAH SEMESTER
PEMPROGARAMAN BAHASA RAKITAN (ASSEMBLY)
STMIK WIDYA UTAMA 2011

1.  Tahapan-tahapan yang dilakukan dalam mendevelop sebuah program dengan bahasa Assembly yaitu :
  • Menentukan tujuan pembuatan program
  • Menyusun coding sesuai dengan tujuan yang telah didtetapkan pada Notepad dengan file berekstensi 'ASM"
  • Kemudian jalankan program Assembly menggunakan DOS
  • File yg berkestensi 'ASM' tadi di compile menjadi file yang berekstensi 'OBJ' dengan perintah 'tasm nama file'.
  • Lihat hasil compile apakah terdapat error coding, jika terdapat error coding perbaiki file yang berekstensi 'ASM' tadi pada Notepad. Ulangi langkah k-4
  • Jika sudah tidak ada error coding selanjutnya compile file 'OBJ' menjadi file berkestensi 'COM' dengan perintah 'tlink/t'
  • Uji program tersebut dengan cara memanggil nama file tersebut apakah 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 eksekusi compile program (program bingung)

3. Contoh coding program pengulangan
==========================================================================
.model small
.code
org 100h
mulai:
    mov ah,02h
    mov dl,'A'
    mov cx,4
    lagi:
    int 21h
    inc dl
    loop lagi
    int 20h
end mulai

Output programnya : A B C D
========================================================================
  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:
  1. Analisis coding terdapat pada 'inc cx' yang seharusnya 'inc al','inc dl' atau tidak ada 'inc cx'. Karena 'cx' berfungsi untuk menentukan jumlah perulangan.
  2. Coding program kurang perintah mengakhiri yaitu 'end mulai'.
Hasil perbaikan coding :

  1. 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'
  2. 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

TUGAS PRAKTEK UTS 2011

UJIAN PRAKTEK MID SEMESTER
STMIK WIDYA UTAMA PURWOKERTO
1.
.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,'A'
    mov cx, 13
    lagi:
    je bl
    int 21h
    inc dl
    loop lagi
    int 20h
end mulai

Hasil Output

2.


















===================================================================
.model small
.code
org 100h
mulai:
    vkal db 'STMIK WIDYA UTAMA$'
ulang:
    mov DL, vkal[12]
    mov ah,02h
    int 21h
    int 20h
    mov ax,bx
    cmp ax,11
    je exit
    inc bx
    jmp ulang
    exit:
    int 20h

end mulai
=====================================================================
Output Program













Sabtu, 01 Oktober 2011

                                    SINGLE AND ARRAY VARIABLE
1. Single variable: suatu variable yang menggunakan seluruh ruang penyimpanan.
   Contoh: vkal DB 'HALO'
                mov vkal,'Hi'
   Jika dipanggil maka isi variable HALO diganti dengan Hi
2. Array Variable: Suatu variable yangg menggunakan split dalam penyimpanannya (ruang penyimpanan disekat)
             Contoh:
                        .model small
                        .code
                       org 100h
             Mulai :
                      vkal DB 'HALO'
            Proses:
                     mov DL, vkal[1]
                     mov ah, 02h
                     int 21h   
                    int 20h   
           end mulai


   Jika dipanggil maka isi variable HALO akan mencetak 1 karakter ke register DL yaitu A karena nilai Array variable dimulai dari 0 (nol). Jika melebihi dari nilai Array variable yaitu 4 (dalam contoh maksimal 3) maka processor membaca: Out of Range/Out of Character
Berikut adalah contoh script untuk mencetak S pada pada kalimat MY NAME IS SARJU melalui perulangan. Caranya:
1. Buatlah script berikut di Notepad
            .model small
                     .code
                     org 100h
            mulai:
                    vkal db 'MY NAME IS SARJU$'
            ulang:
                   mov DL, vkal[11]
                   mov ah,02h
                       int 21h
                          int 20h
                            mov ax,bx
                               cmp ax,11
                                  je exit
                                     inc bx
                                       jmp ulang
                                           exit:
                                              int 20h
                               end mulai.
2. Save file : array.asm
3. Run dengan program ASM di DOS
    - Arahkan ke folder program asm (cd ..)
    - Ketik tasm array.asm (file asm)
    - ketik tlink/t array.obj
    - ketik array maka akan tampil hanya huruf "S" dari kalimat "MY NAME IS SARJU$"
Lebih jelas lihat output programnya berikut :