Senin, 10 Oktober 2011

UTS PRAKTEK PBR

PEMROGRAMAN BAHASA RAKITAN
Dosen : Nahar Mardiyantoro,M.Kom

1.  Menampilkan karakter beratribut M-A dengan foreground merah background hitam :

.model small
.code
org 100h
mulai:
        mov ah,09h
        mov bl,00000100b
        mov cx,13
lagi:
    int 10h
    inc bl

    mov ah,02h
    mov dl,'M'
    mov cx,13
ulang:
           inc bl
           int 21h
           dec dl
           loop ulang
           int 20h
end mulai

hasil dari coding di atas adalah seperti gambar dibawah ini :
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 sedangkan mov cx,13 berfungsi untuk melakukan looping dalam hal ini huruf yang diminta adalah M-A atau A-M = 13 huruf.

Mov ah, 02h merupakan perintah untuk mengcopy atau pindahkan 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 maka akan dilakukan perintah looping atau ulangi sebanyak satu karakter dari A sampai M karena dibelakukan decrement atau pengurangan maka akan ditampilkan (int 21h) huruf tercetak dari belakang M-A.
Dengan flowchart :





2. Menampilkan kalimat jika menemukan huruf tertentu maka pencetakan selesai dengan flowchart berikut dan diimplementasikan dalam coding maka :

.model small
.code
org 100h
mulai :
            jmp ulang
            vkal db 'UTS PBR STMIK WUP$'
ulang :
            mov dl, vkal[bx]
            mov ah, 02h
            int 21h
            inc bx
            mov ax, bx
            cmp ax,10
            je exit
            jmp ulang

            exit : int 20h

end mulai

jmp ulang merupakan perintah lompat, mov dl,vkal [bx] maka dengan alamat vkal[bx] akan dimasukan ke dl. mov ah 02h berpasangan dengan perintah int 21h merupakan perintah untuk menampilkan . inc bx  artinya menambah 1 karakter yang ada didalam bx. mov ax, secara khusus register AX digunakan pada operasi aritmatika dalam operasi pembagian dan pengurangan sedangkan bx biasanya digunakan untuk menunjukan suatu alamat offset dari suatu segmen. cmp ax,10 adalah peerintah membandingkan (compare) dengan 10 karakter yang diminta yaitu jika bertemu dengan huruf M maka berhenti mencetak. jika benar maka keluar (je exit) jika masih belum menemukan lompat / looping ke ulang ( jmp ulang ) exit / keluar dan cetak (int 20h). Hasil dari perintah diatas adalah bila kita tuliskan "UTS PBR STMIK WUP" maka ketika bertemu dengan huruf M perintah cetak terhenti sehingga yang tercetak adalah "UTS PBR ST" seperti gambar berikut :

alhamdulillah.... semoga berkenan...



UTS TEORI PBR

UTS SMT III PEMROGRAMAN BAHASA RAKITAN 
Dosen : Nahar Mardiyantoro,M.Kom

Teori
1. Tahapan dalam mendevelop sebuah sorftware menggunakan   bahasa assembley :
    1) Coding (membuat coding)
   2) Compare (bandingkan)
   3) Link (linking merubah file obj)
   4) Run (jalankan)
    * Langkah pertama lakukan pengcodingan/ buat coding menggunakan notepad. dalam membuat coding ada beberapa ketentuan karena kita menjalankan program assembley menggunakan DOS (Disk Operating System) dimana dalam DOS function service terdapat beberapa pasangan untuk mengerjakan beberapa intruksi , sedangkan DOS memiliki banyak fungction service sehingga dibutuhkan servis untuk menampilkan perintah. Simpan dalam file asm .
     * Langkah kedua lakukan compare yaitu membandingkan antara coding yang kita buat dalam notepad dengan turbo assembler. Tentunya  kita harus memiliki file asm yang terdiri dari RTM.EXE,TASM.EXE, TASM.HLP, TLINK.CFG dan TLINK.EXE ini merupakan syarat agar kita dapat menjalankan turbo assembler.
     * Langkah ketiga linking, yaitu  merubah file objek kedalam bahasa mesin dengan syarat memanggil tLink/t nama file objek.obj 
     * langkah keempat jalankan program turbo assembler dengan perintah Run ==>nama file.com

2. Perbedaan yang dihasilkan apabila kita melakukan linking terhadap sebuah file OBJ menggunakan parameter  /t dan tanpa /t dapat dilihat pada gambar berikut :

dari hasil diatas dapat ditarik kesimpulan  sebagai syarat memanggil file objek jika menggunakan parameter /t maka hasil akan sesuai sedangkan bila tidak menggunakan parameter /t pada tLink hasil tetap sama namun ada peringatan atau warning : No Stack

3. Contoh program yang didalamnya berisikan perulangan 
.model small
.code
org 100h
mulai:

      mov ah,02h
      mov dl,65
      mov cx,13
ulang:
      int 21h
      inc dl
      loop ulang

int 20h

end mulai

Coding diatas merupakan perintah memunculkan abjad dari A -M .sebanyak 13 huruf maka digunakan mov cx 13 dimana register cx digunakan secara khusus untuk operasi looping  yangmana register ini menentukan berapa banyaknya looping yang akan terjadi.   Bila program dijalankan menggunakan turbo assembler maka hasilnya seperti gambar berikut, atau bisa juga  untuk contoh perintah perulangan menggunakan jawaban soal nomor 4  dibawah ini :


4. Pada program berikut terdapat ketidak sesuaian pada salah satu penggunaan registernya :
.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
end mulai

bila program dijalankan maka hasilnya seperti gambar berikut :
disini muncul ketidak sesuai dengan munculnya huruf B yang tidak terbatas sedangkan suatu register memiliki batasan karakter bila register yang dipakai sudah sesuai untuk membatasi karakter hanya perlu menambahkan tanda $ namun pada kasus diatas yang tidak sesuai adalah inc cx dimana register cx ini berfungsi untuk melakukan perintah looping yang sudah diminta untuk mengulang sebanyak 8 kali pada mov cx,8. yang benar adalah :

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

sehingga hasilnya sesuai yang diminta yaitu mengulang cetak huruf B sebanyak 8 kali seperti gambar berikut :




Demikian, semoga bermanfaat serta membawa kesuksesan dan keberuntungan.....amiin..