Final Fantasy 7 Cloud Strife
Powered By Blogger

Senin, 10 Oktober 2011

SOAL DAN JAWABAN UJIAN TENGAH SEMESTER PRAKTEK BHS RAKITAN

  NAMA         : MARSUN
  NIM             : SIA201034


1. Bangunlah sebuah sowftware dengan bahasa assembly yang dapat menampilkan karakter beratribut M-A dengan foreground merah background hitam.
   Untuk format Script/Codinya yaitu sebagai berikut :
.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


Atau bisa di lihat hasilnya sebagai beriktu dalam gambar.





2. Bangunlah sebuah software dengan bahasa assembly yang dapat menampilkan kalimat, jika menemukan huruf tertentu maka pencetakan selesai. Program looping jika menemukan huruf "D" pada kalimat "STMIK WIDYA UTAMA" maka akan mencetak huruf "D"
FLOWCHATNYA 


untuk codinya adalah sebagai berikut :
 .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


Hasil dari pengcodingan yang sudah di save dan di tampilkan hasilnya yaitu sebagai berikut :

SOAL DAN JAWABAN UJIAN TENGAH SEMESTER TEORI BHS RAKITAN

1.  Sebutkan dan jelaskan tahapan yang di lakukan dalam mendevelop sebuah software   menggunakan     assembly (mulai dari coding sampai dengan software di jalankan). 
    Tahapan yang dilakukan yaitu :
     - Menentukan tujuan yang mau di kerjakan atau tujuan pembahasan pembuatan program tersebut.
     - Menyusun Script/Coding sesuai dengan tujuan yang telah ditetapkan dan di tulis dalam  Notepad      kemudian di simpan  dengan file berekstensi "ASM".
     - Setelah dibuat kemudian di jalankan pada DOS promt apakah program yang kita buat berhasil atau tidak.
     - 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. Apakah perbedaan yang di hasilkan apabila kita melakukan linking terhadap sebuah file OBJ menggunakan parameter /t dan tanpa /t !  
Perbedaan yang di hasilkan apabila kita melakukan linking terhadap sebuah file OBJ menggunakan parameter /t maka tidak akan terjadi penumpukan data ata data bisa secara urut dan jika  Tanpa /t maka terjadi penumpukan data (stack) yaitu tidak bisa menentukan urutan/prioritas eksekusi compile program (program eror)
.

3. Berikan contoh kode program yang di dalamnya berisikan perulangan !
    Contoh kode program yang berisikan perulangan yaitu sebagai berikut :
    Codingnya :
    .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

Atau bisa di lihat dalam gambar di bawah ini 


4. Pada sebuah kode pemrograman dibawah ini, ada 1 register yang tidak sesuai penggunaanya. 
    Koreksilah ketidasesuaian tersebut, serta tuliskan outputnya. 
   .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'. 
         maka codinya sebagai berikut 
 .model small
.code
org 100h
mulai:
    mov ah,02h
    mov dl,'B'
    mov cx,8
    lagi:
    int 21h
    inc al
    inc dl
    loop lagi
    int 20h


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

untuk jelasnya lihat hasilnya sebagai berikut:
===>>> Jika 'inc cx' diganti dengan 'inc al' hasilnya mencetak huruf 'B' sebanyak 8 kali.
 Codingnya sebagai  berikut.

 .model small
.code
org 100h
mulai:
    mov ah,02h
    mov dl,'B'
    mov cx,8
    lagi:
    int 21h
    inc al
    inc al
    loop lagi
    int 20h


end mulai



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



Codinya sebagai berikut :
.model small
.code
org 100h
mulai:
    mov ah,02h
    mov dl,'B'
    mov cx,8
    lagi:
    int 21h
    inc al
    inc dl
    loop lagi
    int 20h


end mulai


                                                                                                                                              

       

Minggu, 09 Oktober 2011

TUGAS BAHASA RAKITAN TANGGAL 24 SEPTEMBER 2011

Untuk flowchatnya sebagai berikut :
Script atau coding dari perintah tabel di atas yaitu sebagai berikut.
  
.model small
.code
org 100h

mulai :

            jmp ulang
            vkal db 'my name is sadu$'
           

ulang :
           
            mov dl, vkal[bx]
            mov ah, 02h
            int 21h
            inc bx
            mov ax, bx
            cmp ax,15
            je exit
            jmp ulang


            exit : int 20h

end mulai

Dan hasil dari script tersebut adalaha sebagai berikut :




TUGAS MEMBANDINGKAN DALAM BAHASA RAKITAN

Membuat program membandingkan dengan Assembly adalah suatu cara membandingkan bahasa mesin dengan bahasa rakitan yang terjadi di dalam komputer. Pertama tama kita membuat script atao codingnya terlebih dahulu setelah dibuat kemudian di save dengen extensi .asm . Untuk menjalakanya kita jalankan lewat comandpromt c:\>.

Untuk scriptnya sebagai berikut.


.model small
.code
org 100h
Mulai :
    jmp proses
    bila db 5
    kal1 db 'SAMA$'
    kal2 db 'LEBIH KECIL$'
    kal3 db 'LEBIH BESAR$'
Proses:
    mov al,bila
    cmp al,5
    je sama
    ja kecil
    jb besar
sama :
    mov ah,09h
    lea dx, kal1
    int 21h
    int 20h
kecil :
    mov ah,09h
    lea dx, kal2
    int 21h
    int 20h
besar :
    mov ah,09h
    lea dx, kal3
    int 21h
    int 20h
  
End mulai

Penjelasan dari script tersebut yaitu :

 Keterangan Script:
  Pada proses =>     cmp al,5= membandingkan dengan 5
                                je    = jump equel (membandingkan yang sama)
                                ja    = jump above (membandingkan yang lebih besar)
                                jb    = jump below (membandingkan yang lebih kecil)
                                lea dx, kal1 = membaca alamat dari kal1 disimpan ke dalam DX
         Karena Assembly adalah program terstruktur maka akan membaca secara urut dan tidak bisa melompat, untuk itu pada tiap deklarasi (sama, kecil dan besar) jika tidak ditambahkan int 20h untuk halt (berhenti) maka ketika program dijalankan akan tercetak SAMALEBIH KECILLEBIH BESAR.
Untuk itu pada tiap deklarasi (sama, kecil dan besar) tambahkan int 20h untuk halt (berhenti) sehingga membandingkannya akan berjalan sesuai dengan kriteria.

Setelah dibuat kemudian di save dengan extensi ASM. dan untuk membukanya kita masuk ke comandpromt dengan cara.
  1. Klik start > run 
  2. Kemudian di didalam kotak dialog RUN ketik "CMD" tanpa tanda petik.
  3. Maka akan masuk ke c:\>
  4. Terus masuk ke folder dimana ASM di tempatkan misalkan di di drive d:\asm>
  5. Kemudian ketikan perintahnya yaitu pertama ketik TASM terus nama file yang kita simpan tadi (bandingkan.asm) kemudian enter jika tidak ada masalah maka proses kedua bisa di jalankan.
  6. Proses ke2 ketik TLINK/t   terus ketik nama file yang kita simpan tadi.(bandingkan)
  7. Dan yang terakhir ketikan nama file yang kita simpan tadi kemudian enter (bandingkan).
Untuk lebih jelanya lihat hasilnya sebagai berikut.

Untuk proses membandingkannya sama yaitu 5 (cmp al,5) maka hasilnya SAMA

Untuk proses membandingkannya lebih kecil yaitu 3 (cmp al,3) maka hasilnya LEBIH KECIL


 Untuk  proses membandingkannya lebiH besar yaitu 7 (cmp al,7) maka hasilnya LEBIH BESAR

  Demikian hasil penjelasan yang singkat ini semoga bermanfaat......??????

TUGAS BAHASA RAKITAN MEMBANDINGKAN DENGAN NILAI YANG SAMA DAN NILAI YANG BEDA

1. Dengan nilai yang sama yaitu kita ketikan dulu codingnya dalam notepad dan di simpan dalam ektensi .asm
    Codingnya yaitu sebagai berikut :
    .model small
    .code
    org 100h
    mulai:jmp proses
      bila db 5
      kal1 db 'sama$'
      kal2 db 'beda$'
  proses :
      mov al, bila
      cmp al,5
      je sama
      jne beda

  sama : mov ah,09h
       lea dx,kal1
       int 21h
       int 20h

  beda : mov ah,09h
       lea dx,kal2
       int 21h
       int 20h

  end mulai


 Setelah di ketik dan di save kemudian kita jalankan lewat comand promt c:\> dan hasilnya    dapat  di lihat sebagai berikut :

2. Dengan hasil yang beda yaitu kita cuma membedakan codingnya aja.
    Codinya yaitu sebagai berikut :
   
    .model small
    .code
    org 100h
    mulai:jmp proses
      bila db 5
      kal1 db 'sama$'
      kal2 db 'beda$'
  proses :
      mov al, bila
      cmp al,8
      je sama
      jne beda

  sama : mov ah,09h
       lea dx,kal1
       int 21h
       int 20h

  beda : mov ah,09h
       lea dx,kal2
       int 21h
       int 20h

  end mulai


  Semuanya sama kalo sudah selesai di ketik dalam notepad, setelah itu di save dengan extnesi .asm dan kemudian di jalakan dengan comand promt c:\> dan hasilnya sebagai berikut :
  
Demikian penjelasan yang singkat ini semoga bermanfaat.......????????
 

TUGAS BAHASA RAKITAN


 
Design by Free WordPress Themes | Bloggerized by Lasantha - Premium Blogger Themes | cheap international calls